主な vi コマンド
コマンド | 概要 |
挿入コマンド群 |
A, a | A: 行末に追加(Append) a: カーソル直後に追加 |
I,i | I: 行頭に挿入(Insert) i: カーソル直前に挿入 |
O,i | O: カーソルの上に1行加える(Open) o: 下に1行加える |
カーソル移動コマンド群(1) |
k, - | 1行上へ移動 |
Lj | 1行下へ移動 |
h, [BS] | 1文字左へ移動 |
l, [SP] | 1文字右へ移動 |
0 | 行頭へ移動 |
$ | 行末へ移動 |
[Enter], + | 1行下の非空白文字へ移動 |
n|(縦棒) | n文字目に移動 |
nG | n行目へ移動。n省略時は最終行 |
カーソル移動コマンド群(2) |
w | 現在位置の右にある単語の先頭にカーソルを移す |
b | 現在位置の左にある単語の先頭にカーソルを移す |
e | 現在位置の右にある英字または特殊文字が連続する最後の文字にカーソルを移す |
W | 現在位置の右側にある空白で区切られた単語の先頭にカーソルを移す |
B | 現在位置の左側にある空白で区切られた単語の先頭にカーソルを移す |
E | 空白で区切られた単語の終りにカーソルを移す |
% | 対応する括弧への移動。( と )、{ と } など(mpsオプションによる) |
テキストの削除コマンド群 |
x | カーソル下の 1 文字を削除(DEL) |
X | カーソルの左側 1 文字を削除(BS) |
dd | カーソルのある行を削除 |
D | カーソルから行末までを削除 |
d 移動 | カーソル位置から移動コマンドで移動したところまでを削除 |
テキストの修正コマンド群 |
cc | カーソル位置の行を、エスケープまでの入力文列と置き換える |
rX | カーソル下の文字をXに置き換える |
C 移動 | カーソル位置から移動コマンドで移動したところまでを修正 |
~(チルダ) | カーソル下を大文字/小文字を反転する |
その他 |
u | 直前のコマンドとりけし |
yy | 現在行のコピー |
p | ペースト |
. | 直前のコマンド繰り返し |
J | 下の行を連結する |
ZZ | 保存して終了 |
|
主な ex コマンド([Enter]は省略)
コマンド | 概要 |
:n | n行目へ移動 |
:$ | 最終行へ移動 |
:%s/str1/str2/g | すべての文字列str1をstr2に置換
%はすべての行で、n,mとして行範囲を指定できる
g がなければ行の先頭から合致した文字列を1回だけ置換 |
:n,md | n行から、m行までを削除 |
:!cmd | コマンドの実行 |
:r!cmd | コマンドの実行結果のとりこみ |
:r file | ファイルの取り込み |
:w file | 名前を付けて保存 |
:wq | 保存して終了 |
行範囲は、:n,m だけでなく、:.,/str/ のように現在行から、strが見つかるまでといった表記が可能です。
主な vi オプション
オプション(省略形) | Type | 概要 |
autoindent(ai) | T | 自動インデント |
autowrite(aw) | T | ファイル移動時の自動保存 |
all | - | オプションの設定内容表示 |
hlsearch(hls) | T | 検索結果の強調表示と保持 |
ignorecase(ic) | T | 検索時に大文字小文字を区別しない |
list | T | 非表示文字(行末$、TAB ^I)の表示 |
matchpairs(mps) | S | 対応するカッコの組み合わせ("(:),{:},[:],<:>") |
number(nm) | T | 業番号の表示 |
shiftwidth(sw) | N | シフトコマンドで移動する文字数(8) |
tabstop(ts) | N | TABで移動する文字数(8) |
Type の凡例
T:トグルスイッチ
オプションが on/off のいずれかを持つもので、 set に続けてオプション名を指定すると on,
オプションの前に no をつけると off の意味になります。
例) :set noic , :set ignorecase
N:数値型
オプションに等号(=) をつけて値(数値) を指定します。
例) :set width=4
S:文字型
N と同様ですが、指定できる値は文字列になります。
例) :set bg=dark
vi 解説
|