【図解:初心者向け】Linux vim/viの基本操作(起動・編集・保存)

vimは特殊なエディタで、苦手意識を持っている方も多くおられるかと思います。
特に覚えることが多く、慣れるのに時間がかかりますが、一度、慣れてしまうと、非常に高速にテキスト編集ができ、快適に使えます
この記事では、vim初心者向けによく使用する操作を図解してみました。
vimには、この記事以外にもたくさんの操作やコマンドがありますが、この記事の操作を覚えていただくことで、最低限のテキスト編集はできるのではと思います。vim操作の足掛かりになればと思います。
スポンサーリンク

基本的な使い方

新しくファイルを作成し、テキストを編集するとします。
ファイル名: file.txt を新規作成し、同時に開くには、vim file.txt と入力します。
入力後、ファイルが新規作成され、下記のようなファイルの中身が表示されます。
存在するファイル名を指定した場合は、その指定したファイルを編集できるようになります。
~ はこの行にはテキストが存在しない空行であることを意味します。
上の状態をノーマルモードといいます。これは、vimのデフォルトモードです。
このモードでは、テキストの入力はできません。テキストを入力するには、インサートモードへ移行する必要があります。
インサートモードへ移行するには、ノーマルモードの状態で、 を入力します。
これでテキストが入力できる状態になります。通常のキー操作で、下記のようにテキストを入力しました。
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 のように、wq を続けて入力することができます。

ファイル名を指定して保存

例えば、今編集中のファイルをfile1.txtなど別の名前で保存する場合は、:wの後にファイル名を指定します。

コマンドの強制(!)

vimを強制停止するなど、コマンドを強制させるには、コマンドの後に!を追加します。強制停止させる場合は、:q!と入力します。

コメント