Vimの基本操作

はじめに

Vimに初めて触ってから3日、隙間時間にVimtutorとVim Adventureで練習を続けています。膨大な数のコマンドがあり、操作に慣れるまでにまだまだ時間がかかりそうです。

ここでは実際にVimを使ってMarkdownの記事を書きながら、Vimについて学んだことやその感想をまとめてみます。

Vimとは

LinuxテキストエディタVimを使うと、マウスを使わずにターミナル上でファイルの操作やコードの編集をすることができます。

通常の開発ではVS Codeをはじめとする高性能テキストエディタを使用すればOK。一方、Vimの操作が必須になるケース(サーバの構築など)があるため、操作に慣れておく必要があります。

Vimの導入

今回はVS CodeVimプラグインをインストールしました。インストール後、ターミナルからvimと打つと起動します。

vim、なんもわからん」という私のような初学者の方はここでvimtutorと打って、vimの基本操作を一通りさらうのがおすすめです。vimtutorについてはこちらのブログが参考になります。→【vim入門】vimtutorはいいぞ - Qiita

4つのモードと起動方法

モード 機能 起動方法
Command Mode 変更の保存・Vimの終了・他コマンド入力 :
Normal Mode カーソルの移動、他のモードへの移行、テキストのコピーカットペースト Esc (ctrl+c)
Insert Mode テキストの編集・入力 i/a/I/A...
Visual Mode テキストの選択 v/V...

代表的なコマンド

Command Mode

保存・終了

コマンド 動作 意味
:sav filepass 新規保存 save
:w 上書き保存 written
:q Vimを終了 quit
:q! 強制終了 quit!
:wq 上書き保存してVimを終了 written & quit

検索

コマンド 動作 意味
/word /の後の文字列を検索
n /で検索した文字列の次の候補に飛ぶ next
N /で検索した文字列の前の候補に飛ぶ next

Normal Mode

カーソル移動

コマンド 動作 意味 移動距離
h ちまちま
l
j
k
w 単語移動→(次の単語の頭まで) word 単語
e 単語移動→(末尾まで) end
b 単語移動←(前の単語の頭まで) back
0 行頭へ移動
$ 行末へ移動
ctrl + y カーソルを固定して上スクロール
ctrl + e カーソルを固定して下スクロール
ctrl + d 下に画面半分移動 down 長距離
ctrl + u 上に画面半分移動 up
ctrl + f 画面1つ分進む front
ctrl + b 画面1つ分戻る back
H 画面の一番上 high
M 画面の中央 middle
L 画面の一番下 low
gg ファイル始端へ移動 go go ファイル
G ファイル末尾へ移動 Go

テキストの編集

コマンド 動作 意味
u 元に戻る undo
ctrl + r やり直し redo
y コピー yank
yy 行コピー yank
p 後プット put
P 前プット put
x 1文字削除 x
dd 行削除 delete
D 右全削除 delete
. 直前やったことの繰り返し

Insert Mode

コマンド 動作 意味
i カーソル位置の1文字後ろからInsertModeに入る insert
a カーソル位置からInsert Modeに入る append
I カーソルのある行の最初にInsert Modeで飛ぶ insert
A カーソルのある行の最後にInsert Modeで飛ぶ append
c 削除してInsert Modeに入る change?
C 右削除してInsert Modeに入る change?
s カーソル位置の文字削除してInsert Modeに入る
S 行削除してInsert Modeに入る

Visual Mode

コマンド 動作 意味
v Visual Modeに入って文字単位で選択 visual
V Visual Modeに入って行単位で選択 visual
y 選択範囲をヤンク yank
d 選択範囲を削除 delete
c 選択範囲を削除してInsertModeに入る change?
= 選択範囲を整形
> 選択範囲を1タブ右に移動
< 選択範囲を1タブ左に移動

感想

  • 頻繁に打つEscが遠くていちいちつっかかってましたが、Esc = Ctrl + [ or ctrl + cと知って、途端に操作が楽になりました。
  • Insert Modeでテキストをタイプする時、Macのカーソル移動ショートカット ctrl + A E F B P N等々が使えないことにちょっと難儀しました。カーソル移動が必要な場合、Vimでは「EscでNormal Modeに入り移動と修正、またInsert Modeに戻ってテキストを編集する」のですね。慣れればいけるか……。

参考URL

Learn VIM while playing a game - VIM Adventures

【vim入門】vimtutorはいいぞ - Qiita

Vimモード入門 - Qiita