1年前くらいまでvimはサーバーに入った時にしか触っていませんでした。
当時の私にとってvimは何が何だかわからないもので、「うわ、vimでやんなきゃ」と思うくらいでした。
vimでソースコードをある程度いじれるようになった今、「あの時せめてこれだけでも知っていたらあのストレスはだいぶ無くなっていたのでは。。。」と思うものがいくつかあります。
それを紹介しようと思います。
検索
vimを使ってファイルを開いた直後は、ノーマルモードと呼ばれるモードであり、このモードはvimにおける基本のモードとなります。
このモードからiを入力することで挿入モードに移行し、テキストを入力したりすることができます。また、挿入モードの時にEscを押すことでノーマルモードへ戻ります。
vimで開いたファイルの中身を検索するときはノーマルモードでコマンドを実行します。
| コマンド | 説明 |
|---|---|
| /検索文字 (Enter) | 検索文字を検索(vimの画面の一番下にコマンド自体が表示されます) |
| n | (検索した状態で)次へ進む |
| N | (検索した状態で)前へ進む |
| :noh | 検索終了(ハイライト表示オフ) |
検索をしても検索文字がハイライトされない場合は、同じくノーマルモードで:set hlsearchというコマンドを打ちます。
挿入モードへ移行するコマンド
ノーマルモードから挿入モードに移行するコマンドはiやaが有名かと思いますが、他にもいくつかあります。
使いこなせるとかなり便利に感じます。
これらのコマンドはノーマルモードで実行します。
| コマンド | 説明 |
|---|---|
| i | 現在のカーソル位置から入力を開始する |
| a | 現在のカーソル位置の次から入力を開始する |
| A | 現在のカーソルがある行の末尾から入力を開始する |
| o | 現在のカーソルがある行の次の行に空行を差し込んで、入力を開始する |
| O | 現在のカーソルがある行の前の行に空行を差し込んで、入力を開始する |
| Esc | 挿入モードからノーマルモードへ移行 |
# | がカーソルです
123|45678
# "i" → _ を入力
123_45678
# "a" → _ を入力
1234_5678
# "A" → _ を入力
12345678_
# "o" → _ を入力
12345678
_
# "O" → _ を入力
_
12345678
特にoは便利だと思います。
元に戻す
挿入モードにて間違えて入力してしまった、という時はundoを使うことができます。
こちらのコマンドもノーマルモードで実行します。
| コマンド | 説明 |
|---|---|
| u | undo(元に戻す) |
| Ctrl + r | redo(「元に戻す」を戻す) |
移動系コマンド
こちらのコマンドもノーマルモードで実行します。
挿入モードになっている場合やそのほかのモードになっている場合にはEscでノーマルモードにします。
| コマンド | 説明 |
|---|---|
| gg | カーソル位置をファイルの先頭へ移動する |
| G | カーソル位置をファイルの末尾へ移動する |
| 数字 + G | 数字の行へカーソルを移動する(10Gだったら10行目へ移動) |
| Ctrl + e | カーソルの位置は移動せず、画面を1行分下へ移動 |
| Ctrl + y | カーソルの位置は移動せず、画面を1行分上へ移動 |
| Ctrl + f | カーソルの位置は移動せず、画面を1画面分下へ移動 |
| Ctrl + b | カーソルの位置は移動せず、画面を1画面分上へ移動 |
ファイルの先頭/末尾へ移動も便利ですが、画面移動(スクロール)が便利です。
矢印キー連打から卒業です!
保存系コマンド
こちらのコマンドもノーマルモードで実行します。
| コマンド | 説明 |
|---|---|
| :w | 保存 |
| :q | 閉じる |
| :wq | 保存して閉じる |
| :q! | 保存せずに閉じる |
最後に
これら全部を使いこなすべき、ということではなく、これらの中から一つでも「これできるんだ!」と思ってもらえるものがあれば嬉しいです。