sandman5572’s diary

メンヘラ(社交不安障害)と診断されたアラフォー男のブログ

Teratermで使うviコマンド

viでファイルを開く。「-R」を付けると読み専で開く

⇒vi [-R] [ファイル名]

コマンドモードではカーソルの移動やテキストのコピー&ペースト、ファイルの保存などができる。
ESCキー⇒入力モードからコマンドモードへ戻る

【コマンドモードから入力モードへ移行するviコマンド】
i カーソルの「左」から入力開始
a カーソルの「右」から入力開始
I カーソルの「行の先頭」から入力開始
A カーソルの「行の末尾」から入力開始
o カーソルの「行の下に空白行を挿入」し、その行から入力開始
O カーソルの「行の上に空白行を挿入」し、その行から入力開始

【文字列検索】
/文字列 指定した文字列をカーソル位置から「ファイルの末尾」に向かって検索
?文字列 指定した文字列をカーソル位置から「ファイルの先頭」に向かって検索
n 次を検索(順方向)
N 次を検索(逆方向)

【ファイルの編集】
yy カーソル位置の「行」をバッファにコピー(※「Y」も同じ)
yw カーソル位置の「単語」をバッファにコピー
dd カーソル位置の「行」を削除し、バッファにコピー
dw カーソル位置の「単語」を削除し、バッファにコピー
x カーソル位置の「文字」を削除し、バッファにコピー
X カーソル位置の「左の文字」を削除し、バッファにコピー
u 元に戻す(直前の操作を取りやめる)

バッファの内容を挿入(※p,P はpasteの意味)
p 文字や単語はカーソルの「右」、行はカーソルの「下」
P 文字や単語はカーソルの「左」、行はカーソルの「上」

【カーソルを移動】
h 1文字左へ移動
l 1文字右へ移動
k 1文字上へ移動
j 1文字下へ移動
0 行頭へ移動
$ 行末へ移動
H 画面の「最上行」へ移動
L 画面の「最下行」へ移動
gg ファイルの「先頭」へ移動
G ファイルの「最終行」へ移動
nG ファイルの「n行目」へ移動
:n ファイルの「n行目」へ移動
ctrl+f 次の画面へ移動
ctrl+b 前の画面へ移動

【viエディタの終了とファイルの保存】
:q viを終了。内容が変更されている場合、警告が出て終了不可
:q! viを強制終了。内容が変更されていても保存せず終了
:w 編集内容を保存
:wq 編集内容を保存し、viを終了(:x、ZZも同じ)
:wq! 編集内容を保存し、viを強制終了。読み専ファイルも強制的に保存して終了

:e [ファイル名]
viを終了せず現在開いているファイルを閉じて別ファイルを開く
ただし内容が変更されている場合、警告が出て別ファイルを開けない

:e! [ファイル名]
viを終了せず現在開いているファイルを閉じて別ファイルを開く
内容が変更されている場合、現在開いているファイルを最後に保存した状態戻して別ファイルを開く

【文字列を置換】※コマンドモードで以下のviコマンドを実行
:%s/文字列1/文字列2/
⇒各行の「最初に見つかった」文字列1を文字列2に置換

:%s/文字列1/文字列2/g
⇒ファイル全体の文字列1を文字列2に置換(※末尾にgを付けるとファイル全体を見に行く)


【viエディタで、パラメータなしで起動した場合の動作】
・空のファイルで起動する
・ファイル名は保存する際に指定する

【指定したファイルの内容をカレント行の後に読み込んで挿入】※コマンドモードで実行
:r ファイル名

【viエディタを終了することなくLinuxコマンドを実行】※コマンドモードで実行
:!コマンド (例):!ls