ターミナル上でVSCode等のIDEを起動する程ではないけれど、簡易的にコードを書きたいときに役立つのがVim 今回はその操作方法について記事にまとめてみました。
公式ドキュメントはVim help filesになります。
視覚的にゲーム感覚で操作を覚えるならVim Adventuresもおすすめです。
Vimの立ち上げ(ターミナル上で入力)
vim <ファイル名> ファイル名を指定して起動
view <ファイル名> viewモード(読み取り専用)で起動
set shell=/bin/zsh
set shiftwidth=4
set tabstop=4
︙
Vimは主に4つの入力モードに分かれます
| 入力モード |
説明 |
| Nomalモード |
立ち上げ時の初期モード(ここから下記3つ相互に切り替える) |
| Insertモード |
文字力時のモード |
| Commandモード |
ウインドウ下部でコマンド入力、実行が可能 |
| Visualモード |
記述された文字列を範囲選択できる |
Nomalモード上での操作
操作系
| 入力キー |
説明 |
| h:左 j:下 k:上 l:右 |
カーソル移動(キーボード入力) |
| u |
Undo |
| Ctrl + r |
Redo |
| . (ピリオド) |
直前の動作をリピート |
切り替えコマンド
| 入力キー |
説明 |
| Esc |
(各モードから) Nomalモードへ切り替え |
| i |
(Insertモードへ) カーソルの位置から入力 |
| a |
(Insertモードへ) カーソルの後ろから入力 |
| shift + r |
(Insertモードへ) 置換(既にある文字列を上書き)入力 |
| o |
選択行の下に空白を入れ、Insertモード |
| shift + o |
選択行に空白を入れ、Insertモード |
| : or / |
Commandモードへ切り替え |
| v |
Visualモードへ切り替え |
削除系(削除後、pコマンドでペースト可能)
| 入力キー |
説明 |
| x |
1文字削除 |
| dw |
単語単位での削除 |
| dd |
1行削除 |
| (n) dd |
(n)行毎の削除 |
コピー&ペースト
| 入力キー |
説明 |
| yy |
1行コピー |
| (n) yy |
(n)行毎のコピー |
| shift + p |
現在行にペースト |
| p |
下の行にペースト |
| shift + j |
行の連結 |
移動系
| 入力キー |
説明 |
| 0(ゼロ) |
行の先頭に移動 |
| $ |
行の末尾に移動 |
| gg |
ファイルの先頭に移動 |
| shift + g |
ファイルの末尾に移動 |
| ^ |
インテントの先頭に移動 |
| { } |
段落毎上下に移動 |
| [ [ ] ] |
セクション毎上下に移動 |
| Ctrl + o |
移動前に戻る |
Insertモード上での操作
- 通常の文字入力のモード、これに切り替えて文字入力できる。
Commandモード上での操作
| 入力キー |
説明 |
| n |
n行目に移動 |
| q q! |
vimの終了(!付きでファイル保存せず強制終了) |
| w w! |
ファイルの上書き保存(!付きで強制保存) |
| wq |
ファイルを保存して終了 |
| w <ファイル名> |
名前をつけて保存 |
| ! <言語名> <ファイル名> |
ファイルを選択のプログラミング言語で実行 |
| !! |
前のコマンドを実行(繰り返し) |
| set number |
行番号の表示 |
| %s/<置換前の文字>/<置換後の文字>/g |
一括置換 |
| %s/<置換前の文字>/<置換後の文字>/gc |
確認しながら一つずつ置換 |
| /<検索文字> |
文字の検索 |
| (上記の文字検索を実行後) |
|
| n |
次の検索結果に移動 |
| shift + n |
前の検索結果に移動 |
Visualモード上での操作
| 入力キー |
説明 |
| shift + < > |
インテントの左右移動 |
| (文字列を選択後) y |
(ヤンク) コピー |