Vimを「ただのエディタ」から「最強の開発環境」へ。
基本操作(移動、挿入、保存)に慣れたあなたなら、Vimのポテンシャルがこんなものではないと薄々感づいているはずです。
Vimの真価は、指先の操作だけで思考スピードに追いつく「編集の自動化」と、自分好みに拡張できる「無限のカスタマイズ性」にあります。
本記事では、実務で役立つ15の応用テクニックを厳選しました。
これらを習得すれば、あなたのVimは単なるエディタではなく、最強の統合開発環境(IDE)へと進化します。
思考スピードで編集する(移動・選択・コピペ)
1. ノーマルモードでの高速移動術
h j k l だけでは辿り着けません。ターゲットへ一瞬で飛ぶためのコマンドです。
w/b: 次の単語 / 前の単語へ移動0/$: 行頭 / 行末へ移動gg/G: ファイルの先頭 / 末尾へ移動f{char}: 行内の次の文字{char}へジャンプ(例:ftで次のtへ)Ctrl + u/Ctrl + d: 半ページ上 / 下へスクロール
2. ビジュアルモード(矩形選択)の活用
縦に並んだデータを一括編集するのに最強の機能です。
Ctrl + vで矩形ビジュアルモードに入る。jやkで縦方向の範囲を選択。I(大文字アイ)を押して文字を入力(例://)。Escを2回押すと、選択行すべてに反映されます。
3. レジスタを使った高度なコピペ
「さっきコピーした内容、別のものをコピーしたら消えちゃった…」という経験はありませんか?
Vimには複数のクリップボード(レジスタ)があります。
"ayy " 現在行をレジスタ a にコピー "byy " 現在行をレジスタ b にコピー "ap " レジスタ a の内容を貼り付け "bp " レジスタ b の内容を貼り付け :reg " レジスタの中身一覧を表示
一括処理を極める(検索・置換・マーク)
4. 正規表現による強力な置換
単純な置換だけでなく、パターンマッチした部分の再利用も可能です。
:%s/foo/bar/g " ファイル全体で foo を bar に置換 :%s/\s\+$//g " 行末の余計な空白を一括削除 :%s/^\(.*\)$/\1;/g " 全行の末尾にセミコロンを追加(キャプチャ利用)
5. マーク機能で「場所」を記憶する
巨大なファイルを編集する際、行ったり来たりする時間をゼロにします。
ma " 現在位置をマーク a に登録 'a " マーク a の行へジャンプ `a " マーク a の正確な位置へジャンプ
6. ジャンプリスト(編集履歴を移動)
「さっき編集していた場所」に戻るためのタイムマシン機能です。
Ctrl + o: 古い場所へ戻る(Back)Ctrl + i: 新しい場所へ進む(Forward)
VimをIDE化する(プラグイン・ターミナル連携)
7. ターミナルモード(Vim 8以降)
Vimを閉じずにシェルコマンドを実行できます。
:terminal " Vim内でターミナルウィンドウを開く
ウィンドウ分割と組み合わせれば、コードを書きながら右側で git status やビルドを実行できます。
8. 必須プラグインで武装する
「素のVim」にこだわりすぎず、便利なプラグインは積極的に導入しましょう。
| プラグイン名 | 役割 |
|---|---|
| NERDTree | ファイルエクスプローラー(左側にツリー表示) |
| coc.nvim | コード補完(VSCodeライクなLSP機能) |
| fzf.vim | 高速なファイル検索(あいまい検索) |
| vim-fugitive | Git連携(:Gdiff で差分確認など) |
| vim-airline | ステータスバーをリッチにする |
9. 前回のカーソル位置を記憶する設定
ファイルを開き直したとき、一番上に戻ってしまうのを防ぎます。~/.vimrc に以下を追記します。
if has("autocmd")
autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
まとめ:Vimは育てるエディタ
今回紹介した15のテクニックは、Vimの底知れない機能の一部に過ぎません。
しかし、これらを日常的に使いこなせるようになれば、あなたの開発スピードは劇的に向上しているはずです。
Vimは「使い方を覚える」だけでなく、「自分専用に育てていく」エディタです。
便利な設定やプラグインを少しずつ取り入れ、あなただけの最強の開発環境を作り上げてください。

コメント