Vimの基本操作
はじめに
Vimに初めて触ってから3日、隙間時間にVimtutorとVim Adventureで練習を続けています。膨大な数のコマンドがあり、操作に慣れるまでにまだまだ時間がかかりそうです。
ここでは実際にVimを使ってMarkdownの記事を書きながら、Vimについて学んだことやその感想をまとめてみます。
Vimとは
Linuxのテキストエディタ。Vimを使うと、マウスを使わずにターミナル上でファイルの操作やコードの編集をすることができます。
通常の開発ではVS Codeをはじめとする高性能テキストエディタを使用すればOK。一方、Vimの操作が必須になるケース(サーバの構築など)があるため、操作に慣れておく必要があります。
Vimの導入
今回はVS CodeにVimのプラグインをインストールしました。インストール後、ターミナルから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 + [
orctrl + c
と知って、途端に操作が楽になりました。 - Insert Modeでテキストをタイプする時、Macのカーソル移動ショートカット ctrl + A E F B P N等々が使えないことにちょっと難儀しました。カーソル移動が必要な場合、Vimでは「EscでNormal Modeに入り移動と修正、またInsert Modeに戻ってテキストを編集する」のですね。慣れればいけるか……。