Linux > vim

>

vim 操作

テキストファイルしかいじったことのない人にはとっつきにくいが、慣れるほどにその良さが分かってくるのがvim
今回はその vim の操作方法について

vim の操作方法
:set number Enter 行番号表示
:行番号 Enter 指定した行番号へ移動
:set nonumber Enter 行番号非表示
h 左へ
j 下へ
k 上へ
l 右へ
Ctr + f 1画面下スクロール
Ctr + b 1画面上スクロール
Ctr + d 半画面下スクロール
Ctr + u 半画面上スクロール
gg 先頭に移動
G 末尾に移動
w 次の単語に移動
b 前の単語に移動
% カーソル上の対となる場所へ移動 ({ → } [ → ] ( → )等)
>> カーソル行のインデントを増やす
<< カーソル行のインデントを減らす
数字>> 数字行分のインデントを1つ増やす
数字<< 数字行分のインデントを1つ減らす
/文字列 Enter 文字列下方検索
?文字列 Enter 文字列上方検索
:%s//置換後/g Enter 検索結果をそのまま置換後文字に置換
* Enter カーソル上の単語を検索 (下方検索)
# Enter カーソル上の単語を検索 (上方検索)
n 検索文字列の次のマッチへ
N 検索文字列の前のマッチへ
:noh Enter ヒットした検索語フォーカスを消す
i カーソル位置から挿入モード開始
a カーソル右から挿入モード開始
A カーソル行の末尾から挿入モード開始
I カーソル行の冒頭から挿入モード開始
o カーソル行の下に新たに行を作り挿入モード開始
O(大文字) カーソル行の上に新たに行を作り挿入モード開始
cw カーソル位置から単語の終わりまで削除して挿入モード開始
caw 単語の終わりまで削除して挿入モード開始 (カーソル位置は単語のどこでも構わない)
r カーソル上の一文字置換
~ (ノーマルモードで) カーソル上の一文字を大文字、小文字に変換
:%s/置換前/置換後/g Enter ファイル全体を対象で置換前の文字を置換後に置き換える
:s/置換前/置換後/ Enter カーソル行の最初のみ対象で置換前の文字を置換後に置き換える
:s/置換前/置換後/g Enter カーソル行の全対象で置換前の文字を置換後に置き換える
:%s/置換前/置換後/gc Enter 確認しながら置換前の文字を置換後に置き換える
v ビジュアルモード開始
y (ビジュアルモードで) ビジュアルモードで h、j、k、l ←、↑、↓、→ で選択後 y でコピー
d (ビジュアルモードで) ビジュアルモードで h、j、k、l ←、↑、↓、→ で選択後 d で削除
U (ビジュアルモードで) カーソル文字、選択文字を大文字へ
u (ビジュアルモードで) カーソル文字、選択文字を小文字へ
Esc ノーマルモードに戻る
Ctr + c ノーマルモードに戻る (ビジュアルモードでなければ)
yy カーソル行のコピー
p カーソル行の下に新たに行を作り貼り付け
P(大文字) カーソル行の上に新たに行を作り貼り付け
y数字 カーソル行を含めて数字行分コピー
yG カーソル行から最後の行までコピー
ygg カーソル行から最初の行までコピー
:%y Enter 全体のコピー
yw カーソル位置から単語の終わりまでコピー
yaw 単語の終わりまでコピー (カーソル位置は単語のどこでも構わない)
数字yw カーソル位置から数字分の単語の終わりまでコピー
数字yaw 数字分の単語の終わりまでコピー (カーソル位置は1つ目の単語のどこでも構わない)
:%y 全選択コピー (カーソル位置はどこでも構わない)
数字の上で Ctrl + a 数字を1つ増やす
数字の上で Ctrl + x 数字を1つ減らす
x カーソル位置の一文字を削除
数字x カーソル位置から数字分だけ削除
dd カーソル行の削除
d$ または D カーソル位置から行末まで削除
d0 カーソル位置から行頭まで削除
d数字 Enter カーソル行を含めて数字行分削除
dw カーソル位置から単語の終わりまで削除
daw 単語の終わりまで削除 (カーソル位置は単語のどこでも構わない)
数字dw カーソル位置から数字分の単語の終わりまで削除
数字daw カーソル位置から数字分の単語の終わりまで削除 (カーソル位置は1つ目の単語のどこでも構わない)
dgg カーソル行から最初の行まで削除
dG カーソル行から最後の行まで削除
:%d Enter (カーソル位置はどこでも構わない) 全体の削除
Ctrl + z 一時的にVimを閉じてコマンドラインに戻る
fg Enter 一時的に閉じたエディターを再度開く
:q! Enter 終了(変更を破棄して終了)
:wq Enter 終了(変更を保存して終了)
vi -d a.conf b.conf 二つのファイルを横並びで同時に開く
:vsp 別ファイル名 vim上で別ファイルを左横に並べて開く
Ctr + ww 二つのファイルを行き来する
:wqa Enter 複数のファイルを保存して閉じる
:w 別ファイル名 編集中のファイルを別名で保存 (現行ファイルで編集は継続)
:sav 別ファイル名 編集内容を名前を付けて保存 (保存ファイルを編集対象として継続)
:wq 別ファイル名 編集内容を別ファイル名で保存してvimを閉じる