Linuxコマンド | シェルスクリプト | Vi Editorコマンド

viの起動、カーソル移動、編集、コピー、削除、検索、置換、保存、終了のクイックリファレンス

Vi、VIM(Vi IMproved)

Viは高速な編集が特徴の、Linuxを代表するエディタです。
viはVisualの略です。

viの起動コマンド

コマンド 説明
vi {ファイル名} ファイルを開く、または作成する vi test.txt
vi +{行番号} {ファイル名} ファイルを開き、指定した行へカーソルを移動する vi -100 test.txt
vi +/"{検索文字列}" {ファイル名} 文字列が最初に現れる位置から開く vi -/“adc” test.txt
vi -r {ファイル名} 壊れたファイルを復旧する vi -r test.txt
view {ファイル名} 読み取り専用で開く view test.txt

既存ファイルを開く

vi {ファイル名}を実行したとき、指定したファイルが存在する場合はそのファイルを編集します。

新規ファイルを作成する

vi {ファイル名}を実行したとき、指定したファイルが存在しない場合は新しいファイルを作成します。

viのカーソル移動

キー 説明
h(左矢印) カーソルを左へ移動する
j(下矢印) カーソルを下へ移動する
k(上矢印) カーソルを上へ移動する
l(右矢印) カーソルを右へ移動する
w 右側にある次の単語の末尾へ移動する
e 右側にある次の単語の先頭へ移動する
b 左側にある前の単語の先頭へ移動する
Enter 1行下へ移動する
Backspace 1文字左へ移動する
Space Bar 1文字右へ移動する
^ 行の左端へ移動する
$ 行の右端へ移動する
H 画面の最上部へ移動する
M 画面の中央へ移動する
L 画面の最下部へ移動する
数字G 指定した行番号へ移動する
Ctrl + i 1画面上へ移動する
Ctrl + b 1画面下へ移動する
Ctrl + d 半画面上へ移動する
Ctrl + u 半画面下へ移動する
Ctrl + e 1行ずつ上へスクロールする
Ctrl + y 1行ずつ下へスクロールする

文字・行の挿入コマンド

キー 説明
a カーソルの右側に文字を挿入する
A 行末に文字を挿入する
i カーソルの左側に文字を挿入する
I 行頭に文字を挿入する
o カーソルの下に行を挿入する
O カーソルの上に行を挿入する
ESC 挿入モードを終了する

テキスト変更コマンド

コマンド 説明
cw 単語を変更する
cc 行を変更する
C カーソル右側の行を変更する
s カーソル位置の文字を置き換える
S カーソル位置の行を置き換える
r カーソル位置の文字を別の文字に置き換える
r-Enter 行を分割する
J 現在行と次の行を結合する
xp カーソル位置の文字と右側の文字を入れ替える
~ 文字の大文字・小文字を切り替える
u 直前のコマンドを取り消す
U 行の変更を取り消し、直前の最終状態へ戻す
. 直前のコマンドを繰り返す

テキスト削除コマンド

コマンド 説明
x カーソル位置の文字を削除する
nx カーソル位置からn文字を削除する
dw 現在のカーソル位置にある単語を1つ削除する
dd カーソル位置の行を削除する
ndd カーソル位置の行からn行を削除する
db カーソル位置から後方へ単語を1つ削除する
D カーソル右側の行を削除する
:5,10d 5行目から10行目まで削除する

コピーと移動コマンド

コマンド 説明
yy カーソル位置の行をコピーする
Y 行をyank、またはコピーする
yh カーソル左側の文字をコピーする
yl カーソル位置の文字をコピーする
yi カーソル位置の行とその下の行をコピーする
yk カーソル位置の行とその上の行をコピーする
p yankまたは削除した行を現在行の上に挿入する
P yankまたは削除した行を現在行の下に挿入する
:1,2 co 3 1〜2行目を3行目の後ろへコピーする
:4,5 m 6 4〜5行目を6行目の上へ移動する
  • yank: テキストをバッファへコピーすること。

1行コピー

対象行でyy、つまりyを2回押すと、その行がバッファに保存されます。
貼り付けたい場所へ移動してpを押すと、カーソル行の次の行に貼り付けられます。

ブロックコピー

vキーを押した後、カーソルを移動してブロックを選択します。
PuTTYでは選択範囲が表示されますが、SSH環境によっては表示されないことがあります。ただし、実際には選択されています。
目的の範囲を選択したら、yキーを押してバッファにコピーします。
同じ方法で目的の場所へ移動し、pを押すとカーソル行の次の行に貼り付けられます。

行番号の設定コマンド

コマンド 説明
:set nu または :set number エディタ各行の左側に行番号を表示する
:set nonu エディタ各行の左側の行番号を非表示にする

行を探すコマンド

コマンド 説明
G ファイルの最終行へ移動する
21G ファイルの21行目へ移動する
Ctrl + G 現在のファイル名とカーソル行の情報を表示する

検索と置換コマンド

コマンド 説明
/{検索文字列} 右下方向へ文字列を検索する
?{検索文字列} 左上方向へ文字列を検索する
n 次の一致箇所を続けて検索する
N 前の一致箇所を続けて検索する
:g/search-string/s/ 各一致箇所を確認しながら置換する
:s/string/rep 現在行のstrrepに置換する
:1,.s/string/rep/ 1行目から現在行までのstrrepに置換する
:%s/string/rep/g ファイル全体のstrをすべてrepに置換する
:.$/aaa/bbb カーソル位置からファイル末尾までのすべてのaaabbbに置換する

画面整理コマンド

コマンド 説明
Ctrl + l 不要な画面表示を整理し、画面を再描画する

ファイルコマンド

コマンド 説明
:r {ファイル名} カーソルの次にファイルを挿入する :r test.txt
:{行番号} r {ファイル名} 指定した行番号の次に指定ファイルを挿入する :10 r test.txt

保存と終了コマンド

コマンド 説明
:w 変更内容を保存する
:w {ファイル名} 指定したファイル名で変更内容を保存する
:wq 変更内容を保存してviを終了する。ZZと同じ。:w(書き込み)と:q(終了)を連続して実行する
ZZ 変更内容を保存してviを終了する。viで開いたファイルに一時バッファの内容を書き込んでから終了する
:q! 変更内容を保存せず終了する
q 編集したファイルを保存せずviを終了する
e! 変更内容を破棄して編集状態に戻る

その他

文字 説明
. 現在行
% 全行
$ ファイル末尾の行
1,$ %と同じ
2,3 2〜3行目

参考

http://blog.naver.com/youngrimi/50086851943