viエディタの使い方

Linux

viエディタ 基本

vi起動コマンド: vi ファイル名

-Rオプション: vi -R ファイル名 ← 読み取り専用モード

コマンドモード,入力モードを切替えて使用する。

起動時はコマンドモードになっている。

viエディタ コマンドモードから入力モードへの切替え

コマンド
i 現在のカーソル位置の前から入力を開始する
a 現在のカーソル位置の後ろから入力を開始する
I 行頭にカーソルを移動し、その前から入力を開始する[行頭 + iコマンド]
A 行末にカーソルを移動し、その後ろから入力を開始する[行頭 + aコマンド]
o 現在の行の下に空白行を挿入し、そこから入力を開始する
O 現在の行の上に空白行を挿入し、そこから入力を開始する

入力モードでのカーソル移動はカーソルキーを使用することになるが、コマンドモードでは色々なカーソルの移動方法が用意されており、これらをt使用しないとviエディタは少し不便なのでマスターしよう。

コマンドモードへ戻るには、キーボードの左上[esc]を押す。

viエディタ viの終了、保存

コマンド
:q 保存しないで終了(内容に変更点がある場合は保存するかどうか確認してくる)
:q! 強制的に保存しないで終了(確認なし)
:wq 編集中の内容を上書き保存して終了
ZZ 編集中の内容を上書き保存して終了(:wqと同じ)
:w 編集中の内容を上書き保存
:e! 最後に保存した内容に戻す

viエディタ カーソルの移動方法は?

viエディタはカーソルキーのないキーボードにも対応しているため、いろいろなカーソルの移動方法が用意されている。

コマンド
h 左へ1文字移動する
l 右へ1文字移動する
k 上へ1文字移動する
j 下へ1文字移動する
O 行の先頭へ移動する
$ 行の末尾へ移動する
H 画面、一番上の行頭へ移動する
L 画面、一番下の行頭へ移動する
gg ファイルの先頭行へ移動する
G ファイルの最終行へ移動する
nG ファイルのn行目に移動する
:n ファイルのn行目に移動する

また、上記のコマンドの前に数字を入力すると、n回×入力コマンドということになる。「10k」と入力すれば10行上へカーソルが移動する。

viエディタ viを開いたままシェルコマンドを使う

コマンド
:r ファイル名 指定したファイルの内容をカレント行以降に読み込む
:! コマンド viを終了しないでコマンドを実行
:r! コマンド コマンドの実行結果を挿入する

viエディタ 編集(削除・コピー・ペースト・置換)

コマンド
x(小文字) カーソルの位置の文字を削除(Delete)
X(大文字) カーソル手前の文字を削除(Backspace)
dd カレント行を削除
dw カーソル位置から次の単語までを削除
yy カレント行をコピー
p カレント行にペースト
P カレント行の上にペースト
r カーソル位置の1文字を置換

また、上記のコマンドの前に数字を入力すると、n回×入力コマンドということになる。「1000p」と入力すれば1000回ペーストできてしまう。

驚愕

viエディタ 検索

コマンド
/ 文字列 カーソル位置から後方に向かって文字列を検索する
? 文字列 カーソル位置から前方に向かって文字列を検索する
n 次を検索する(順)
N 次を検索する(逆)
:noh 候補のハイライト表示を解除
:%s/文字列/Strings/ 最初に見つかった「文字列」を「Strings」へ置換
:%s/文字列/Strings/g ファイル内すべての「文字列」を「Strings」へ置換

viエディタ 設定変更(:set)

コマンド
:set number 行番号を表示
:set nu 「:set number」の短略
:set ts=タブ幅 タブ幅を数値で指定
j

「:set」で設定を変更が反映されるのはviを閉じるまでです。
設定を常時有効にするには、ホームディレクトリ内の「.exrc」ファイルに設定を記述します(ない場合は作りましょう)。記述するときの注意点は最初の「:」を書かずに「set number」のようにすることです。

コメント