Vim

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

Vim は、ターミナルテキストエディタです。vi の拡張版で、シンタックスハイライト、包括的なヘルプシステム、ネイティブスクリプト (Vim script)、テキスト選択のためのビジュアルモード、ファイルの比較 (vimdiff(1)) といった追加機能、および rview(1)rvim(1) など制限付きのツールが含まれています。

インストール

以下のどちらかのパッケージをインストールしてください:

  • vim パッケージは Python 2/3, Lua, Ruby, Perl インタプリタをサポート、GTK/X サポートは除外。
  • gvim パッケージは上の vim パッケージと同じものに加えて GTK/X サポートが付属。
ノート:
  • vim パッケージには Xorg のサポートが組み込まれていません。従って、+clipboard 機能がないため、Vim は X11 のプライマリ・クリップボードのセレクションバッファを利用することができません。gvim パッケージには +clipboard が有効になっている完全な X サポートが入った Vim の CLI バージョンも含まれています。
  • 非公式の herecura リポジトリには様々な種類の Vim / gVim が取り揃えられています: vim-cli, vim-gvim-common, vim-gvim-gtk, vim-gvim-qt, vim-rt, vim-tiny

使用方法

これは Vim の使用方法に関する基本的な概略です。また、vimtutor もしくは gvimtutor を実行すると25-30分ほどの vim のチュートリアルが起動します。

Vim には4つのモードが備わっています:

  • コマンドモード: キー入力はコマンドとして解釈されます。
  • 挿入モード: キー入力はファイルに挿入されます。
  • ビジュアルモード: キー入力でテキストを選択・カット・コピーします。
  • Ex モード: 追加的なコマンドのための入力モード (例: ファイルの保存, テキストの置換...)

編集の基本

次のように Vim を起動すると:

$ vim somefile.txt

空のドキュメントが表示されます (somefile.txt が存在しない場合。存在するときは、その中身が表示されます) このまま編集することはできません – 今いるのはコマンドモードです。このモードではキーボードを使って Vim にコマンドを実行させることができます。

ノート: Vim は典型的な古典的 Unix スタイルのソフトウェアです。学習曲線は急峻ですが、一度初めてしまえば、Vim がとても強力なのがわかるでしょう。また、全てのコマンドは大文字・小文字を区別します。場合によって大文字のコマンドはその元のコマンドを「大雑把にした」コマンドだったり (s は文字を置き換え、S は行を置き換えます)、または全く違うコマンドだったりします (j は下に移動しますが、J は2行を結合します)

i コマンドで (カーソルの前に) テキストを挿入します。I (大文字の i) は行の最初にテキストを挿入します。テキストの追記 (カーソルの後ろにテキストを記述、ほとんどの人が予期するであろう挿入) には a を使います。A を入力するとカーソルが行末に置かれます。

Esc を押すことでいつでもコマンドモードに戻ることができます。

移動

Vim では、矢印キーを使ってカーソルを移動することができますが、これは Vim の流儀とは言えません。標準のタイピングポジションから矢印キーまで右手を動かしたり、戻したりすることになります。楽しくありません。

Vim においては j を押すことで下に移動できます。“j” は垂れ下がっていると覚えて下さい。逆に k を押すことでカーソルを上に移動できます。左は h で (“j” の左にあります)、右は l です (小文字の L)

^ はカーソルを行の最初に、$ は最後に移動します。

ノート: 一般的に ^$ は正規表現で、行の最初と最後にマッチするものとして使われます。正規表現はかなり強力で *nix 環境では大抵使われています。初めは取っ掛かりにくいように感じられるかもしれませんが、そのうちにほとんどのキーマッピングにはある「思想」が共通していることに気がつくでしょう。

次の単語に進むには、w キーを押します。W はより多くの文字列を単語として考えます (例えばアンダースコアやダッシュを単語の一部としてみなします) 前の単語に戻るには、b を使います。同じように、B は Vim が単語としてみなすものにより多くの文字列を含めます。単語の末尾に移動するには、e を使い、E はより多くの文字列を含めて考えます。

文の最初に移動したいときは、( を使います。) は反対に、センテンスの最後まで移動します。もっと大きな単位で移動したい場合は、{ で段落の最初まで移動できます。} はパラグラフ全体の終末まで移動します。

画面の一番上の行に移動するには、H を使います。M は画面の真ん中まで移動し、L は一番下の行に移動します。gg はファイルの先頭まで飛び、G はファイルの一番最後まで行きます。Ctrl+D はページごとにスクロールします。

コマンドの繰り返し

コマンドの前に数字を付けると、その回数分コマンドが繰り返し実行されます (ただし s コマンドなど例外はあります) 例えば、3i → “Help! ” → Esc と入力すると “Help! Help! Help!“ と書かれます。2} なら2段落だけ前に進みます。これは次のコマンドで役に立ちます。

削除

x コマンドはカーソル上の文字を削除します。X はカーソルの前の文字を消します。先の繰り返しと組み合わせると便利です。6x は6文字分削除します。. (ドット) を押すと直前の動作が繰り返されます。例えば、何箇所に "foobar" という単語を書いていたとして、あれやこれやと考えた末、“foo” だけにしたくなったとします。その際は、"b" のところまでカーソルを移動して、3x と入力して、次の "foobar" に移って . (ドット) を押せば "bar" を簡単に削除できます。

d は Vim に何かを削除したいことを伝えます。d を押した後、Vim に削除したいものを指定してください。移動コマンドを使うことで指定することができます。dW は次の単語を削除します。d^ は行の先頭まで削除を行います。削除コマンドの前に数字を付けることもできます: 3dW は次の3つの単語を削除します。D (大文字) は行末まで削除するショートカットです (つまり d$) dd と入力すると一行まるまる削除されます。

単語を削除して置き換えたいときは、単語の上にカーソルを移動して cw コマンドを実行してください。単語を削除してから挿入モードに移行します。一文字だけ置換するときは r を使います。

アンドゥとリドゥ

Vim にはクリップボードが内蔵されています (バッファとも呼ばれます) 操作は u で元に戻し Ctrl+r でやり直すことができます。

ビジュアルモード

v を押すことでビジュアルモードに入ることができます。ビジュアルモードではあちこち移動して文章を選択し、選択したら、y を押して文章をバッファにヤンク (コピー) したり、c でカットすることが可能です。カーソルの後ろには p でペーストし、P はカーソルの前にペーストします。V は行単位で選択するビジュアルラインモードです。Ctrl+v は矩形選択を行います。

ノート: 何かを削除した時はいつでも、その何かはバッファの中に保存され、貼り付けることが可能です。

検索と置換

ファイル内の単語または文字を検索するには、/ を使って検索したい文字列を入力してエンターを押します。次の検索結果を見るには n を、前の結果に戻るには N を押して下さい。

検索と置換をしたいときは代わりに :s/ コマンドを使います。構文は: [range]s///[arguments]。例:

Command         Outcome
:s/xxx/yyy/     Replace xxx with yyy at the first occurrence
:s/xxx/yyy/g    Replace xxx with yyy at every occurrence in the current line
:s/xxx/yyy/gc   Replace xxx with yyy global with confirm
:%s/xxx/yyy/g   Replace xxx with yyy global in the whole file
:#,#s/xxx/yyy/g Replace xxx with yyy line number range

グローバル :g/ コマンドを使えばパターン検索をしてマッチした部分でコマンドを実行することができます。構文は: [range]:g//[cmd]

Command  Outcome
:g/^#/d  Delete all lines that begins with #
:g/^$/d  Delete all lines that are empty

保存と終了

保存や終了したいときは、Ex モードを使う必要があります。Ex モードのコマンドには : を前に付けます。ファイルを保存するには :w を使い、名前を付けてファイルを保存するには :w filename を使います。終了は :q です。変更を保存しないときには :q! を使って下さい。保存して終了は :x です。

その他のコマンド

  1. s を押すとカーソルの文字が消され、挿入モードに変わります。S は行全体を消去して、挿入モードに移行します。
  2. o は行の下に新しい行を追加して挿入モードに変わります、O 行の上に新しい行を追加して挿入モードに移行します。
  3. yy は行全体をヤンクします。
  4. cc はカーソルがある行を削除して挿入モードに入ります。
  5. * は単語をハイライトして、n はその単語を検索します。

設定

Vim のユーザー別の設定ファイルはホームディレクトリに配置されます: ~/.vimrc。カレントユーザーの Vim ファイルは ~/.vim/ の中に配置されます。グローバルな設定ファイルは /etc/vimrc にあります。グローバルな Vim ファイルは /usr/share/vim/ の中にあります。

gVim の場合、ユーザー固有の設定ファイルは ~/.gvimrc にあり、グローバル設定ファイルは /etc/gvimrc にあります。

ノート:
  • シンタックスハイライトなどの一般的な機能は defaults.vim で有効になっており、~/.vimrc が存在しない場合にロードされます。let skip_defaults_vim=1/etc/vimrc に追加することで defaults.vim のロードを完全に無効化できます [1]
  • gVim は Vim と gVim の設定ファイルの両方をロードしますが、Vim は Vim の設定ファイルのみをロードします。
set wrapscan

クリップボード

:yank:paste などの Vim コマンドは名前のないレジスタを使用しますが、デフォルトでは "* レジスタがこれにあたります。+clipboard 機能が有効になっている場合、"* レジスタは X の PRIMARY バッファになります。

デフォルトのレジスタを変更するには :set clipboard=unnamedplus"+ レジスタを使うことができます。"+ レジスタは X の CLIPBOARD バッファに相当します。 clipboard オプションはカンマ区切りの値に設定できることに注意してください。:set Clipboard=unnamedplus,unnamed の場合、ヤンク操作では、ヤンクされたテキストが "+ レジスタに加えて "* レジスタにもコピーされます。(ただし、削除、変更、および配置の操作は、依然として "+ レジスタに対してのみ実行されます)

詳細については、:help 'clipboard'を参照してください。clipboard 機能に設定できる値は他にもあります。:help Clipboard-unnamed を使用すると、この機能に設定できる最初の有効な値のヘルプ トピックに移動し、続いて他のすべての有効な値のヘルプに移動できます。

ヒント:
  • コピー&ペースト操作のためのカスタムショートカットを作成できます。Ctrl+cCtrl+v、および Ctrl+x のバインディングについては、[2] を参照してください。
  • X クリップボードは vim が終了するとフラッシュされます。vim の選択を X クリップボード内で永続的にするには、クリップボードマネージャ が必要です。あるいは、 autocmd VimLeave * call system("echo -n $'" . escape(getreg(), "'") . "' | xsel --input --clipboard").vimrc に追加します。(xsel パッケージが必要です)

シンタックスハイライト

シンタックスハイライトを有効にするには (Vim は膨大な数のプログラミング言語をサポートしています):

:filetype plugin on
:syntax on

インデント

特定のファイルタイプのインデントファイルをロードするには:

:filetype indent on

折返し表示

wrap オプションはデフォルトでオンになっており、ウィンドウの幅より長い行を折り返し、残りの行を次の行に表示するように Vim に指示します。wrap オプションはテキストの表示方法のみに影響し、テキスト自体は変更されません。

折り返しは通常、単語の途中であっても、ウィンドウに収まる最後の文字の後に行われます。よりインテリジェントな折り返しは linebreak オプションで制御できます。set linebreak で有効にすると、breakat 文字列オプションにリストされた文字の後に折り返しが発生します。

折り返された行は通常、インデントに関係なく次の行の先頭に表示されます。breakindent オプションは、長い行を折り返すときにインデントを考慮し、折り返された行が前に表示されていた行と同じインデントを保つように Vim に指示します。breakindent の動作は breakindentopt オプションで微調整することができ、例えば Python ファイルでは折り返す行をさらに 4 スペース右にずらすことができます (詳細は:help breakindentopt を参照してください):

autocmd FileType python set breakindentopt=shift:4

マウスを使う

Vim にはマウスを利用できるようにする機能がありますが、特定のターミナルでしか機能しません (Linux なら xtermgpm による Linux コンソール、あるいは PuTTY、詳しくはコンソールマウスサポート を参照)

この機能を有効にするには次の行を ~/.vimrc に追加してください:

set mouse=a

~/.vimrc が存在しない場合 mouse=a オプションを defaults.vim に設定することで読み込まれます。

ノート: ターミナルでマウスを有効にすると、X サーバーにアクセスできる場合、コピー&ペーストは "* レジスタを使うようになります。Shift キーを押すことで xterm によるマウスボタンの処理を利用できます。clipboard オプションも参照してください。

矢印キーによる行移動

デフォルトでは、行頭で を押したり、行末で を押しても、カーソルは前の行や次の行に移動しません。

~/.vimrc ファイルに set whichwrap=b,s,<,>,[,] を追加することでこのデフォルトの挙動を変更することができます。

ファイルのマージ

Vim には差分エディタが入っています。2つ (もしくはそれ以上) のファイルの差分をマージするのを助けるプログラムです。vimdiff は横にマルチペイン表示を行って差分を色でハイライトします、それぞれのペインには確認・編集するファイルが開かれます。Vim には複数のモードが存在しますが、重要なのは文章を編集する挿入モードと、ウィンドウや行をわたってカーソルを移動するコマンドモードの2つです。vimdiff file1 file2 を実行して起動します。以下はいくつかのコマンドの例です。

アクション ショートカット
次の差分 ]c
前の差分 [c
カーソルが (ハイライトされた) 差分の上にあるとき、もうひとつのウィンドウから現在のウィンドウに差分をコピー do
現在のウィンドウからもうひとつのウィンドウへ差分をコピー dp
折り畳まれた文章を開く zo
折り畳まれた文章を閉じる zc
ファイルの差分を再スキャン :diffupdate

ヒントとテクニック

作業を完遂するための特定のユーザーのトリック。

行番号

  • :set number で行番号を表示。
  • :set relativenumber で相対的な行番号を表示。
  • :<line number> でその行番号にジャンプ。

ジャンプはジャンプリストに記録されます。詳しくは :h jump-motions を参照。

スペルチェック

set spell

この設定を使うと、Vim はスペルが間違っている単語をハイライトします。ミススペルの単語にカーソルを載せて z= を入力すればスペルのサジェストが表示されます。

デフォルトでは英語の辞書しかインストールされていません、他の辞書は公式リポジトリからインストールできます。利用可能な言語のリストを表示するには:

# pacman -Ss vim-spell

言語辞書は Vim FTP archive からも入手できます。ダウンロードした辞書は ~/.vim/spell フォルダに配置して、次を入力して辞書をセットしてください: :setlocal spell spelllang=LL

ヒント:
  • LaTeX (または TeX) 文章のスペルチェックのみを有効にしたいときは、autocmd FileType tex setlocal spell spelllang=en_us~/.vimrc/etc/vimrc に追加して、Vim を再起動してください。英語以外の言語のスペルチェックを使う場合は、en_us を適当な言語で置き換えて下さい。
  • 2つの言語のスペルチェックを有効にするには (例えば英語とドイツ語)、set spelllang=en,de~/.vimrc/etc/vimrc に追加して、Vim を再起動してください。
  • FileType プラグインとファイルタイプを検出するカスタムルールを使うことで任意のファイルタイプ (例: *.txt) のスペルチェックを有効にすることができます。名前の最後が *.txt で終わるファイルのスペルチェックを有効にするには、/usr/share/vim/vimfiles/ftdetect/plaintext.vim ファイルを作成して、autocmd BufRead,BufNewFile *.txt setfiletype plaintext という行をファイルの中に記述します。そうしたら、autocmd FileType plaintext setlocal spell spelllang=en_us~/.vimrc/etc/vimrc に追加して、Vim を再起動してください。もしくは、~/.vimrc または /etc/vimrcautocmd BufRead,BufNewFile *.txt setlocal spell 行を追加してから Vim を再起動してください。スペルチェックを使用するファイルタイプ (*.txt) を指定するようにしてください。

実行状態の保存

通常、vim を終了すると、開いているファイル、コマンドラインの履歴、ヤンクしたテキストなど、必要のない情報はすべて破棄されます。この情報を保存するかどうかは、以下の方法で設定できます。

viminfo ファイル

また、viminfo ファイルには、コマンドライン履歴、検索文字列履歴、入力行履歴、レジスタの内容、ファイルのマーク、ファイル内の位置マーク、最後の検索/置換パターン (セッション内で n& による検索モードで使用)、バッファリスト、定義済みのあらゆるグローバル変数を保存するために使用されることがあります。viminfo モダリティを使用するには、インストールした vim のバージョンが +viminfo 機能付きでコンパイルされている必要があります。

viminfo ファイルに何を残すかを設定するには、例えば ~/.vimrc ファイルに以下のように記述します。

set viminfo='10,<100,:100,%,n~/.vim/.viminfo

各パラメータの前には識別子が付きます:

'q  : q, 記憶された編集済みファイルの数
<m  : m, 各レジスタに保存される行数
:p  : p, 記憶された履歴コマンド行の数
%   : バッファリストを保存して復元します
n...: viminfo ファイルへの完全修飾パス (これはリテラル "n" であることに注意してください。)

既存の viminfo ファイルが現在のセッション情報、例えばあなたが終了しようとしている現在のセッションのいくつかのバッファから更新されるときに、どのように変更されるかの詳細については、公式 viminfo documentation をご覧ください。

セッションファイル

セッションファイルは、任意の数の特定のセッションの状態を長期にわたって保存するために使用できます。各セッションやプロジェクトに1つの個別のセッションファイルを使用することができます。このモダリティを使用するには、インストールした vim のバージョンが +mksession 機能付きでコンパイルされている必要があります。

セッション内で :mksession[!] [my_session_name.vim] はカレントディレクトリの my_session_name.vim に vim-script を書き出します。ファイル名を not にするとデフォルトで Session.vim が使われます。オプションの ! は、同じ名前とパスの既存のセッションファイルを破棄します。

vim セッションは、ターミナルから vim を起動するときに再開できます:

$ vim -S [my_session_name.vim]

または、vim コマンドを実行して、既に開いているセッション バッファーで次のようにします。

:source my_session_name.vim

保存される内容やセッションファイルのオプションの詳細については、vim documentation で詳しく説明されています。コメント付きの例は、ここ にあります。

カーソル位置の保存

こちらを参照 Restore cursor to file position in previous editing session

vi コマンドを vim で置き換える

vivim にする エイリアス を作成してください。

もしくは、sudo vi と入力したときに vim が起動するようにしたい場合、vi-vim-symlinkAUR をインストールしてください。vi が削除され vim のシンボリックリンクで置き換えられます。

DOS/Windows のキャリッジリターン (CR)

行末に "^M" が表示されることがあります。これは MS-DOS や Windows で作成したテキストファイルを編集しようとしたときに起こります。

解決方法: 次のコマンドで "^M" を全て置換:

:%s/^M//g

注意、"^" は制御文字なので、Ctrl+Q を押して正しい "^" を取得してください。

もしくは、公式リポジトリから dos2unix パッケージをインストールして、dos2unix <file name here> を実行してください。

ノート: fileformat の設定を変えるという方法もあります。set ff=unix で DOS/Windows の改行コードが使われているファイルを Unix の改行コードに変換できます。逆をしたい場合、set ff=dos で Unix の改行コードが DOS/Windows の改行コードに変換されます。

gVim ウィンドウの底部の空きスペース

ウィンドウサイズのヒントを無視するように設定されたウィンドウマネージャを使っている場合、gVim は空の領域を GTK テーマの背景色で塗りつぶします。

解決方法はウィンドウ下部の gVim が確保するスペースを調整することです。ゼロに設定した場合、下の横スクロールバーが見えなくなってしまうことがあるので注意してください。次の行を ~/.vimrc に記述します:

set guiheadroom=0

Vim をページャとして使う

スクリプトを使える Vim は アプリケーション一覧/ユーティリティ#ターミナルページャ として使用することができ、配色などの様々な Vim の機能を得ることができます。

Vim には /usr/share/vim/vim82/macros/less.sh スクリプトが付属しており、その エイリアス を作成することで利用できます。このスクリプトは less(1) § OPTIONS で述べられているコマンドラインフラグをサポートしていないことに注意してください。

代わりに、vimpager という Vim スクリプトもあります。Vim スクリプトもあります。デフォルトのページャーを変更するには、環境変数 PAGERexport してください。全てのコマンドラインフラグに対応しているわけではないことに注意してください。対応するフラグの一覧は、こちらを参照してください。 available on GitHub

検索結果の強調表示

検索の入力中に検索で一致する最初の文字列を強調表示するには、~/.vimrc に次の行を追加します。

set incsearch

検索の入力中に検索で一致するすべての文字列を強調表示するには、検索が実行された後、~/.vimrc に次の行を追加します。

set hlsearch
ノート:
  • hlsearch を設定すると、さらに検索が行われるまで、すべての一致が強調表示されたままになります。この動作は望ましくない場合があるため、次の検索まで一時的に強調表示を無効にするには、:nohlsearch を実行します。このコマンドを頻繁に実行する場合は、コマンドをキーにバインドすることを検討してください。
  • この動作は、sg などの正規表現を含む他のコマンドで正規表現を照合するときにも表示されます。

プラグイン

vim にプラグインを追加することで生産力を向上させることができます。

インストール

内蔵のパッケージマネージャを使う

Vim 8 からサードパーティ製のプラグインをロードする機能がネイティブで追加されています。サードパーティ製のパッケージを ~/.vim/pack/foo に保存することで使用することができます。

プラグインマネージャを使う

プラグインマネージャを使うことで Vim を実行しているプラットフォームから独立して Vim プラグインをインストール・管理することができます。以下が他の Vim プラグインのパッケージマネージャとして使えるプラグインです。

  • Neobundle は Vundle をベースにして作られた、現在 Vim で最も人気があるプラグインマネージャですが、開発は今後保守だけになると開発者によって発表されています。
  • Dein.vim は NeoBundle の開発者が新たに開発している Vim/Neovim のプラグインマネージャです。開発者曰くこちらに移行して欲しいとのこと。vim-dein-gitAUR でインストールできます。
  • Vundle は Vim で人気があるプラグインマネージャです。
  • Vim-plug はミニマルな Vim プラグインマネージャです。必要に応じてプラグインをロードしたり並列アップデートなどの多数の機能を備えています。
  • pathogen.vim は Vim のランタイムパスを管理するシンプルなプラグインです。

Arch のリポジトリを使う

vim-plugins グループには様々なプラグインが入っています。pacman -Sg vim-plugins コマンドを使うことで pacman でインストールできるパッケージのリストを確認できます。

注目のプラグイン

cscope

Cscope はプロジェクトを閲覧するためのツールです。単語/シンボル/関数まで移動して (ショートカットキーを使って) cscope を呼び出すことで次のことがわかります: 関数を呼び出している関数や、関数の定義など。コードベースを検索するには複数の手順が必要です。

cscope パッケージを インストール してください。

cscope のデフォルトファイルを vim が自動的に読み取るところへコピーします:

mkdir -p ~/.vim/plugin
wget -P ~/.vim/plugin http://cscope.sourceforge.net/cscope_maps.vim 
ノート: Vim 7.x で cscope ショートカットを有効にするには、おそらく ~/.vim/plugin/cscope_maps.vim でこれらの行のコメントを解除する必要があります。:
set timeoutlen=4000
set ttimeout

cscope にインデックス化して欲しいファイルを記述したファイルを作成 (Cscope は多数の言語を扱えますがこの例では .c, .cpp, .h ファイルを find しています):

$ cd /path/to/project/dir
$ find . -type f -print | grep -E '\.(c(pp)?|h)$' > cscope.files

cscope が読み取るデータベースファイルを作成します:

cscope -bq
ノート: この場所からプロジェクトファイルを閲覧するか、$CSCOPE_DB 変数を設定して cscope.out ファイルの場所を指定してください。

デフォルトのキーボードショートカット:

 Ctrl-\ and
      c: Find functions calling this function
      d: Find functions called by this function
      e: Find this egrep pattern
      f: Find this file
      g: Find this definition
      i: Find files #including this file
      s: Find this C symbol
      t: Find assignments to

ショートカットは自由に変更することができます。

#Maps ctrl-c to find functions calling the function 
nnoremap <C-c> :cs find c <C-R>=expand("<cword>")<CR><CR>

Taglist

Taglist はソースコードファイルの構造の概観を提供し、様々なプログラミング言語で書かれたソースコードファイルを効率的に閲覧できるようにします。

vim-taglistAUR パッケージをインストールしてください。

~/.vimrc に記述する有用なオプション:

let Tlist_Compact_Format = 1
let Tlist_GainFocus_On_ToggleOpen = 1
let Tlist_Close_On_Select = 1
nnoremap <C-l> :TlistToggle<CR>

トラブルシューティング

gVim が遅い

Vim の GTK3GUI は GTK2 バージョンよりも遅い場合があります(FS#51366 を参照) gvim-gtk2AUR を回避策としてインストールしてみて下さい。

参照

公式

チュートリアル

動画

チートシート

ゲーム

設定

カラー