vimは特殊なエディタで、苦手意識を持っている方も多くおられるかと思います。
特に覚えることが多く、慣れるのに時間がかかりますが、一度、慣れてしまうと、非常に高速にテキスト編集ができ、快適に使えます。
この記事では、vim初心者向けによく使用する操作を図解してみました。
vimには、この記事以外にもたくさんの操作やコマンドがありますが、この記事の操作を覚えていただくことで、最低限のテキスト編集はできるのではと思います。vim操作の足掛かりになればと思います。
基本的な使い方
新しくファイルを作成し、テキストを編集するとします。
ファイル名: file.txt を新規作成し、同時に開くには、vim file.txt と入力します。
入力後、ファイルが新規作成され、下記のようなファイルの中身が表示されます。
存在するファイル名を指定した場合は、その指定したファイルを編集できるようになります。
~ はこの行にはテキストが存在しない空行であることを意味します。
上の状態をノーマルモードといいます。これは、vimのデフォルトモードです。
このモードでは、テキストの入力はできません。テキストを入力するには、インサートモードへ移行する必要があります。
インサートモードへ移行するには、ノーマルモードの状態で、 i を入力します。
これでテキストが入力できる状態になります。通常のキー操作で、下記のようにテキストを入力しました。
This is line 1.
This is line 2.
This is line 3.
This is line 4.
This is line 5.
入力が完了し、ファイルを保存したい場合は、 エスケープキー(Esc)を押し、ノーマルモードに戻ります。— INSERT — の表示が消えます。
この編集したファイルを保存するには、ノーマルモードからコマンドラインモードへ移行します。
vimでファイルを保存したり、vimを終了したりする場合は、ノーマルモードからコマンドラインモードへ移行したあと、操作したいコマンドを入力します。コマンドラインモードへの移行は、:を入力します。
:のあとに、操作したいコマンドを入力します。今回、編集したテキスト列を保存したいので、:に続けて、w と入力し、エンターキーを押します。
ファイルの書き込みがされた旨が表示されます。(file.txt” [New] 6L, 36C written)
vimを終了する場合は、コマンドラインモードで、:q と入力します。
以上が新しくファイルを作成し、保存・終了までの基本的な使い方です。
以降、各モードでよく使用するコマンド操作を確認していきます。
ノーマルモード
ノーマルモードでは、カーソルの移動、テキストの削除、コピーアンドペーストなどができます。
以降の図では、カーソル位置も示しています。キー操作実行後に、カーソルがどこに移動しているのかもあわせて確認してください。
カーソルの移動
上下左右へのカーソル移動は、矢印キーでも移動しますが、hjklキー(キーボードの配置も連続しています)でも移動できます。キーと方向は下記のとおりです。hを左とすると覚えやすくなります。
カーソルを上へ移動(k)
上矢印キー、もしくは、k を入力します。
カーソルを下へ移動(j)
下矢印キー、もしくは、j を入力します。
カーソルを右へ移動(l)
右矢印キー、もしくは、l(エル) を入力します。
カーソルを左へ移動(h)
左矢印キー、もしくは、hを入力します。
これ以外にもカーソル移動で便利なキーがいくつかあります。
カーソルを行の先頭へ移動(0)
0(ゼロ)を入力すると、カーソルが今ある行の先頭へ移動します。
カーソルを行の末尾へ移動($)
$を入力すると、カーソルが今ある行の末尾へ移動します。
次の単語へ移動(句読点含む)(w)
wを入力すると、今あるカーソルの次の単語(句読点含む)へ移動します。
行の末尾の単語にカーソルがある場合は、次の行の単語の先頭へ移動します。
次の単語へ移動(句読点除く)(W)
Wを入力すると、句読点を無視し、今あるカーソルの次の単語へ移動します。
前の単語へ移動(句読点含む)(b)
bを入力すると、今あるカーソルの前の単語(句読点含む)へ移動します。
単語の途中にカーソルがある場合は、その単語の先頭にカーソルが移動します。
行の先頭の単語にカーソルがある場合は、前の行の末尾の単語へカーソルが移動します。
前の単語へ移動(句読点除く)(B)
Bを入力すると、今あるカーソルの前の単語(句読点の除く)へ移動します。
下記の場合、先頭行末尾のピリオドを無視して、その前の単語までカーソルが移動します。
ファイルの先頭へ移動(gg)
ggを入力すると、カーソルがファイルの先頭へ移動します。
ファイルの末尾の先頭行へ移動(G)
Gを入力すると、カーソルがファイル末尾の先頭行へ移動します。
テキスト・行の削除
ノーマルモードからテキストを削除することができます。
現在のカーソル文字を削除(x)
xを入力すると、現在カーソルされているテキストが削除されます。
複数文字を削除(nx: nは文字数)
現在のカーソル文字を含め、削除したい文字数を指定して、xと入力します。3文字を削除したい場合は、3xと入力します。
現在のカーソルされた行を削除(dd)
ddを入力すると、現在カーソルされている行全体が削除されます。
複数行の削除(ndd:nは行数)
現在のカーソル行を含め、削除したい行数を指定して、ddと入力します。3行を削除したい場合は、3ddと入力します。
カーソル文字の単語の削除(dw)
現在のカーソル文字の単語を削除したい場合、dwと入力します。
カーソルから行先頭まで削除(d0)
現在のカーソル(カーソル文字は含まず)から行先頭までを削除したい場合、d0と入力します。
カーソル文字から行末まで削除(d$)
現在のカーソル文字から行末までを削除したい場合、d$と入力します。
テキスト・行のコピー&ペースト
vimでは、コピーをyank、ペーストをputと呼びます。コピーしたものをペーストする場合は、p と入力します。下記では、いろいろなパターンのテキストをコピーし、ペーストしていきます。
現在の行をコピー(yy)
コピーしたい行にカーソルをあわせ、yyを入力します。pを実行すると、現在のカーソル行の次の行にコピーされた行が挿入されます。
単語のコピー(yw)
カーソルされた文字から単語の末尾までコピーする場合は、ywを入力します。pを実行すると、現在のカーソルの後ろにコピーされた文字列がペーストされます。
スペースも含めて、ペーストされることに注意してください。通常、単語の最初にテキストにカーソルをあわせ、実行します。
操作取り消し(U)
キー操作し、テキスト編集したあと、その操作を取り消したい場合、Uを入力します。
ひとつ上にある単語のコピーの操作をおこなったとします。
この操作を取り消したい場合は、Uを入力します。
インサートモード
テキストを入力するには、インサートモードへ移行する必要があります。上の例では、i キーを入力して、ノーマルモードからインサートモードへ移行しましたが、他にもいくつかインサートモードへ移行する手順があります。
カーソルの位置からテキスト入力(i:insert)
ノーマルモードから i を入力すると、カーソル位置は変更されずにインサートモードへ移行します。
この状態でテキスト(例えば、abc)を入力すると、カーソルの前に挿入されます。
カーソルの位置から後ろからテキスト入力(a:append)
ノーマルモードからaを入力すると、カーソル位置が一つ右に移動し、インサートモードへ移行します。
この状態でテキスト(例えば、abc)を入力すると、カーソルの前に挿入されます。
行の末尾からテキストを入力(A)
ノーマルモードからAを入力すると、カーソル位置が行の末尾に移動し、インサートモードへ移行します。文章を追加する場合は、便利です。
この状態でテキスト(例えば、abc)を入力すると、カーソルの前に挿入されます。
次の行にテキストを入力(o)
ノーマルモードからoを入力すると、改行され、次の行先頭へカーソルが移動し、インサートモードへ移行します。テキストを次の行に追加する際に便利です。
この状態でテキスト(例えば、abc)を入力すると、カーソルの前に挿入されます。
前の行にテキストを入力(O)
ノーマルモードからOを入力すると、全体が改行され、前の行の先頭へカーソルが移動し、インサートモードへ移行します。
この状態でテキスト(例えば、abc)を入力すると、カーソルの前に挿入されます。
コマンドラインモード
コマンドラインモードでは、設定の保存やvimの終了などを実行します。この記事の初めに、使用例を記載しています。
ファイルを保存して終了(wq)
編集したファイルを保存して、vimを終了する場合は、:wq のように、w と q を続けて入力することができます。
ファイル名を指定して保存
例えば、今編集中のファイルをfile1.txtなど別の名前で保存する場合は、:wの後にファイル名を指定します。
コマンドの強制(!)
vimを強制停止するなど、コマンドを強制させるには、コマンドの後に!を追加します。強制停止させる場合は、:q!と入力します。
コメント