vim で利用できるコマンド
どうも,筆者です.
vim を使い始めて数日が経つ(前回の記事の段階で,ある程度は使えるようにはなっていた).しかし,まだ,コマンドをよく把握していない. こういうものは使いながら覚えていくのがいいが,どうしても忘れやすいため,ここに,記録しておく.
移動
コマンド | 処理内容 |
---|---|
h | 左に 1 文字分移動(←) |
j | 下に 1 文字分移動(↓) |
k | 上に 1 文字分移動(↑) |
l | 右に 1 文字分移動(→) |
gg | ファイルの先頭(1 行目)に移動 |
G | ファイルの末尾(最後の行)に移動 |
w | 前方に 1 単語分移動 |
b | 後方に 1 単語分移動 |
W | 空白を挟んで,前方に 1 単語分移動 |
B | 空白を挟んで,後方に 1 単語分移動 |
^ | テキストの先頭に移動(空白は無視) |
0 | 行頭に移動(空白も含む) |
$ | 行末に移動 |
Ctrl + d | 半ページ分下にスクロール |
Ctrl + u | 半ページ分上にスクロール |
Ctrl + f | 1 ページ分下にスクロール |
Ctrl + b | 1 ページ分上にスクロール |
f[char] |
次の [char] に移動 「;」でさらに前を調べる, 「,」で後ろを調べる |
テキスト内の編集
[n] は数字が入る.例えば,3yy としたら,現在のカーソルの位置から,3 行コピーされる
コピー関連
コピーコマンド | 処理内容 |
---|---|
yw | カーソルの位置から,前方に 1 単語分コピー |
yb | カーソルの位置から,後方に 1 単語分コピー |
y0 | カーソルの位置から,行頭までコピー |
y^ | カーソルの位置から,その行のテキストの先頭までコピー |
y$ | カーソルの位置から,行末までコピー |
yy | 1 行コピー |
[n]yy | n 行コピー |
y[n]G | 現在のカーソルの位置から,n 行目までをコピー |
切り取り関連
切り取りコマンド | 処理内容 |
---|---|
dw | カーソルの位置から,前方に 1 単語分カット |
db | カーソルの位置から,後方に 1 単語分カット |
d0 | カーソルの位置から,行頭までカット |
d^ | カーソルの位置から,その行のテキストの先頭までカット |
d$ | カードルの位置から,行末までカット |
dd | 1 行切り取り |
[n]dd | n 行切り取り |
d[n]G | 現在のカーソルの位置から,n 行目までを切り取り |
マーカーを利用したコピーと切り取り
まずは,マーカーの使い方を以下に示す.
コマンド | 処理内容 |
---|---|
mk | 現在のカーソルの位置を k にマークする |
'k | k の位置にカーソルを移動する |
これを利用して,任意の行から,任意の行までをコピー,切り取りを行うことが出来る.編集したい最初の行で「mk」とし,編集した最後の行で「d'k」もしくは,「y'k」とするとこで編集が行える. 行番号が分かっているならば,上の方法を利用した方が早い.
テキスト内の検索
検索を行うには,ノーマルモード中で,「/」を押す.すると,コマンドラインのところに,「/」が表示されるので,検索したい文字列を入力して Enter を押す.
コマンド | 処理内容 |
---|---|
n | ヒットした次の単語に移動 |
N | ヒットした前の単語に移動 |
テキスト内の置換
ここでは,よく使うものだけ紹介する.先ほどと同様にして,[n] は行数を表す.
コマンド | 処理内容 |
---|---|
:s/[old]/[new]/ | 現在カーソルがある行で,最初の [old] を [new] に置換 |
:s/[old]/[new]/g | 現在カーソルがある行で,すべての [old] を [new] に置換 |
:%s/[old]/[new]/g | ファイル全体で,[old] を [new] に置換 |
:[n],$s/[old]/[new]/g | n 行目からファイルの末尾までの [old] を [new] に置換 |
:g/string/d | string を含んでいる行を削除 |
:v/string/d | string を含んでいない行を削除 |
Ctrl + a | 現在のカーソルの位置から,最初に見つかった数字をインクリメント |
Ctrl + x | 現在のカーソルの位置から,最初に見つかった数字をデクリメント |
範囲選択による大文字小文字の入れ変え
コマンド | 処理内容 |
---|---|
Vu | 現在の行の文字を小文字にする |
VU | 現在の行の文字を大文字にする |
g~~ | 現在の行の文字の大文字小文字を反転させる |
vEU | 単語単位で大文字にする |
vEu | 単語単位で小文字にする |
vE~ | 単語単位で大文字小文字を反転させる |
参考サイト
vimエディタ・スターターマニュアル #3 (カーソルの移動) — 名無しのvim使い