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