Linuxコマンド虎の巻

vi

viは、テキストファイルの編集を行うコマンドです。

ファイルを指定してviコマンドを実行すると、編集モードになるのでそこでvi中のコマンドを駆使してファイルを編集します。慣れるととても便利ですが、慣れるまでが大変です。

構文

vi [オプション] <ファイル名>
【オプション】
オプション説明
-bバイナリモードで開く
-R読み取り専用モードで開く

vi中のコマンド

【コマンドモード中のコマンド】
コマンド説明
iカーソル位置から編集モードにする
aカーソル位置の1文字後ろから編集モードにする
Aカーソルがある行のから編集モードにする
oカーソルがある行の次行を追加して編集モードにする
Oカーソルがある行の前行を追加して編集モードにする
hカーソルを左に移動する(「←」キーと同じ)
jカーソルを下に移動する(「↓」キーと同じ)
kカーソルを上に移動する(「→」キーと同じ)
lカーソルを右に移動する(「↑」キーと同じ)
ddカーソルがある行を削除する
yyカーソルがある行をコピーする
p貼り付け(ペースト)する
Dカーソル位置から行末までの文字を削除する
nG指定した行(n)へ移動する
ggファイルの先頭へ移動する
Gファイルの末尾へ移動する
+次の行の先頭へ移動する
u直前に実行したコマンドを取り消す
.直前に実行したコマンドを実行する
【exモード中のコマンド】
コマンド説明
:w上書き保存する
:w ファイル名ファイル名を指定して保存する
:qviを抜ける
:q!viを強制的に抜ける
※編集中のファイルを保存せずに抜ける場合等に使用。
:wqファイルを保存してviを抜ける
:e ファイル名現在のファイルを終了して指定したファイルをviで開く
:set number行番号を表示する
:set nonumber行番号を非表示にする
:行番号指定した行へ移動する
:%s/変更前文字列/変更後文字列/g全ての変更前文字列を変更後文字列へ置換する
(例)文字列"foo"を"bar"へ変更する
 ⇒ :%s/foo/bar

サンプル

test.txtをviで編集する

$ vi test.txt

test2.txtファイルをviで新規作成する

$ vi test2.txt

既存ファイルにtest2.txtが存在しない前提です。

備考

  • viは、visual editorの略です。
  • 存在しないファイルを指定すると、新規作成モードになります。
  • exモードからコマンドモードに移るには[:]キーを押します。
  • コマンドモードで、コマンドを確定させるには[Enter]キーを押します。
  • コマンドモードからexモードに移るには[Esc]キーを押します。
  • 不正に編集終了したファイルをviで開くと以下のようなメッセージが表示される場合があります。
    E325: ATTENTION Found a swap file by the name ".xxxxx.swp" ~~
    このような場合は、対象ファイルと同じディレクトリ内に.swpという拡張子の隠しファイルがあるのでそれを消すと表示されなくなります。
    ※隠しファイルを表示するには、lsコマンドの-aオプションで表示できます。
このエントリーをはてなブックマークに追加