vimの基本操作のまとめ

vim > vimの基本操作のまとめ

vimの基本操作方法

vim ⏎Enter
vi ⏎Enter
シェルコマンドラインからvimを起動

vimでファイルを開く

vim ファイル名までのパス ⏎Enter
vi ファイル名までのパス ⏎Enter
シェルコマンドラインから任意のファイル編集を前提にvimを立ち上げる。
(存在しないファイルをパスで指定した場合、パスで指定した箇所にファイルが新規作成されて開かれます)
:e ファイル名までのパス ⏎Enter vimを単独で立ち上げている場合、vim内で任意のファイルを開く。
(存在しないファイルをパスで指定した場合、パスで指定した箇所にファイルが新規作成されて開かれます)

vim終了の仕方

:q! ⏎Enter 変更を破棄して終了
:wq ⏎Enter 変更を保存して終了
:wq ファイル名 ⏎Enter ファイル内容を任意のファイルに保存して終了

(指定したファイルが存在しない場合は新規作成されて保存される)

またノーマルモードから下記のようにタイプするのも有効です

ZQ ⏎Enter 保存せずに終了
ZZ ⏎Enter 保存して終了
Ctrl + z vimを中断。
gVimではタスクバーに最小化されますが、端末版ではプロセスバックグラウンドに移行されます。fg でフォアグラウンドに復活させられます。

vimのモード

vimにはたくさんのモードがあり、モードを切り替えることでキーの割り当てが変化し、多種多様な処理が行えます。

たくさんあるモードの中でも下記4つのモードが中心的な役割をはたしており、vimを習得する場合、特に注目するべきポイントとなります。

ノーマルモード カーソル移動テキスト削除コピー、ペーストなどの操作が行えるモード
ビジュアルモード テキスト範囲を選択できるモード
挿入モード テキスト入力モード
コマンドラインモード ファイルを開く、検索・置換・保存・終了などの操作を行うモード

ノーマルモード

ノーマルモードにおける各キーの割り当て。

h 左にカーソル移動
j 下にカーソル移動
k 上にカーソル移動
l 右にカーソル移動
0(ゼロ) 行の先頭にカーソル移動
^ 行の最初空白でない文字にカーソル移動
$ 行末にカーソル移動
gg ファイルの先頭へカーソル移動
G ファイルの最後の行の先頭にカーソル移動
Ctrl + b 1ページ上にスクロール
Ctrl + f 1ページ下にスクロール

ノーマルモード(編集コマンドとの併用)

x カーソル位置を削除
dw カーソル位置から空白を含む単語の終わりまでを削除
de カーソル位置から空白を含まない単語の終わりまでを削除
dd 1行を削除
yy 1行コピー
p(小文字 下の行にput(貼り付け)
P(大文字 上の行にput(貼り付け)
y$ カーソル位置から行末までをコピー
d$ カーソル位置から行末まで削除
d0(ディーゼロ) カーソル位置から行の先頭までを削除
u 動作を取り消す
U 行全体の変更を取り消す
Ctrl + r 取り消しの取り消し

他のモード中に「Esc」、「Ctrl + c」、「Ctrl +[」のいずれかをタイプすることでこのノーマルモードに戻ることができます。
指の移動距離を考えると、「Ctrl + c」でノーマルモードに戻るのが効率が良さそうです。

挿入モード

このモードではタイプするテキストをそのまま入力することが出来ます。

ノーマルモードから 「i」「I」「a」「A」「o」「O」などをタイプすることで挿入モードに移行します。

i(アイ小文字) カーソル位置から挿入
I(アイ大文字) 行の先頭から挿入

c^ カーソル位置から空白を除く行の先頭までを削除してインサートモードへ
a カーソル右から挿入
A 行末から挿入
o(オー小文字) カーソルの下に空行を作ってその先頭から挿入
O(オー大文字) カーソルの上に空行を作ってその先頭から挿入

ビジュアルモード

選択領域のコピーや削除を始めとしたテキスト処理を行う事が出来るモードです。

ノーマルモードから下記の操作でこのモードに移行することができます。

v 文字単位のビジュアルモードに移行
V 行単位のビジュアルモードに移行
Ctrl + v 矩形選択ビジュアルモードに移行
gv 前回選択した範囲をもう一度選択

コマンドラインモード

コマンドや関数実行、検索、置換処理などを行うことができるモードです。

ノーマルモードから 「:」、「/」、「?」のいずれかをタイプするとコマンドラインモードに入ることができます。

: コロンに続けてコマンドをタイプで実行
:! 「:!」に続けて外部コマンドをタイプで実行(EXモード)
/ 前方検索を行う
? 後方検索を行う

冒頭のほうで紹介した終了時の「:q!」や「:wq」も、「:」をタイプすることでコマンドラインモードに入り、続けて「q!」や「wq」とタイプすることで終了処理を実行しているわけです。

前方に向かって検索を行うには「/」とタイプし、「/」の後に検索対象をタイプしてEnterで検索を開始します。

/検索文字

検索対象が複数ヒットした場合、各値を移動する際は、「n」で次のヒット値へ、「N」で前のヒット値へと移動することができます。

後方に向かって検索を行うには「?」とタイプし、「?」の後に検索対象をタイプしてEnterで検索を開始します。

?検索文字

後方検索においては「n」「N」の移行順序が前方検索の時と逆になります。

予めオプションセットすることで検索条件、処理結果に変化を与えることができます。

:set ic

とタイプしてから検索をかけると大文字、小文字を区別せずに検索対象がヒットします。

「大文字、小文字を区別する」に戻したいならオプションの先頭に「no」を付けてセットします。

:set noic

デフォルトのオプション値は「~/.vimrc」の設定内容によります。

:set hls

とタイプしてから検索するとヒット値を強調表示させることが出来ます。

強調表示をやめたいときは

:set nohls

とタイプします。

部分マッチしている部分を表示させたいなら

:set is

やめるときは

:set nois

各オプションを組み合わせてセットすることも可能です。

:set ic hls

上の例は大文字、小文字を区別せずに検索し、ヒット値を強調表示させます。

複数のオプションを一括無効にするには

:set noic nohls

vim操作がある程度、身についてしまえば、モードの切り替えは、それほど意識しなくても済むようになります。

vim操作の応用としては、vimのチュートリアルに従い、様々なシチュエーションで操作してみることをお奨めします。

チュートリアルを実践することで、vimに対する漠然とした考えが消え、その後のvim操作をよりスムーズに行うことが出来るようになるはずです。

シェルプロンプトからvimのチュートリアルを立ち上げるには下記のようにタイプします。

vimtutor⏎Enter チュートリアル起動