viの使い方




 viはUNIXの標準的なエディタです。MS-DOSやWindowsに慣れた人からすると、その独特の操作体系が異様に感じられるかもしれません。
 しかし、使い慣れれば、その良さがきっと理解できると思います。
 サーバもviを使って編集できると、より快適に運用できるようになります。
   また、viはおよそすべてのUNIX環境で備えられていますから、このエディタの使い方さえ覚えておけば、どこでコンソールに向かってもファイルの編集が可能です。




コマンド一覧
  1. viの編集モード
  2. viの起動
  3. viの終了
  4. カーソルの移動
  5. 文字の挿入
  6. 文字の削除
  7. 行のコピー&ペースト
  8. 検索
  9. UNDO
  10. その他

  1. viの編集モード

     viには二つのモードがあります。
     文字を入力する入力モードと、ファイルの読み書きや、カーソルの移動、文字の削除などを行うコマンドモードになります。この二つのモードを切り替えながら編集を行います。

     コマンドモードから入力モードに移るには、i,a,A,o,Rなど、文字入力に用いるキーを使います。

     入力からコマンドモードに移るには、ESCキーを入力します。

    今現在どちらのモードを選択しているか判らない場合にはESCキーをbeep音が鳴るまで2,3回押してください。どのような場合でもコマンドモードへと移行します。




  2. viの起動

    sampleというファイルを編集したい場合、シェルプロンプトで、

      $ vi   sample

    と入力します。

      $ はプロンプトなので入力する必要はありません。



     
  3. viの終了

     入力モードの場合、ESCキーを押してコマンドモードに入り、:qと入力します。バリエーションとしては下記があります。

      :q  viの終了 (何も書き込まずに終了したい場合)
      :wq  ファイルに書込んだものを上書き保存してviを終了
      :q!  編集結果をファイルに書込まずに終了
      :wq!  リードオンリーのファイルに強制的に書き込んで終了



  4. カーソルの移動

    viではカーソルの移動に、カーソルキー(キーボード上の矢印キー)は使用しません。替わりに右手のホームポジションのキーセットを使用します。

      h  カーソルを1文字左へ
      j  カーソルを1行下へ
      k  カーソルを1行上へ
      l  カーソルを1文字右へ
      0  カーソルを行頭へ
      $  カーソルを行末へ



  5. 文字の挿入

     コマンドモードでiを入力すると、入力モードに切り替わり、文字が挿入できます。バリエーションとしては下記があります。

      i  入力モードに移行。カーソル位置の前に文字を挿入
      a  入力モードに移行。カーソル位置の後に文字を追加
      A  入力モードに移行。行の終わりに文字を追加
      O  入力モードに移行。現在の行の前に文字を挿入
      R  入力モードに移行。カーソル位置の文字を上書き



  6. 文字の削除

     コマンドモードでxを入力すると、カーソル位置の文字を消去します。バリエーションとしては下記があります。

      x  カーソル位置の文字を削除
      dd  1行削除
      xdd  x行削除(例:3ddと入力すると3行削除)
      J  次の行を、現在カーソルのある行の末尾に追加(行末文字の削除)



  7. 行のコピー&ペースト


  8.  コマンドモードでYまたはyyと入力すると、その行のコピーを行います。
     また、pと入力するとYでコピーした1行をペーストすることができます。
     なお、ペーストは現在カーソルのある行で行われますから注意してください。

      Y  カーソルのある行をコピー
      yy  カーソルのある行をコピー(Yと同じ意)
      p  コピーした行をペースト
      yyp  カーソルのある行をコピーし、その行の下にペースト(Ypも同じ意)



  9. 検索


  10.  /を入力した後、検索したい文字列を入力し、ENTERキーを押すと、文末に向かって検索が行われ、最初に見つかった文字列にカーソルが移動します。バリエーションとしては下記があります。

      /sample  sampleという文字列をファイルの末尾に向かって検索
      ?sample  sampleという文字列をファイルの先頭に向かって検索
      n  次の候補を検索



  11. UNDO


  12.  uを入力すると、直前の操作を取りやめる(無かったことにする)事ができます。バリエーションとしては下記があります。

      u  直前の操作を取りやめる
      U  行全体の操作を取りやめる


  13. その他


  14.   :set number 行番号を表示することができます
      :set nonumber 行番号を非表示にすることができます
      :x,yd  行を指定して削除を行います(例:x(行のはじめ),y(行の終わり)dと入力すると、行を削除します)