UNIX のコマンド
 3. vi について説明します。


 UNIX/Linux においてよく使用される vi (Visual editor) について説明します。 vi はマウスを使わずに、全てキーボードで行います。

  1. vi の起動と終了

    vi
    ■
    -
    -
    -
    -

    a を押します

    vi is visual editord■
    -
    -
    -
    -
    append


    vi is visual editord■
    -ABCDE
    -
    -
    -
    append

    ESC キーを押します
    : を押します

    vi is visual editord
    -ABCDE
    -
    -
    -
    


    vi is visual editord
    -ABCDE
    -
    -
    -
    ■:w newfile.txt

    1.vi を起動
    (事前にファイル名指定も可) 2.入力モードに切り替えます 3.文字を入力 4.編集モードにします 5.ex モードにします 6.ファィル名を指定し保存します q で vi を終了します。 (q! は強制終了します) (q は更新していない場合の強制終了) (既存ファイルを開いているときは wq でOKです)


    モードについて

    モードモードの変更操作機能
    編集モードvi 起動直後、ESCキーカーソルの移動、コピー、貼り付けなど可能
    入力モードa キー文字の入力
    ex モード編集モードで : キーを押す保存、終了等


  2. 基本コマンド

    No機能機能説明コマンド
    01入力モードカーソル上の文字の右に文字を入力a
    行末に文字を挿入A
    カーソル上の文字の左に文字を挿入i
    行頭に文字を挿入I
    02入力モードの終了入力モードから編集モードへ移行ESC
    03カーソルの移動カーソルを左へ移動h
    カーソルを下へ移動j
    カーソルを上へ移動k
    カーソルを右へ移動l
    04削除カーソル上の文字を削除x
    カーソル上の直前の文字を削除X
    移動コマンドと組み合わせて、文字を削除d
    カーソル上から行末までを削除D
    05貼り付けカーソル上の文字または行の次に貼り付けp
    カーソル上の文字または行の次に貼り付けP
    06コピー移動コマンドと組み合わせて、カーソル上の文字または行等をコピーy
    カーソル上の行をコピーY
    07行連結カーソル上の行と次行を同じ行になるように連結J
    08やり直し直前に行った処理を取り消すu
    09検索カーソル行以降について文字列 string を検索/sring
    カーソル行以前について文字列 string を検索?string
    順検索n
    逆検索N
    10保存現在記述されている内容をファイル file に保存。
    既にファイル名にが設定されている場合は file は省略可
    :w file
    11終了保存終了:ZZ
    保存終了:wq
    保存終了:x
    終了:q
    保存せずに終了:q!


  3. 高度なコマンド

    No機能機能説明コマンド
    12単語単位で移動
    (空白記号を単語の区切り)
    カーソル上の単語の次の単語の先頭に移動w
    カーソルを単語の末尾へ移動e
    カーソルを単語の先頭へ移動b
    13単語単位で移動
    (空白を単語の区切り)
    カーソル上の単語の次の単語の先頭に移動W
    カーソルを単語の末尾へ移動E
    カーソルを単語の先頭へ移動B
    14置き換えカーソル上の文字の代わりに文字を入力s
    カーソル上の行の代わりに文字を入力S
    移動コマンドと組み合わせて文字を削除し、代わりに文字を入力c
    カーソル上の文字から末尾までの代わりに文字を入力C
    15行挿入カーソル上の行の次行に空行を挿入o
    カーソル上の行の直前行に空行を挿入O
    16指定行へ移動指定した行へ移動。先頭は1:<num>
    <num>=行番号
    17最終行へ移動最終行へ移動。:G
    18行頭行の先頭へ移動。0
    19行末移動行末へ移動。$
    20ファイル挿入指定したファイルの内容を貼り付ける:r file
    21コマンド実行指定したコマンドを実行し、その結果を貼り付ける:r! command
    22新たに別ファイルを編集現在編集中のファイルから、指定した別のファイルに変更:e file
    23置換文字列Aを文字列Bに変換。g は一行で複数の文字列を置換可能、 c は置換する度にユーザに確認求める:%s/A/B/gc
    24一文字検索カーソルから行末までに文字 x がある場合にその文字まで移動fx
    (x は任意文字)
    カーソルから行頭までに文字 x がある場合にその文字まで移動Fx
    カーソルから行末までに文字 x がある場合にその文字の直前まで移動tx
    カーソルから行頭までに文字 x がある場合にその文字の直後に移動Tx
    25繰り返し検索移動などで、順方向に繰り返し実行する;
    検索移動などで、逆方向に繰り返し実行する,
    26直前の変更
    コマンドの繰り返し
    直前の変更コマンド(文字入力等)、を繰り返し行う.


  4. vi のその他のコマンド

    No機能機能説明
    27:!UNIXコマンド編集中、viを終了させずにUNIXコマンドを実行する。コマンド実行が終わると実行前の状態に戻る。
    28:shviを終了させずにシェルを起動する。複数のコマンドを実行するときに便利。exitコマンドでviに戻る。
    29[CTRL]-[z]viを一時停止し、バックグラウンドに移動する。フォアグラウンドでは、UNIXのプロンプトが表示されコマンド入力が可能になる。バックグラウンドのviを元に戻すには、プロンプトでfgと入力する。


  5. vi の設定ファイル

    vi で 設定ファイル(ホームディレクトリ)を作成します。これにより、 vi を起動したとき、その設定が有効になります。

    vi .exrc

    set ts=4
    set nu
    set autoindent
    ■:wq
    ts=4       タブストップ
    nu        行番号の表示
    autoindent   オートインデント


     ※環境変数 EXINIT にコマンドを登録する方法もあります。

        % setenv EXINIT='set exrc nu showmode tabstop=4'  (Cシェル系)
        $ export EXINIT='set exrc nu showmode tabstop=4' (Bシェル系)


  6. cshell の設定ファイル

    vi でcshell の 設定ファイル(ホームディレクトリ)を変更します。これにより、各種設定が有効になります。

    vi .cshrc

    #     for shell 
    set history=100
    set path=(. /bin /etc)
    setenv LANG ja_JP.PCKset nu
       :
    ■:wq
    path         検索するパスを指定する(複数)
    LANG       日本語入力ができる

    source .cshrc