viの操作




起動
カーソル移動
画面操作
検索
入力・変更
削除
複写
読込・切替
保存・終了
その他


□起動  
  vi file1 file2 file3   file1 file2 file3・・・を開いた状態で起動
  vi +n file   fileのn行目にカーソルを移動した状態で起動
  vi +/string file   fileの検索文字列(string)と一致する最初の行へカーソルを移動した状態で起動

[このページのTop] 


□カーソル移動  
  k (^p、↑) 上に移動
  j (^n、↓) 下に移動
  h ([BackSpace]、←) 左に移動
  l ([Space]、→) 右に移動
  H   画面の最上行に移動
  M   画面の中央行に移動
  L   画面の最下行に移動
  G   ファイルの最下行に移動
  nH   画面の上から指定した数(n)行目に移動
  nL   画面の下から指定した数(n)行目に移動
  nG   ファイルの上から指定した数(n)行目に移動
  0   現在行の先頭に移動
  ^   現在行の空白を除いた先頭に移動
  $   現在行の末尾に移動
  b   単語の先頭に移動
  e   単語の末尾に移動
  w   次の単語の先頭に移動
  -   上の行の先頭へ移動
  +   下の行の先頭へ移動
  (   前の文章の先頭に移動
  )   次の文章の先頭に移動
  {   前の段落の先頭に移動
  }   次の段落の先頭に移動
  [[   前の節または関数の先頭に移動
  ]]   次の節または関数の先頭に移動
  %   対応する(){}[]に移動

[このページのTop]   


□画面操作  
  ^b   上に1画面スクロール
  ^f   下に1画面スクロール
  ^u   上に半画面スクロール
  ^d   下に半画面スクロール
  ^y   上に1行スクロール
  ^e   下に1行スクロール
  z[ENTER]   カーソル行を画面の最上行までスクロール
  z.   カーソル行を画面の中央行までスクロール
  z-   カーソル行を画面の最下行までスクロール
  ^g   ファイル内の現在位置を表示
  ^l   画面の再描画
  ^f   画面の再描画

[このページのTop]  


□検索  
  /string   指定した文字列(string)を末尾方向に検索
  ?string   指定した文字列(string)を先頭方向に検索
  n   検索を繰り返す
  N   現在とは反対方向に検索を繰り返す
  /   検索を順方向へ繰り返し
  ?   検索を逆方向へ繰り返し
  /string/+n   検索文字列のn行後へ移動
  .?string?-n   検索文字列のn行前へ移動
  %   現在位置の括弧に対応する括弧へ移動
  fx   現在の行でxを検索し順方向へ移動
  Fx   現在の行でxを検索し逆方向へ移動
  tx   現在の行でxを順方向に検索し、その前の文字へ移動
  Tx   現在の行でxを逆方向に検索し、その後の文字へ移動
  ,   最後のf,F,t,Tによる検索の方向を反転
  ;   最後の文字検索(f,F,t,T)を繰り返す

[このページのTop]    


□入力・変更
  i   カーソルの左へ文字列を挿入
  I   行の先頭に文字列挿入
  a   カーソルの右へ文字列を追加
  A   行末に文字列を追加
  o   カーソル行の次に新しい行として文字列を追加
  O   カーソル行の前に新しい行として文字列を追加
  s   カーソルのある1文字を変更
  S   行全体を置き換え
  r   カーソルがある1文字を上書き
  R   カーソルがある1行を上書き
  p   バッファの内容をカーソルの下へペースト
  P   バッファの内容をカーソルの上へペースト
  cw   カーソル位置の単語を変更
  c^   カーソル位置から行頭までを変更
  c$  C  カーソル位置から行末までを変更

[このページのTop]    


□削除
  x   カーソル位置の文字を削除
  nx   カーソル左位置の文字をn個削除
  dstring   カーソル位置から指定文字列(string)までを1回削除
  ndstring   カーソル位置から指定文字列(string)までをn回削除
  dd   一行削除
  ndd   カーソル行をn回削除
  d^   カーソル位置から行頭までを削除
  d$  D  カーソル位置から行末までを削除
  dw   カーソル位置の単語を削除

[このページのTop]    


□複写
  nystring   カーソル位置から指定文字列(string)までをn回バッファにコピー
  nyw   カーソル位置の単語からn単語分バッファへコピー
  yy  Y  カーソル行をバッファにコピー
  nyy   カーソル行をn回バッファにコピー

[このページのTop]   


□読込・切替
  :n   編集中のファイルを切り替える
  :n!   編集中のファイルを強制的に切り替える
  :e file   編集ファイルをfileに変更する
  :e! file   編集ファイルをfileに強制的に変更する
  :r file   カレント行の下にfileを読みこむ
  :-r file   カレント行の上にfileを読みこむ
  :n r file   n行目の下にfileを読みこむ
  :-n r file   n行目の上にfileを読みこむ

[このページのTop]   


□保存・終了
  ZZ   変更されている場合、保存し終了
  :x   変更されている場合、保存し終了
  :wq   上書きして終了
  :w   上書き保存
  :w file   fileに保存
  :n1,n2 w file   n1〜n2行までをfileに保存
  :n1,n2,w >> file   n1〜n2行までを既存のfileに追加
  :w!   保護を無視して上書き
  :w! file   保護を無視してfileに上書き
  :q   ファイルを閉じてvi終了
  :q!   ファイルを破棄してvi終了

[このページのTop]   


□その他
  ^g   現在の行番号を表示
  :r!command   コマンド(command)の実行結果を挿入
  :n r! command   コマンド(command)の実行結果を行nに挿入
  !command   コマンド(command)を実行
  !object command   objectをコマンド(command)に送信し、出力と置き換え
  :n1,n2 command   行n1〜n2をコマンド(command)へ送信し、出力と置き換え
  n !! command   n行をコマンド(command)へ送信し、出力と置き換え
  !!   最後のシステムコマンドを繰り返す
  :sh   サブシェルを作成
  J   カーソル位置の行と次の行を連結
     
  :n1,n2s/string1/string2/[c][g]   n1〜n2行まで検索文字列(string1)を検索し、置換文字列(string2)に置き換えます。
c:置き換え確認あり
g:全て置き換え
c,gのどちらも指定しない場合、最初の文字だけを置き換えます。

全文対象の場合「:1,$s/string1/string2/[c][g]」もしくは「:%s/string1/string2/[c][g]」とします。

[このページのTop]