実務でVimを活用して思考の速度で編集しよう!(ショートカット編)
はじめに
こんにちはBlueZzです。
私は普段web系の自社開発企業でバックエンドエンジニアとして開発に携わっています。
(SESから自社開発企業に転職した際の記事は↓をご覧ください!!!!)
自社開発企業に入った直後に当時のエンジニアリーダーに言われたのが、
「え?まだVim使ってないの?」というひとこと(Vimハラ)でした笑
当時(今から約2ヶ月前)は「なにいってんだこいつはw」くらいにしか思ってなかったんですが、
実際にVimを実務でも普段の開発でも使ってみてエンジニアリーダーの気持ちがすごくわかるようになりました。
私自身Vim歴2ヶ月の駆け出しエンジニアなのですが、
それでもVimで生産性が飛躍的に上がったと実感しています!
なので今回は、実務でVimを活用するためのテクニックとして、
よく使う便利なVimのショートカットについて紹介します。(プラグインについてはまた別の記事にします!)
Vimを使いこなして思考の速度で編集できるようになりましょう!
また世のつよつよVimmerのみなさんは指摘事項があれば
ぜひコメントいただけますと幸いです🙏🙏🙏
※ 筆者はCursorにVSCode NeoVim拡張機能を入れて使っています!
移動系
移動系ショートカットを覚えることで、
タッチパッドで移動する場合の100万倍の速度で移動することができます。
Vimを使っていない場合の移動は、
指の筋肉と神経をタッチパッドの摩擦で削りとる苦痛を伴うものになりますが
Vimmerであればそんな心配はありません。
Shift + g, ggでファイルの先頭・末尾へ移動
コード書いててファイルの先頭・末尾に移動したい時、あるでしょう。
Shift + g でファイルの末尾に、
gg(g2回) でファイルの先頭にいけます。

もうタッチパッドで何回もスクロールする必要はありません。
Ctrl + d, uでスクロール
まさかスクロールするのにいちいちタッチパッド使ってませんよね?
Ctrl + d, uで上下にスクロールできますよ。

Ctrl + oで前いた場所に移動、Ctrl + iでその逆
前いた場所ってどこやねんって感じするんですけど私もわからんです笑。
と、いうのも定義ジャンプと組み合わせて使う時以外はあまり使わないので。
後ほど紹介するgdでの定義ジャンプと組み合わせるとこれらのショートカットはかなり強力だと思います。
↓のgifではgdとCtrl + o,iを組み合わせて使っています。
定義ジャンプした後に元の場所に戻ったりもう一度確認する時に便利です!

^で行の先頭の文字に移動
行のど真ん中とかにいるけどその行の単語の先頭に移動したい時は^(キャレット)が便利。

0, $で行の先頭・末尾に移動
その行の先頭・末尾に移動したいときは0, $が便利です。
ちなみに^でのその行の先頭の単語への移動は、0 + wでも実現できます。

w, bで単語ごとに移動
hとlだけだと大きく横に移動するときに不便です。
wとbを使えば単語区切りで横に飛べるので、
0とか$を使うほどではないけどパッパッと移動したいときに便利です。

切り取り・範囲選択系
Vimを使っていないみなさん、削除したい部分をいちいちタッチパッドをなぞって消していませんか?
そんなことしてたらタッチパッドの摩擦によって
人差し指が第2関節あたりまで削り取れるのは時間の問題です。
今すぐ↓にあるコマンドを覚えてください、はやくしないと命に関わります😰
Shift + dでカーソル位置から行末尾まで削除
カーソルの位置から行末までザ・ハンドしたいとき(削り取りたい)、ありますよねぇ?
そんなあなたはShift + dを使いましょう。

ddで行切り取り
このショートカットを知ったあなたはCmd + xを使えなくなること確実です。

dw, db, cw, cbで単語切り取り
dキーとw, bキー、cキーとw, bキーの組み合わせで、
単語ごとに切り取り or 切り取り後にinsertモードに入ることができます。

viwで単語選択
単語のど真ん中とかにいる時にその単語を選択したいって時あるでしょ。
こいつを使ってみてください。
このショートカットを知ったとき私はキーボードのvキーから生まれてきたのかもしれないといっても過言だと思いました。

Shift + vで行選択
カーソル行を選択できます。
広範囲を選択したり、gg, Shift + v, Gで全選択とかの時に使います。
正直全選択に限ってはcmd + aの方がはや、、、おっと誰か来たようだ🙂

その他
選択系・切り取り系以外にも覚えておくと便利なショートカットはたくさんあります。
その中で私がよく使うショートカットを紹介します!
gdで定義ジャンプ
関数とかクラスの定義元を知りたい時に非常に強力なショートカットです。
ただし、coc.nvimとかのプラグインとLSPの設定が別途必要なものです、おそらく。
それに関してはプラグイン編の記事をお待ちください🙏
よく使うやり方としては、
定義を知りたいものがコードに出てきたらgdで飛んで、
Ctrl + oでもとの場所に戻ったりCtrl + iでもう1回確認しに行ったりという感じです。
↓のgifでは、userdm.userRepositoryの定義元にいってそこから元のファイルに戻るということをやっています。

ghでカーソル位置にホバー
カーソル位置にホバーを当てるやつです。(2025/8/15 coc.nvimかnvim-lspconfigの設定がいるかもです!!!!!すみません!!!!!🙇)
なんか別環境だとgitのcommitとか出せたんですけど出ないですね、なんでだろう。
そうでなくても関数の引数の型とか知れるので便利ですが。

r + 任意のキーでカーソル位置の文字を置換
よくマークダウンでtodoを管理していて、
終わったやつはr + xでチェックつけることにしているのでその時にめっちゃ多用します。

Shift + <> でインデント、.でリピート
普段はフォーマッターをoption + Shift + fでかけているので、
インデントを手動でやる場面はあまりないのですが覚えておくと便利です。
また.で前回のコマンドを繰り返し使えます。
なぜインデントと一緒に紹介しているかというと、
Shift + <>は1回やると選択が解除されてしまうのですが、.でリピートさせればこの問題を解決できるからです。↓

まとめ
今回は実務で活かすVimのショートカットを紹介しました!!!
知らないショートカットがあったVimmerの方はぜひこれから使ってみていただき、
Vimmerでない方はぜひこれからVimmerとしての人生を始めてみてください!!!!
次は便利なプラグインを紹介できればと思います!
では!!!!!
Discussion