01-05 標準エディタviでファイル編集

vi習得のための7ステップ

viは標準エディタでありながら初めて使う人が何の知識もなく使えるエディタではありません。

とっつきにくく操作を覚える必要があるので、最初は戸惑うかもしれませんが、viは想像以上に強力な武器となりますし、実はそれほど難しいものではありません。

STEP1 :vimtutor

ここではviのチュートリアルであるvimtutorを起動して実際に体験してみましょう。

vimtutor

チュートリアルをじっくり読んでいくと、viの基本的な操作が分かってくると思いますので、サーバーにログインしてvimtutorと入力してください。

日本語で表示させたい人は、以下のように入力してvimtutorを起動させてください。

LANG=ja_JP.UTF-8 vimtutor

vimtutorを終了するには、Escキーを押して、「:wq」もしくは「:q!」と入力すると終了することができます。

STEP2 :コマンドモード

viエディタでファイルを開いた直後は、コマンドモードになっています。

viのコマンドモードでは以下のことができます。

  • カーソル位置を操作
  • ファイル内を移動
  • カット&ペースト
  • 文字、単語、行を削除
  • 検索、置換
  • 編集終了

STEP3 :基本的なカーソル移動

コマンドモードでは、ファイル内でカーソルを移動することができます。

カーソルの移動に使う4つのキーは、キーボードに右手を乗せたときの標準的な位置の
「h」「j」「k」「l」を使います。

h 左方向に移動
j 下方向に移動
k 上方向に移動
l 右方向に移動

STEP4 :インサートモードに切り替える

コマンドモードでテキストを挿入したい位置にカーソルを移動するときは、入力モードに切り替えます。

最も一般的な方法が「i」です。

iキーを押すと、カーソルの現在の位置から文字を入力することができます。

i カーソルの現在の位置から文字を入力
I 現在の行の先頭から文字を入力
a カーソルの現在の位置の後ろに文字を入力
A 現在の行の終端に文字を入力
o 現在の行の下に新しい行を追加して文字を入力
O 現在の行の上に新しい行を追加して文字を入力

STEP5 :文字、単語、行を削除

文字の削除はコマンドモードで行います。

文字の削除は、文字単位、単語単位、行単位で行えます。

x 現在のカーソル位置から1文字を削除
dw 現在のカーソル位置から1単語を削除
dd 現在のカーソルが置かれている行を削除

STEP6 :文字の検索と置換

文字の検索と置換はコマンドモードで行います。

検索や置換は頻繁に使う機能なので、覚えておくと作業効率が上がります。

ファイル内の文字列を検索

/keyword

次の候補を検索する際は、/(半角英数のスラッシ)を押してEnterキーを押すだけで次候補にカーソルが移動します

ファイル内の「keyword」という文字列を全て「lesson」に置換

:%s/keyword/lesson/g

STEP7 :編集を終了

viを終了する場合は、コマンドモードで次の操作をします。

:wq ファイルの変更を書き出し、エディタを終了
:q! ファイルに変更を書き込まずに強制的に終了

動画講座 vi ファイルの編集

viチートシート

viには多くのコマンドがありますが、ここに挙げたものだけでも十分に使うことができます。

特によく使うものに関しては、()を付けています。
必ず覚えるようにしてください。

基本操作

コマンドモードからインサートモード

i カーソルの現在の位置から文字を入力(
I 現在の行の先頭から文字を入力
a カーソルの現在の位置の後ろに文字を入力
A 現在の行の終端に文字を入力
o 現在の行の下に新しい行を追加して文字を入力
O 現在の行の上に新しい行を追加して文字を入力

インサートモードからコマンドモード

Esc インサートモードからコマンドモードに移行(
 

コマンドモード

x カーソルのある場所の文字を削除(
dd カーソルのある行を削除(
yy カーソルのある行をコピー
p カーソルの下の行にペースト
J 行末の改行を削除
u 直前の操作をキャンセル(
. 直前の操作の繰り返し
/検索文字 検索文字の検索(
?検索文字 検索文字を逆方向に検索
:%s/old/new/g oldをnewに置換(

ファイルの保存と終了

:wq ファイルを上書きしてviを終了(
:w ファイルの上書き保存
:w! 強制的に上書き保存
:q viの終了
:q! ファイルを保存しないで終了(

カーソル移動

h 左方向に移動(
j 下方向に移動(
k 上方向に移動(
l 右方向に移動(
w 単語ごとに右に移動
b 単語ごとに左に移動
$ 行末に移動(
0(ゼロ) 行頭に移動
G (Shift + g) ファイルの最後(
:n n行目に移動(:1 で先頭)(

行番号

:set nu 行番号を表示
:set nonu 行番号を非表示

シェルモード

:sh 一時的にシェルを使う
exit シェルからviのコマンドーモードに戻る

関連記事

コメント

この記事へのコメントはありません。