Kilimanjaro Warehouse

WEBとかゲーム開発のことについて書きます。

VIM Tutorで学んだVimのコマンドまとめ

Vimが使える状態で、以下のコマンドを打つとVimチュートリアルを利用できます。

$ vimtutor

今回は、VIM Tutorで学んだコマンドをまとめてみました。

モード切り替え

esc NORMAL MODE(コマンドを打てる)
R REPLACE MODE(入力した文字で置き換える)
v VISUAL MODE(移動キーで範囲を選択できる)
i カーソルの一つ前の位置からINSERT MODE(文字を入力できる)
a カーソルの一つ後の位置からINSERT MODE
A 現在の行の後尾からINSERT MODE
o 現在の行の一つ下へ改行しINSERT MODE
O 現在の行の一つ上へ改行しINSERT MODE

ファイル操作など

w 保存
w + 文字列 指定した文字列の名前をつけて保存
q 終了
w + q 保存して終了
q + ! 保存せずに終了
:r + ファイル名 指定したファイルの中身を貼り付ける
シェルコマンド + ! シェルコマンドを実行できる(例. !lsで現在のディレクトリのリストを表示)
:help + コマンド 指定したコマンドのヘルプを表示
u 一つ前の状態へ(Undo)
U 一つ後の状態へ(Redo)

移動

h
l
j
k
w 次の単語の先頭
e 次の単語の後尾
b 前の単語の先頭
ge 前の単語の後尾
gg ファイルの先頭へ移動
G ファイルの後尾へ移動
^ 行の先頭へ移動
$ 行の後尾へ移動
Ctrl + g 現在のファイルの位置と行の番号を確認
数字 + G 指定した数字の行へ移動
% (や{などにカーソルを合わせて実行すると、対応する)や}に移動

削除とコピペ

x 文字を削除
dd 行を切り取り
d + 移動 指定した範囲を削除
c + 移動 指定した範囲を削除してINSERT MODEへ
y 選択した範囲をコピー
p 前に削除(コピー)したものを貼り付ける

検索と置き換え

f + 文字 次に現れる文字を検索して移動
/ 前方へ文字列を検索
? 後方へ文字列を検索
n 繰り返す
CTRL + o 一つ前の位置に戻る
r + 文字 カーソルの位置の文字を1つ置き換え
:s/old/new 現在いる行のoldという文字をnewという文字で置き換える(最初に出てきた文字のみ)
:s/old/new/g 現在いる行のすべてのoldをnewで置き換える
:#,#s/old/new/g 現在いる行のoldのうち、最初の#から2つめの#で指定した範囲のもののみnewで置き換える
:%s/old/new/g 現在のファイルのすべてのoldをnewで置き換える
:%s/old/new/gc 現在のファイルのすべてのoldをnewで置き換える。その際、一つずつ置き換えるかどうか確認できる。

オプションの設定

:set オプション オプションをオンにする(例. :set icでignore caseをオン)
:set noオプション オプションをオフにする(例. :set noicでignore caseをオフ)
ic ignore case(検索の際、大文字・小文字を区別しない)
hls hlsearch(検索の際、マッチした文字をハイライトする)
is incsearch(検索の際、文字を打ち込んでる途中でも検索してくれるようにする)