VimやNeovimで素早くコードを書きたい・変更したい
vimやNeovim(以下vim)を使い始めてみたものの使い慣れていなくて速度が遅い・・・うろ覚えで使ったコマンドが間違えててコードレビュー中にvim辞めたら?と言われてしまう・・・そんな辛い現実を超克するための覚書です。
速度を上げたかったらこんなテクもあるよ!や、なぜこれを使わない?というものがありましたら、ぜひご教示ください!
移動技
vim使いに特に必要なのは縦横無尽に速攻でカーソルを動きまわらせること。素早く動いてペアプロしている人たちの目を撹乱するくらいに早く動きたい・・・一度でいいから「もっとゆっくり打って・・・」と相手を困らせてみたい・・・
jコマンドとkコマンド
基本中の基本。jで下に一行ずつ、kで上に一行ずつ進む。jkにさわれている気分になれる良いコマンド。
l(エル)コマンドとhコマンド
これも基本中の基本。lで右に一文字ずつ、hで左に一文字ずつ進む。
g×2コマンドとshift + gコマンド
これも基本中の基本。gを2回押下することで行の一番上へ飛ぶ。shift + gで行の一番最後へ飛ぶ。
^コマンドとshift + $コマンド
^コマンドでその行の一番最初の文字へ飛ぶ。shift + $コマンドでその行の一番最後の文字へ飛ぶ。
wコマンドとbコマンド
wコマンドは単語区切りで前へ進む。bコマンドは単語区切りで後ろに進む。
編集技(単発コマンド編)
編集するときに初めてvimを触る人には独特な動きに見えるカーソルの位置が特徴的。初めて使うキャラが思うようにいうこと聞いてくれないあの感覚を味合わせてくれるそんなコマンド。
iコマンド
インサートモードに入って編集することができる。カーソルを変更したい文字に合わせてこいつを押すと、その文字の後ろに編集カーソルが出現するからなれる必要がある。
aコマンド
iコマンドがハラタツ動きをするので、カーソル変更したい文字に合わせてこのコマンドを押せば、変更したい文字の前で編集カーソルが出現してくれる。現時点で重宝しているコマンド。
yコマンド
ヤンクと呼ばれる独特なコピーコマンド。選択した行をコピーしクリップボードに乗せることができる。
pコマンド
ペーストコマンド。コピーした行をカーソル位置から一行下に貼り付ける
d×2コマンド
dを2回押下することで一行を削除することができる。削除した行は一旦クリップボードにコピーされるので、pコマンドで別の場所に貼り付けることも可能。メソッドの場所きもいなぁってなった時とか便利。
xコマンド
一文字ずつ削除することができる。
編集技(コンボ編)
vimコマンドは組み合わせることで効果を伸ばすことができる。よく使うコンボは今の所以下のものですが、組み合わせ次第で効果的に使えるはず・・・超必ライクな組み合わせを編み出していきたい・・・
shift + v からのjコマンドからのyコマンド
shift + vがvisual lineのモードに移行し、一行を選択した状態になるので、ここからjコマンドで下に移動し、選択したい範囲まで動いてからコピーする。
shift + v からのjコマンドからのd×2コマンド
これは選択範囲を選んでまるごと吹き飛ばすことができる。
ctl + vからのw or bコマンドからのd×2コマンド
ctl + vでvisual blockモードに移行し単語区切りで横移動して削除。
:を使ったコマンド
vimには:を使ったコマンドも数多く存在する。
:w・:q・:wq
基本中の基本。wで保存。qで終了。:wqで保存して終了。
:行番号
これも基本中の基本。指定した行番号へ飛ぶ。
:%s/書き直したい文字列/書き直す文字列/
置換コマンド。めちゃんこ使う。
\も含めた文字列を変換したい場合、\をもう1つ入れて特殊文字扱いの\をエスケープさせてあげないと文字列扱いされず、置換対象に取れないので注意。
:始行数,終行数s/書き直したい文字列/書き直す文字列/
全部置換されて欲しくない時、範囲を指定してその範囲だけで置換を行える。
終わりに・・・
もっと強くなるためのコマンドがあるはずなので、もっと調べて吸収したい・・・ぶっちゃけまとめ終わった後に見返してみたら知ってるコマンド少な!!!!!となった・・・
vimのカスタム状況はこちらです。ご参考になれば・・・また、このプラグインで強く慣れる!というのがあればそちらもまた教えていただけると嬉しいです。
私のvimカスタム