Vinの操作スタイルについて
Vimには4つのモードがあり、それぞれのモードを切り替えて編集します。
モードはコマンドを使って切り替える事ができます。
| コマンド |
効果 |
| Esc |
ノーマルモードへ移行 |
| i, a |
インサートモードへ移行 |
| v |
ビジュアルモードへ移行 |
| : |
コマンドモードへ移行 |
ノーマルモード
ノーマルモードではカーソル移動を基本にコピペや削除を行えます。
カーソル移動 (文字単位)
| コマンド |
効果 |
| h |
左に移動する |
| j |
下に移動する |
| k |
上に移動する |
| l |
右に移動する |
カーソル移動 (単語単位)
| コマンド |
効果 |
| w, W |
次の単語の先頭に移動する |
| e, E |
今の単語の末尾に移動する |
| ※WとEの補足 |
空白に挟まれた文字を一単語として認識する |
| % |
カーソル位置にある括弧に対応した括弧に移動する |
カーソル移動 (行単位)
| コマンド |
効果 |
| 0 |
行頭に移動する |
| $ |
行末に移動する |
| gg |
ファイルの先頭行に移動する |
| G |
ファイルの最終行に移動する |
| H |
スクリーンの最上行に移動する |
| M |
スクリーンの中央に移動する |
| L |
スクリーンの最下行に移動する |
削除
| コマンド |
効果 |
| dw |
単語を削除する(空白含む) |
| de |
単語を削除する(空白含まない) |
| dd |
行を削除する |
| D |
カーソルより後の文字を削除する |
コピペ
| コマンド |
効果 |
| yw |
単語をコピーする(空白含む) |
| ye |
単語をコピーする(空白含まない) |
| yy, Y |
現在行をコピーする |
| p |
下の行に貼り付ける |
| P |
上の行に貼り付ける |
インサートモード
インサートモードでは文字の挿入を行えます。
挿入
| コマンド |
効果 |
| i |
カーソルの左からインサートモードに入る |
| a |
カーソルの右からインサートモードに入る |
| I |
行頭からインサートモードに入る |
| A |
行末からインサートモードに入る |
| o |
下に行を追加しインサートモードに入る |
| O |
上に行を追加しインサートモードに入る |
置き換え
| コマンド |
効果 |
| r |
1文字置き換える |
| R |
1文字以上置き換える |
| cw |
単語を置き換える |
ビジュアルモード
ビジュアルモードでは選択範囲を指定し、対象に操作を行えます。
ビジュアルモードの中にもモードが3つあり、場面に応じて使い分けます。
| コマンド |
選択モード |
コマンド |
| v |
VISUAL |
文字選択 |
| V |
VISUAL LINE |
行選択 |
| ctrl + v |
VISUAL BLOCK |
短形選択 |
選択する
| コマンド |
効果 |
| vh, vl |
一文字ずつ選択する |
| ve, vE |
1単語ずつ選択する |
| Vj, Vk |
一行ずつ選択する |
| V5gg, V5G |
5行目まで纏めて選択する |
| ctrl + v → j0I |
計2行の先頭に文字を挿入する |
選択範囲に操作する
| コマンド |
効果 |
| vd |
選択範囲を削除する |
| vc |
選択範囲を削除してインサートモードに入る |
| vy |
選択範囲をコピーする |
| vp |
選択範囲の文字をコピーに置き換える |
コマンドモード
コマンドモードでは文字検索やファイル操作等、他にも様々な操作が行えます。
文字検索
| コマンド |
効果 |
| :/word |
'word'を検索する |
| (検索中に) n |
下向きに次の検索 |
| (検索中に) N |
上向きに次の検索 |
| :s/old/new/g |
現在行の'old'を'new'に置き換える |
| :%s/old/new/g |
ファイル上の全ての'old'を'new'に置き換える |
ファイル操作
| コマンド |
効果 |
| :q |
Vimを終了する |
| :w |
ファイルを保存する |
| :wq |
ファイルを保存してVimを終了する |
個人的によく使うコマンドの組み合わせ
コマンドを組み合わせる事で効率よく操作を行う事が出来ます。
| コマンド |
効果 |
| 5gg, 5G |
行番号を指定して移動する |
| o |
下に空行を追加する |
| Vc |
現在行の文字を全て削除して新たに文字を挿入する |
| cE |
単語の終わりまで削除してインサートモードに入る |
| yE |
単語の終わりまでコピーする |
| yyp, Yp |
現在行をコピーし下に挿入する |
| vep |
選択範囲の文字とコピーした文字を置き換える |
| ctrl + v → 5j0I |
計6行の先頭に文字を挿入する |
Vimに慣れるために
- vimtutorを行う
- macであればターミナルに
vimtutorを入力すると起動する
- 2〜3周してコマンドに慣れる
- 作業環境をvimに染める
- 自分の場合はvscodeにvimのプラグインを入れ、毎日vimを使う環境にしました。
- アウトプットをvimで行う
- この記事もvimを使用して作成しています。とにかく慣れるまで使いましょう。