Vim

超個人的Vimチートシート

備忘として超個人的なVimコマンドのチートシートを記します。

僕はVimmerを志してからまだ日が浅いので、「超個人的」とは書いたものの、大して癖のあるような代物でもありません。『基本的なコマンド+α』位のレベル感かと思います。

また、新しく便利なコマンドを見つけ次第その都度追記していきます。

何かの参考になりましたら幸いです。

ノーマルモード

移動系

「Ctrl+d」と「Ctrl+u」でカーソルを半画面分移動できることを知ってから、ページ内の移動速度がかなり向上しました。

「gg」と「G」は重宝しています。よくどっち(「gg」/「G」)がどっち(一番上/下)に移動するのかこんがらがってしまっていたのですが、僕は『「G」の方が大きくて重そうだから一番下に移動する』という風に覚えています。

キー動作
h/j/k/l左/下/上/右
w次の単語の先頭へ進む。
e次の単語の末尾へ進む。
b前の単語の先頭へ戻る。
{段落単位で前に戻る。
}段落単位で次へ進む。
Ctrl-d半画面ページダウン。
Ctrl-u半画面ページアップ。
ggファイルの先頭に移動する。
Gファイルの末尾に移動する。
gd同じファイル内にある変数の定義場所に移動する。

編集系

「削除=d」のイメージだったのですが、「c」を覚えたら、削除&インサートの流れがだいぶスムーズになりました。

キー動作
cchangeコマンド。テキストの一部を削除し、即座にインサートモードに入ることができる
ddeleteコマンド。テキストの一部を削除する。(※インサートモードにはならない。)
cc行を丸ごと削除してインサートモードに入る。
gJカーソルがある行末の改行を削除する。
>選択した行のインデントを右にずらす。

モード変更

「A」は覚えておくと地味によく使うので便利です。

キー動作
v文字単位のビジュアルモードに入る。
V行単位のビジュアルモードに入る。
Ctrl + v矩形ビジュアルモードに入る。
:termターミナルモードに入る。
aカーソルの直後からインサートモードに入る。
A行の末尾からインサートモードに入る。($aと同じ。)
oカーソルの1行下に新しい行を作ってからインサートモードに入る。
Oカーソルの1行上に新しい行を作ってからインサートモードに入る。
iカーソルの手前からインサートモードに入る。
I行頭からインサートモードに入る。

検索・置換系

ここら辺の細かい検索条件・正規表現は今後の課題です。(習得したらだいぶ強いんだろうなぁ…。)

キー動作
/hogehogeを検索
?hogehogeを後方検索
:substitute置換を行う。

ファイル操作(コマンド)

さらなるVim力を身に付けるためには「:help」コマンドを引きまくる必要がありそうです。

キー動作
:helpVimマニュアルを開く。
:wファイルを保存する。
:wqファイルを保存して閉じる。
:q!ファイルの内容を保存せずに終了する。
:eファイルを開く。
:ls存在しているバッファの一覧を表示する。
:b異なるバッファに表示を切り替える。
:ExNetrw(ファイルマネージャー)を開く。

ウィンドウ操作

「追加でこのファイルも編集しちゃいたい」みたいな時に便利になると思います。(まだそこまで多用していない。)

キー動作
:spファイルを水平分割して開く
:vsファイルを垂直分割して開く
Ctrl-w + H/J/K/L現在のウィンドウ自体を移動する

インサートモード

自動補完

自動補完を活用すればタイポも減っていきます。

キー動作
Ctrl+n補完候補出現。候補一覧の次へ進む。
Ctrl+p補完候補一覧の前に戻る。

プラグイン管理(vim-plug)

プラグイン管理には「vim-plug」を使っています。

キー動作
:PlugInstall.vimrcに記載されているプラグインをインストールする。
:PlugUpdateインストールされている全てのプラグインをアップデートする。
:PlugClean.vimrcから削除したプラグインを削除する。

番外編

ちょっとしたTips的なものです。

遅いプラグインのプロファイリング方法

起動時に下記のコマンドを実行することで、Vim起動時に各プラグイン含めた起動時間を記したログ出力ファイルが生成される。

$ vim --startuptime startuptime.log

参考資料