Vimの基本操作
vimrcいじり過ぎてデフォルトの操作方法を忘れつつあるのでメモ
基本的にノーマルモードからのコマンドです
ファイル操作
入力 |
動作 |
備考 |
:w |
内容を保存 |
:w nameで名前を指定して保存 |
:q |
終了 |
|
:q! |
強制終了 |
|
:wq |
保存して終了 |
ZZ や :xも同様の動作 |
:qa |
全てのタブ、ウィンドウの終了 |
|
:qa! |
全てのタブ、ウィンドウの強制終了 |
|
:wqa |
全てのタブ、ウィンドウを保存して終了 |
|
:e name |
nameファイル(フォルダ)を開く |
|
gf |
カーソル位置のファイル名のファイルを開く |
|
C + w, gf |
カーソル位置のファイル名のファイルを開く |
|
モード
入力 |
動作 |
備考 |
i |
挿入モード |
|
I^1 |
先頭に移動して挿入モード |
|
a |
カーソルの後ろで挿入モード |
|
A |
末尾に移動して挿入モード |
|
o |
カーソルのある行の下に新しい行を追加し挿入モード |
|
O^2 |
カーソルのある行の上に新しい行を追加し挿入モード |
|
cw |
カーソルの下にある単語を削除して挿入モード |
|
C |
カーソルから行末までを削除して挿入モード |
|
S |
行を削除して挿入モード |
|
R |
上書きモード |
|
v |
ビジュアルモード |
|
V |
行選択のビジュアルモード |
|
Ctrl + v |
矩形選択のビジュアルモード |
|
ESC |
ノーマルモードに戻る |
Ctrl + c, Ctrl + [ も同様 |
gh |
選択モードを開始 |
vと同様? |
gH |
選択モードで行選択を開始 |
Vと同様? |
g, Ctrl + h |
選択モードで矩形選択を開始 |
Ctrl + vと同様? |
gv |
直前の選択範囲を再選択 |
|
カーソル移動
入力 |
動作 |
備考 |
gg |
最初の行 |
|
G |
最終行 |
|
h |
左へひとつ移動 |
|
j |
下へひとつ移動 |
|
k |
上へひとつ移動 |
|
l^3 |
右へひとつ移動 |
|
gj |
表示上の下へひとつ移動 |
|
gk |
表示上の上へひとつ移動 |
|
:(数字) |
(数字)行目に移動 |
|
w |
次の単語 |
|
W |
次の単語 |
|
b |
前の単語 |
|
B |
前の単語 |
|
f(文字) |
文字へ移動 |
|
F(文字) |
逆方向の(文字)へ移動 |
|
; |
順方向に繰り返し検索 |
f, Fに対応 |
, |
逆方向に繰り返し検索 |
f, Fに対応 |
0^4 |
行頭へ移動(インデント無視) |
|
^ |
行頭へ移動 |
|
$ |
行末へ移動 |
|
+ |
下の行の先頭へ移動 |
|
- |
上の行の先頭へ移動 |
|
% |
対応する括弧へ移動 |
|
Ctrl + u |
半画面上 |
|
Ctrl + d |
半画面下 |
|
ctrl + b |
一画面分 上へ移動 |
|
ctrl + f |
一画面分 下へ移動 |
|
zz |
カーソルが画面中央になるようにスクロール |
|
H |
画面上の最初の行へ移動 |
|
M |
画面上の中央の行へ移動 |
|
L |
画面上の最後の行へ移動 |
|
g; |
変更してきた箇所へ移動 |
|
g, |
変更してきた箇所へ逆方向に移動 |
|
gd |
カーソル位置の単語の定義を現在の関数内で探しジャンプ |
|
gD |
カーソル位置の単語の定義を現在のファイル内で探しジャンプ |
|
検索
入力 |
動作 |
備考 |
/ |
順方向に文字列検索 |
|
? |
逆方向に文字列検索 |
|
n |
順方向に繰り返し検索 |
/, ? に対応 |
N |
逆方向に繰り返し検索 |
/, ? に対応 |
* |
カーソルの下の単語を順方向検索 |
|
# |
カーソルの下の単語を逆方向検索 |
|
編集
入力 |
動作 |
備考 |
. |
直前の変更を繰り返す |
|
u |
Undo |
|
Ctrl + r |
Redo |
|
>> |
インデントを追加 |
|
<< |
インデントを削除 |
|
r (文字) |
カーソルの下の文字を置換 |
|
x |
カーソルの下の文字を削除 |
|
X |
カーソルの手前の文字を削除 |
|
dd |
行の削除 |
|
d^ |
カーソルの前から行頭まで削除 |
|
d0^4 |
カーソルの前から行頭まで削除(インデント無視) |
|
D |
カーソル下から行末まで削除 |
|
J |
選択行の連結 |
|
Ctrl + a |
カーソルの下にある数字を1つインクリメント |
|
Ctrl + x |
カーソルの下の数字を1つデクリメント |
|
viw |
カーソルが重なっている単語を選択 |
|
('で囲われている場所で) vi' |
'内を全て選択 |
'は適宜変更 |
~ |
カーソルの下の文字の大文字小文字を入れ替え |
|
gu |
選択した文字を小文字に |
|
gU |
選択した文字を大文字に |
|
= |
選択行のオートインデント |
|
コピー&ペースト
入力 |
動作 |
備考 |
y |
コピー |
|
yy |
今いる行をコピー |
|
p |
ペースト |
|
ウィンドウ
入力 |
動作 |
備考 |
:split |
画面を上下に分割する |
:spに省略可 |
:vsplit |
画面を左右に分割する |
:vsに省略可 |
:hide |
現在のウィンドウを閉じる |
|
:only |
現在のウィンドウ以外を閉じる |
|
Ctrl +w, h |
左のWindowへ移動 |
|
Ctrl + w, l ^3 |
右のWindowへ移動 |
|
Ctrl + w, k |
上のウィンドウへ移動 |
|
Ctrl + w, h |
下のウィンドウへ移動 |
|
Ctrl + w, H |
ウィンドウ自体を左へ移動 |
|
Ctrl + w, J |
ウィンドウ自体を下へ移動 |
|
Ctrl + w, K |
ウィンドウ自体を上へ移動 |
|
Ctrl + w, L |
ウィンドウ自体を右へ移動 |
|
タブ
入力 |
動作 |
備考 |
:tabnew |
新規タブ |
|
:tabedit filename |
新しいタブでfilenameへ開く。引数がなければ新しいタブを開く |
:tabe に省略可 |
:tabnext |
次のタブへ切替。引数(数値)があれば、その番号のタブを開く(:tabn 1 とか) |
:tabn に省略可 |
:tabNext, :tabprevious |
前のタブへ切替。引数があればその数値分先の左のタブへ切替 |
それぞれ:tabN, :tabp に省略可 |
:tabrewind, :tabfirst |
左端のタブへ切替 |
:tabrewind は :tabr に省略可 |
:tablast |
右端のタブへ切替 |
:tabl に省略可 |
:tabclose |
今いるタブを閉じる |
:tabc に省略可 |
:tabonly |
今いるタブ以外を閉じる |
:tabo に省略可 |
gt |
次のタブへ切替 |
(数字)gt で(数字)番目のタブへ切り替え |
gT |
前のタブへ切替 |
(数字)gT で(数字)番目のタブへ切り替え |
その他
入力 |
動作 |
備考 |
:!(コマンド) |
コマンドをシェルで実行 |
|
ga |
カーソル位置の文字のASCIIコード値を表示する |
|