天才ビル・ジョイが作ったエディタ。
環境とシェル
コマンド | 説明 |
---|---|
:set nu
|
行番号表示をオン |
:set hlsearch
|
検索時のハイライト表示をオン |
:sh , ^D
|
シェルを起動、終了 |
:!command
|
コマンドを実行 |
:n,m! command
|
n行目から m行目まで command でフィルタ処理 |
:r !command
|
コマンドを現在のファイルに読み込む |
画面分割
コマンド | 説明 |
---|---|
:sp filename
|
filename を横分割で開く |
:vsp filename
|
filename を縦分割で開く |
[Ctrl] + [W] + j/k/l/h
|
下/上/右/左のウィンドウに移動 |
[Ctrl] + [W] + [3+/3-]
|
ウィンドウの横軸を3つ広げる/縮める |
[Ctrl] + [W] + [3>/3<]
|
ウィンドウの縦軸を3つ広げる/縮める |
テキスト移動
コマンド | 説明 |
---|---|
h , j , k , l
|
左、下、上、右 |
w , W , b , B
|
前、後の単語(大文字は大きいジャンプ) |
e , E
|
単語の末尾(大文字は大きいジャンプ) |
) , (
|
次、前の文章へ |
} , {
|
次、前の空行で区切られたブロックへ |
%
|
括弧の終端へ |
行移動
コマンド | 説明 |
---|---|
[Enter]
|
次の行 |
0 , ^ , $
|
カレント行の先頭、文字先頭、末尾 |
-
|
上の行の文字先頭 |
H
|
Head。画面の最上行 |
M
|
Middle。画面の中央行 |
L
|
Last。画面の最下行 |
nH , nL
|
上、下から n行目 |
z[Enter]
|
カーソル位置を画面の一番上に |
z.
|
カーソル位置を画面中央に |
z-
|
カーソル位置を画面の一番下に |
スクロール
コマンド | 説明 |
---|---|
[Ctrl] + [Y] , [Ctrl] + [E]
|
1行ずつ上、下にスクロール |
[Ctrl] + [U] , [Ctrl] + [D]
|
半画面ずつ上、下にスクロール |
[Ctrl] + [B] , [Ctrl] + [F]
|
1画面ずつ上、下にスクロール |
検索
コマンド | 説明 |
---|---|
tx
|
カレント行内でカーソルより後方にある x の直前にジャンプ |
Tx
|
カレント行内でカーソルより前方にある x の直前にジャンプ |
fx
|
カレント行内でカーソルより後方にある x にジャンプ |
Fx
|
カレント行内でカーソルより前方にある x にジャンプ |
[;] , [,]
|
カレント行の文字検索を前方、後方に繰り返す |
/pattern
|
前方にパターンを検索 |
?pattern
|
後方にパターンを検索 |
*
|
カーソル上のテキストを検索 |
n , N
|
直近の検索を前方、後方に繰り返す |
置換
コマンド | 説明 |
---|---|
:s/old/new/
|
カレント行の最初の old を new に置換 |
:s/old/new/g
|
カレント行の全ての old を new に置換 |
:1,$s/old/new/g , :%s/old/new/g
|
ファイル全ての old を new に置換 |
:%s/old/new/gc
|
ファイル全ての old を逐一確認しながら new に変換 |
~
|
大文字/小文字に変換 |
行番号とマークによるジャンプ
- [Ctrl] + [G] --- ファイル名、状態、カレント行番号の表示
- gg --- ファイル先頭にジャンプ
- G --- ファイル末尾にジャンプ
- :n --- n行目にジャンプ
- mx --- 現在位置を x としてマーク
- `x --- x にジャンプ
挿入と変更
- i, a --- カーソルの前/後にテキストを挿入
- I, A --- 行の先頭/末尾にテキストを挿入
- O, o --- カーソルの上/下にテキストを挿入
- r --- 一文字変更
- cw --- 単語変更
- cc --- カレント行を変更
- c + [motion] --- モーションで指定した場所までを変更
- C --- 行末まで変更
- R --- 重ね書き
- s, S --- 1文字/カレント行をテキストに変更
- 3iFOO --- FOO が3回入力。Vim によるテキスト編集はプログラミング
削除とヤンク
- x, X --- 文字を前方・後方に削除
- dw --- 単語を削除
- dd --- カレント行を削除
- D --- 行末までを削除
- d + [motion] --- モーションで指定した場所までを削除
- yw --- 単語のヤンク
- yy, Y --- カレント行のヤンク
- y + [motion] --- モーションで指定した場所までをヤンク
- P, p --- 削除/ヤンクしたテキストをカーソルの前/後にペースト
- "aY --- レジスタa にカレント行を登録
- "aP --- カーソルの前に、レジスタa のテキストをペースト
- :reg --- レジスタ一覧
- [Ctrl] + [R] a --- (挿入モードで)レジスタa をペースト
- [Ctrl] + [R] + --- (挿入モードで)クリップボードをペースト
その他
- . --- 直近の編集コマンドの繰り返し
- v, V --- 文字/行の選択
- ggVG --- ファイル内全てを選択
- u, U --- アンドゥ、カレント行の復元
- [Ctrl] + [R] --- リドゥ
- J --- 2行の連結
exアドレスと活用
- 1,$ (%) --- ファイル内全ての行
- x,y --- x行目から y行目まで
- [0], [.], [$] --- ファイルの先頭/カレント行/最終行
- :3,5d --- 3行目〜5行目を削除
- :.,$d --- カレント行からファイル最終行までを削除
- :3,5m0 --- 3行目〜5行目をファイル先頭に移動
- :3,5m10 --- 3行目〜5行目を10行目に移動
- :3,5co$ --- 3行目〜5行目をファイル最終行にコピー
保存と終了
- [ESC], [Ctrl] + [ --- 挿入モードへ
- :e! --- 一番最初の状態へ戻す
- :w, :w! --- 保存、強制的に保存
- :3,5w newfile --- 3〜5行目を newfile として保存
- :3,5w>>file --- 3〜5行目を file に追記
- ZZ --- 保存して終了
- :q, :q! --- 終了、変更を破棄して終了
- Q --- viモードを終了して exモードに切り替える
- :vi --- viモードに戻る