編集コマンド ■ 編集コマンド 編集を行うコマンドの一覧を示す。コマンドの直後に <move> とあるのは、
移動コマンドを接尾辞としてとることが出来ることを示す。たとえば、d$ はカーソル位置から行末までを削除する。 【注意】 redo は直前の編集操作を繰り返す。筆者がとても気に入っている vi の機能のひとつである。挿入操作も redo の対象となるが、 ViViは挿入中にカーソルキーでカーソルを自由に移動することができるので、どこまでを redo の対象にするかが問題である。 現状は、カーソル移動を行った場合、挿入文字列のレコーディングを中止するという仕様にした。 本物の vi 使いの人は文字挿入中にカーソル移動キーなんか使用しないだろうから、そんなに悪くない仕様と思っている。 【注意】 {c|d|v|y}<move> で、処理対象範囲が複数(論理)行に渡る場合、 処理は行単位となる。ただし、/?nN`<a-z>%}{ は常に文字単位で処理を行う。 >, < は移動コマンドに依らず常に論理行単位で処理を行う。 ────────────────────────────────────── . redo @<a-z> ヤンクバッファの内容をコマンドとして実行 @@ @ コマンドを繰り返す ~ 半角英字の大文字小文字変換 & 直前に実行した :s コマンドを再実行 * >> 右シフト(インデント) ><move> 右シフト(インデント) * << 左シフト(逆インデント) <<move> 左シフト(逆インデント) * a 追加(カーソル位置直後から挿入) * A 行末に追加 * cc 行を修正 * c<move> 現カーソル位置から移動後のカーソル位置までを修正 * C カーソル位置から行末までを修正(c$) * dd 行削除 d<move> 現カーソル位置から移動後のカーソル位置までを削除 D カーソル位置から行末までを削除(d$) * i カーソル位置に挿入 * I 最初の非空白文字の位置に挿入 * J 複数行を1行にする * o 直後に行をオープン * O 直前に行をオープン * p カーソル直後、またはカーソル行の次にヤンクバッファの 内容をペースト * P カーソル直前、またはカーソル行の前にヤンクバッファの 内容をペースト * r 文字置換(全角文字は不可) R カーソル位置から行末までを置換 * s 文字を修正 * S 行を修正 u undo U undo の undo(ViViでの Redo) vv カーソル位置の単語を選択 * v<move> 現カーソル位置から移動後のカーソル位置までを * V 行選択 * x カーソル位置の1文字消去 * X カーソル位置の直前文字を消去 * y<move> 現カーソル位置から移動後のカーソル位置までを ヤンクバッファにコピー * yy 行をヤンクバッファにコピー * Y 行をヤンクバッファにコピー * z{Return|-|.} 画面をスクロール ────────────────────────────────────── |