Vimは過去に実務で使用したことがありましたが、体系的に学習した記憶がありませんでしたため、以下の教材を学習しました。学習記録として、基本的なコマンドをまとめてみました。
現役シリコンバレーエンジニアが教える NeoVim(VIM) + Tmux + Zsh 入門 - Udemy
Vimとは
テキストエディタの一種で、コマンドラインで使用する。
使用場面としては、サーバの操作やサーバに配置されているプログラムを変更する際に特に利用する。
Vimとほぼ同じ機能があるNeoVimがある。違いとしては、 NeoVimの方がプラグインが豊富にあること。
モード変更
Vimはモードによって行える操作が異なるため、行いたい操作によって、モードを切り替える必要がある。Vim起動後、以下コマンドでモードを切り替える。起動時は ノーマルモード で立ち上がる。
| コマンド | 説明 | 
|---|---|
| ノーマルモード | カーソル移動や文字を削除、行のコピペなどで使用。 escでノーマルモード | 
| インサートモード | ファイルに入力する際に使用。 iでインサートモード | 
| コマンドモード | 検索、置換、保存などに使用。 :や/でコマンドモード | 
| ビジュアルモード | カーソル選択でコピペやインデント移動に使用。 vでビジュアルモード | 
インサートモードは i 以外にも a や o 、 O でも変更可能
ノーマルモード で実行する操作
カーソル移動
| コマンド | 説明 | 
|---|---|
| k | 上に移動 | 
| j | 下に移動 | 
| h | 左に移動 | 
| l | 右に移動 | 
| gg | ファイルの一番上の行に移動 | 
| G | ファイルの一番下の行に移動 | 
| 0 | 行の先頭に移動 | 
| $ | 行の末尾に移動 | 
| :数字 | 数字の行に移動(:set numberで行数を表示可能) | 
| CTRL + o | 移動前に戻る | 
矢印キーでもカーソル移動はできるが、kやjなどでカーソル移動したほうが、キーボード上で指の移動が少なくて済む。
入力
| コマンド | 説明 | 
|---|---|
| o(小文字) | カーソルを当てた下の行から入力 | 
| O(大文字) | カーソルを当てた上の行から入力 | 
| a | カーソルを当てた右横から入力 | 
| i | カーソルを当てた左横から入力 | 
上記のコマンドを実行すれば、ノーマルモードからインサートモードに切り替わる。
削除
| コマンド | 説明 | 
|---|---|
| x | カーソルを当てた文字を消す | 
| dd | カーソルを当てた行を消す | 
| 数字dd | カーソルを当てた行を含めて、数字分の行を消す | 
| dw | カーソルを当てた単語を削除 | 
削除した後に、uを叩けば、削除した文字を元に戻せる。また、元に戻しすぎてしまった場合は、「Control + r」を叩けば、復活する。
コピー、ペースト
| コマンド | 説明 | 
|---|---|
| yy | 1行コピー | 
| 数字yy | 数字で指定した行数分コピー | 
| p(小文字) | カーソルの真下にペースト | 
| P(大文字) | 行の一番下にペースト | 
コマンドモードで実施する操作
検索
| コマンド | 説明 | 
|---|---|
| /検索キーワード | 検索したいキーワードを探す | 
| n | 検索したいキーワードが複数ある場合、下方向に移動する | 
| N | 検索したいキーワードが複数ある場合、上方向に移動する | 
置換
| コマンド | 説明 | 
|---|---|
| :%s/置換前/置換後/g | 一括置換 | 
| :%s/置換前/置換後/gc | 一つずつ置換してよいか確認してから置換 | 
上記以外でも、削除で使用した dw で単語単位で消してから、書き換える方法もある。
ファイルを保存、閉じる
| コマンド | 説明 | 
|---|---|
| :q | テキストを編集していない状態で、保存せずに閉じる | 
| :q! | テキストを編集している状態でも、編集していない状態でも保存せずに閉じる | 
| :w | ファイルを上書き保存 | 
| :w ファイル名 | 名前をつけて保存 | 
| :wq | 保存してから閉じる | 
コマンド実行
| コマンド | 説明 | 
|---|---|
| :!実行コマンド 実行したいコマンド(※) | エディタを開いた状態でプログラム実行 | 
| :!! | 前コマンドを実行 | 
(※)Rubyの場合、例えばruby test.rbと実行すれば、test.rbを開いた状態で実行可能。
ビジュアルモードで実行する操作
その他
| コマンド | 説明 | 
|---|---|
| > | 右にインデントを移動 | 
| < | 左にインデントを移動 | 
| コピーしたい範囲を選択して、y | カーソル指定コピー |