UNIX/Linux においてよく使用される vi (Visual editor) について説明します。 vi はマウスを使わずに、全てキーボードで行います。
vi
a を押します
ESC キーを押します : を押します
|
1.vi を起動 |
| モード | モードの変更操作 | 機能 |
|---|---|---|
| 編集モード | vi 起動直後、ESCキー | カーソルの移動、コピー、貼り付けなど可能 |
| 入力モード | a キー | 文字の入力 |
| ex モード | 編集モードで : キーを押す | 保存、終了等 |
| 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! |
| 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 | 直前の変更 コマンドの繰り返し | 直前の変更コマンド(文字入力等)、を繰り返し行う | . |
| No | 機能 | 機能説明 |
|---|---|---|
| 27 | :!UNIXコマンド | 編集中、viを終了させずにUNIXコマンドを実行する。コマンド実行が終わると実行前の状態に戻る。 |
| 28 | :sh | viを終了させずにシェルを起動する。複数のコマンドを実行するときに便利。exitコマンドでviに戻る。 |
| 29 | [CTRL]-[z] | viを一時停止し、バックグラウンドに移動する。フォアグラウンドでは、UNIXのプロンプトが表示されコマンド入力が可能になる。バックグラウンドのviを元に戻すには、プロンプトでfgと入力する。 |
set ts=4 set nu set autoindent ■:wq |
ts=4 タブストップ
nu 行番号の表示
autoindent オートインデント
% setenv EXINIT='set exrc nu showmode tabstop=4' (Cシェル系)
$ export EXINIT='set exrc nu showmode tabstop=4' (Bシェル系)
# for shell set history=100 set path=(. /bin /etc) setenv LANG ja_JP.PCKset nu : ■:wq |
path 検索するパスを指定する(複数)
LANG 日本語入力ができる