viエディタの基本操作 

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

今回はUnix環境で使用されるエディタの一つである viエディタの基本操作についてご紹介します。

これらのコマンドを覚えておくとviエディタの編集作業がより効率的にできるようになります。

■viのモード

viには次の2つのモードがあります。

コマンドモード vi起動時のモード。カーソル移動や文字削除を行う。
インサートモードからコマンドモードへは[Esc]キーで移行する。
インサートモード 文字を入力するモード。コマンドモードからは主に[i]キーで移行する。

■カーソル移動(コマンドモード)

●1文字単位の移動

複数文字分移動したい場合は、その文字数と移動方向キーを組み合わせます。

例えば、5文字分右に移動させたい場合は「5l」と入力します。

ka-soru

●単語単位の移動

単語レベルでカーソル移動する場合は次のように入力します。

入力 説明
w/W 次の単語の先頭の文字へ移動
b/B 前の単語の先頭の文字へ移動
e/E 今の単語の最後の文字へ移動

●行の移動
行の先頭や末尾へのカーソル移動ができます。

入力 説明
0(数字のゼロ) 行の先頭へ移動
$ 行の末尾へ移動
^ 行頭が空白だった場合、その次の先頭文字へ移動
H 表示している画面の一番上の行の先頭へ移動
M 表示している画面の中央の行の先頭へ移動
L 表示している画面の一番下の行の先頭へ移動

スクリプトやプログラムをコンパイルしてエラーが出力された際、そのエラーの行番号がメッセージに表示される場合があります。その行へ一度に移動する場合は、コマンドラインモードで「:」の後に移動する行番号を入力することで移動します。(ex, 「:10」)

●インサートモードへの移行
コマンドモードからインサートモードへ移行するには次のコマンドがあります。

入力 説明
i カーソル位置から文字が入力可能
a カーソルの後から文字が入力可能
I カーソルのある先頭行から文字が入力可能
A カーソルのある末尾から文字が入力可能
o(小文字オー) カーソルのある下の行に新しい行を追加して文字が入力可能
O(大文字オー) カーソルのある上の行に新しい行を追加して文字が入力可能

■編集(コマンドモード)

●文字の削除

入力 説明
x カーソルのある文字を削除
X カーソルの前にある文字を削除
dw カーソルのある単語を削除
dd カーソルのある行を削除
D カーソルのある文字から行末までを削除
u アンドゥ(最後の行動の取り消し)

インサートモードで文字を削除する場合は、「Back space」や「d」キーを利用します。

●文字のコピーと貼り付け

入力 説明
yw 単語のコピー
yy カーソルのある行のコピー
p カーソルのあとに挿入
P カーソルの前に挿入

■検索(コマンドモード)

テキストファイルを扱う場合、文字列を検索することが多くあります。

入力 説明
/  [検索したい文字列] 文字列パターンを下方向に検索
? 文字列パターンを上方向に検索
n 次候補を同じ方向(上へ下へ)で検索
N 次候補を逆方向で検索

■保存終了(インサートモード)

viで編集したファイルを保存して終了するには次のコマンドがあります。

入力 説明
:wq 保存して終了
:q! 保存せず終了
:w 保存(終了しない)
:e [ファイル名] 現在のファイルを終了して別ファイルを開く

 

 

コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.