SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

UNIXコマンド辞典

vi

エディタでファイル内容を編集する

対応OS: linux , freebsd, solaris

2015/05/20 08:00

vi [-R] [+NUM] [-c COMMAND] [FILE...]

 viコマンドを実行すると、viエディタを起動します。viエディタは、UNIX標準のフルスクリーンテキストエディタです。FILE...に指定したファイルの内容を編集する際に使用します。

 viエディタでは、対話コマンドを使ってファイルの内容を編集します。対話コマンドについて本項の終わり(viエディタで使用する対話コマンド)にまとめましたのでご覧ください。

エディタ

 エディタとは、テキストファイルを編集するためのプログラムです。ファイルを1行ずつ読み込んで編集していくエディタをラインテキストエディタといい、端末画面全体を使って編集するエディタをフルスクリーンテキストエディタといいます

オプション
① -R
FILE...に指定したファイルを読み込み専用モードで開きます。このオプションを指定すると、ファイルの上書き保存ができませんが、ファイル内容を編集して、別のファイル名を付けて保存することはできます。
② +NUM
FILE...に指定したファイルを、「NUM」に指定した行の先頭にカーソルを移動して開きます。
③ -c COMMAND
viエディタの起動直後に、「COMMAND」で指定したコマンドを実行します。
引数
① FILE...
編集するファイル名をスペースで区切って指定します。ワイルドカードによる指定も可能です。省略時には、標準入力からの入力となります。存在しないファイル名を指定した場合は新規作成となります。
ファイルを読み込み専用で開く
[takeda]$ vi -R code 
cd0010001
Take
cd0010003
naka
:w
対話コマンド「:w」により上書き保存

cd0010001
Take
cd0010003
naka
'readonly' option is set (use ! to override)
読み取り専用のため、上書き保存できずエラーが発生
10行目にカーソルを移動してファイルを開く
[takeda]$ vi +10 list 
001
002
003
004
005
006
007
008
009
010
011
012
013
viエディタで使用する対話コマンド
コマンド内容
カーソル移動
[h]または[BackSpace]1文字前に移動
[j]または[Ctrl]+[n]1行下に移動
[k]または[Ctrl]+[P]1行上に移動
[l]または[Space]1文字後に移動
[H]画面の最上行に移動
[M]画面の中央行に移動
[L]画面の最下行に移動
[G]ファイルの最終行に移動
n[G]ファイルのn行目に移動
[0]行の先頭に移動
[$]行の末尾に移動
[Ctrl]+[F]下にスクロール
[Ctrl]+[B]上にスクロール
コマンドモードから編集モードへの切り替え
[a]カーソル位置の後から挿入モードで入力を開始
[A]行末から挿入モードで入力を開始
[i]カーソル位置から挿入モードで入力を開始
[I]行の先頭から挿入モードで入力を開始
[R]上書きモードで入力を開始
[o]カーソル位置の行の下に1行挿入し、その行の先頭から挿入モードで入力を開始
[O]カーソル位置の行の上に1行挿入し、その行の先頭から挿入モードで入力を開始
編集
[J]カーソル位置の行とその下の行とを結合
[x]カーソル位置の1文字を削除
[X]カーソル位置の前の1文字を削除
n[d][d]カーソル位置の行からn行(nを省略すると1行)削除
[d][$]カーソル位置から行の末尾までを削除
[d][^]行の先頭からカーソル位置までを削除
検索/置換
/str[Enter]「str」で指定した文字列をカーソル位置から順方向に検索
?str[Enter]「str」で指定した文字列をカーソル位置から逆方向に検索
[n]順方向に次の検索文字列を検索
[N]逆方向に次の検索文字列を検索
[r]chrカーソル位置の1文字を「chr」で指定した1文字に置換
[s]strカーソル位置の1文字を「str」で指定した文字列に置換
[S]strカーソル位置の行を「str」で指定した文字列に置換
[C]strカーソル位置から行の末尾までを「str」で指定した文字列で置換
:%s/str1/str2[Enter]ファイル内の各行で最初に見つかった「str1」で指定した文字列を「str2」に指定した文字列で置換
:%s/str1/str2/g[Enter]ファイル内容に含まれる「str1」で指定した文字列を、すべて「str2」で指定した文字列に置換
[~]大文字と小文字とを変更
コピー
n[y][y]カーソル位置の行からn行(nを省略すると1行)をバッファにコピー
[p]カーソル位置の後にバッファ内のテキストを貼り付け
[P]カーソル位置の前にバッファ内のテキストを貼り付け
操作の取り消し/繰り返し
[u]直前の操作の取り消し
[.]直前の操作の繰り返し
保存
:w [FILE][Enter]「FILE」に指定したファイルに保存。「FILE」を省略した場合は上書き保存
:w! [FILE][Enter]「FILE」に指定したファイルに書き込み権限がない場合にも強制的に保存
終了
[Z][Z]内容が変更されている場合はファイルを上書き保存してviエディタを終了
:wq[Enter]ファイルを上書き保存してviエディタを終了
:q[Enter]内容が変更されている場合は警告してviエディタを終了
:q![Enter]内容が変更されていても、そのままviエディタを終了

関連タグ

UNIXコマンド辞典トップページに戻る

本コンテンツは「UNIXコマンド辞典 ビギナー編」(2003年)を元にWeb用に再編集したものです
All Contents copyright © 2003-2009 Odyssey Communications Inc., Shoeisha Co., Ltd.

開発者必携!VBAスキルを証明する資格「VBAエキスパート」

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング