vi/viewコマンド
vi :エディタ
view:ビューワ(書き込みが出来ない) 操作方法がviと同じ
※ただしviewでも、保存時に ! をつければ保存可能( :w! :wq! など)
view:ビューワ(書き込みが出来ない) 操作方法がviと同じ
※ただしviewでも、保存時に ! をつければ保存可能( :w! :wq! など)
実行オプション
| オプション | 動作 |
| -R | 読み取り専用モードで起動(viewと同義) |
| -r | 強制終了させられたりクラッシュしたviを復元 |
| + | 起動時に最終行からファイルオープン |
| + n | 起動時に n 行目からファイルオープン |
| + / xxxx | 起動時に xxxxの文字列の最初の行からオープン |
| + ? xxxx | 起動時に xxxxの文字列の最後の行からオープン |
viコマンド
ほとんどのコマンドは、nコマンド (nは数字)として実行すると
n回繰り返されます。
n回繰り返されます。
以下のコマンド一覧では、忘れたor使ったことがないコマンドは灰色にしてあります。
| 編集コマンド | |
| コマンド | 動作 |
| 挿入 | |
| i, a | カーソルの前/後にテキストを挿入 |
| I, A | 行の先頭/末尾にテキストを挿入 |
| o, O | カーソルの↓/↑に行を追加しテキストを挿入 |
| 変更 | |
| r | 次にタイプする1文字で置き換える |
| R | 文字列を重ね書きする |
| \~ | 大文字小文字の変換 |
| c m | ジャンプコマンド m で指定されるテキストブロックを変更 |
| cc | カレント行を変更 |
| C | カーソル位置から行末まで変更 |
| s | 文字をテキストで置き換える |
| S | カレント行をテキストで置き換える |
| カット | |
| x | 文字の削除 |
| X | カーソルより前の文字を削除 |
| d m | ジャンプコマンド m で指定されるテキストブロックを削除 |
| dd | 行を削除 |
| D | カーソル位置から行末まで削除 |
| コピー(ヤンク) | |
| y m | ジャンプコマンド m で指定されるテキストブロックをコピー |
| yy, Y | カレント行のコピー |
| " a y m | バッファ a に ジャンプコマンド m で指定されるテキストブロックをコピー |
| " a yy | バッファ a にカレント行をコピー |
| ペースト | |
| p, P | (コピーまたはカットした)テキストをカーソルの後/前挿入 |
| " a p | バッファ a の中身をカーソルの後に挿入 |
| " a P | バッファ a の中身をカーソルの前に挿入 |
| その他 | |
| . | 直前のコマンドを繰り返す |
| u | 最後の操作のアンドゥ |
| U | カレント行の復元 |
| J | 次の行をカレント行の後ろに連結 |
| Ctrl-L, Ctrl-R | 画面の書き直し |
| ジャンプコマンド | |
| コマンド | 動作 |
| 文字単位ジャンプ | |
| h, j, k, l | 左, 上, 下, 右へ一文字移動 |
| ←, ↑, ↓, → | |
| 単語単位ジャンプ | |
| w, W, b, B | 単語単位でひとつ前/後への移動 (大文字は句読点を無視) |
| e, E | 単語の末尾へ移動 (大文字は句読点を無視) |
| 段落単位ジャンプ | |
| ), ( | 次/前の文の先頭 |
| }, { | 次/前の段落の先頭 |
| ]], [[ | 次/前のセクションの先頭 |
| 行単位ジャンプ | |
| 0(ゼロ), $ | 行の先頭/末尾へ移動 |
| ^ | 行の先頭(スペース/タブ以外の文字)へ移動 |
| +, - | 次/前の行の先頭の文字へ移動 |
| n | | カレント行の n 文字目に移動 |
| H | 画面の最上行 |
| n H | 上から n 行目の行 |
| M | 画面の中央行 |
| L | 画面の最下行 |
| n L | 下から n 行目の行 |
| 行番号ジャンプ | |
| Ctrl+G | カレント行番号の表示 |
| n G | 行番号 n に移動 |
| G | 最終行に移動 |
| マークとジャンプ | |
| m x | 現在のカーソル位置を x にマーク |
| ` x | マークした x へジャンプ |
| ' x | マークした x のある行の先頭へジャンプ |
| ` ` | 直前のマークまたは文脈に戻る |
| ' ' | 直前のマークを含む行の先頭に戻る |
| スクロール | |
| Ctrl-F, Ctrl-B | 次/前の画面へスクロール |
| Ctrl-D, Ctrl-U | ↑/↓に半画面スクロール |
| Ctrl-E, Ctrl-Y | カーソルを固定したまま↑/↓へ一行スクロール |
| z(enter), z . , z - | カレント行を可能な限り 画面の一番上/中央/一番下にスクロール |
| 検索コマンド | |
| / xxxx, ? xxxx | xxxx を順方向/逆方向に検索 |
| n, N | 以前の検索と同じ検索を同方向/逆方向に行う ※前回が順方向(↓)ならnで順方向(↓),Nで逆方向(↑) 以前の検索が逆方向(↑)ならnで逆方向(↑),Nで順方向(↓) |
| /(enter), ?(enter) | 以前の検索と同じ単語で順方向/逆方向に検索 |
| f x | カレント行でカーソル位置より→にある文字 x に移動 |
| F x | カレント行でカーソル位置より←にある文字 x に移動 |
| t x | カレント行でカーソル位置より→にある文字 x の一文字前(←)に移動 |
| T x | カレント行でカーソル位置より←にある文字 x の一文字後(→)に移動 |
| ; | 直前の t, T, f, Fコマンドを繰り返す |
| , | 直前の t, T, f, Fコマンドを逆方向に繰り返す |
| exコマンド | |
| コマンド | 動作 |
| : | exを起動 |
| :sh | シェルを起動(Ctrl-Dでviに復帰) |
| :! command | commandを実行 ※UNIXコマンドを実行できる |
| :r file | 現在位置にfileの内容を書き込む |
| :r !command | commandの実行結果を現在位置に書き込む |
| :n | 行番号 n に移動 |
| :d | 行の削除 |
| :m | 行の移動 |
| :co, ;t | 行のコピー |
| :%s/xxx/yyy/g | xxxをyyyに置換する |
| :m,nm. | カレント行のあとにm~n行を移動 |
| エイリアス(マッピング) | |
| :map x コマンド羅列 | xキーを押したときの操作が コマンド羅列 になる |
| :unmap x | xキーのエイリアスを解除 |
| :map! x コマンド羅列 | (入力モードで)xキーを押したときの操作が コマンド羅列 になる |
| :unmap! x | xキーの(入力モード)エイリアスを解除 |
| :ab xyz xxxxxx | 入力モードでxyzをコマンドするとxxxxxxに変換される exコマンド入力時にも変換される |
| :unab xyz | xyzのエイリアスを無効にする |
| オプション設定 | |
| :set option | optionを設定 |
| :set option=value | optionにvalueを設定 |
| :set nooption | optionの無効化 |
| :set | 設定したオプションの表示 |
| :set all | すべてのオプションを表示 |
| :set option? | optionの値を表示 |
| 保存/終了コマンド | |
| コマンド | 動作 |
| ZZ | セーブして終了 |
| : x, : w q | セーブして終了 |
| : w | セーブ |
| : w ! | 強制セーブ |
| : m,nw file | file に m ~ n行をセーブ |
| : m,nw >> file | file に m ~ n行を追記 |
| : w %.new | 現在のファイルを ファイル名.new としてセーブ |
| :q | セーブせず終了 |
| :q! | セーブせず強制終了 |
| Q | viを終了してexを起動 |
| :e file | viを終了せずそのままfileを開く |
| :n | 複数ファイルをオープンしている場合に、次のファイルを開く |
| :e! | 編集内容を無効にし、最後にセーブした状態に戻す |
| :e# | 複数ファイルをオープンしている場合に、前に開いていたファイルを開く |
| その他 小技的なもの | |
| 操作 | 動作 |
| 入力モードでCtrl-V Ctrl-M | 制御文字(^M)=CR(キャリッジリターン)を入力する その他の制御文字も同様にCtrl-Vの後に続けて入力することが出来る |
設定ファイル
| エディタ | ファイル名 |
| vi | .exrc |
| vim | .vimrc (なければ .exrc) |
| 設定できるオプション | |
| 設定 | 内容 |
| set number | 行番号の表示 number は nu と省略可能 "set nu" |
| set nonumber | 行番号の非表示 number は nu と省略可能 "set nonu" |
| set tabstop=n | タブ幅の設定をnにする |
| set autoindent | 字下げ |
| " | コメント文 |
- .vimrcの例
"vimの設定ファイル( .vimrc ) "行数表示 set nu "tab設定 set tabstop=4