なお、同じ検索語を下方向に検索するには小文字の「
n」、上方向に検索するには大文字の「
N」
*
カーソルがある位置の単語を下方向に検索
#
カーソルがある位置の単語を上方向に検索
【コマンドモードで置換】
:s/置換前文字/置換後文字/
substitute。1箇所単位で置換
hogeをHOGEにしたいときは、「
:s/hoge/HOGE/」
:s/置換前文字/置換後文字/
g
substitute。カーソルがある位置の行単位で置換
hogeをHOGEにしたいときは、「
:s/hoge/HOGE/g」
:%s/置換前文字/置換後文字/
g
substitute。ファイル全体での置換
hogeをHOGEにしたいときは、「
:%s/hoge/HOGE/g」
:%s/置換前文字/置換後文字/
gc
substitute。confirm。確認しながらのファイル全体での置換
文字ごとに「これを変えますか?」と確認があるので、「
y」(Yes)、「
n」(No)、「
a」(All)、「
q」(ここでやめる)などをインタラクティブに選びながら置換していく
hogeをHOGEにしたいときは、「
:%s/hoge/HOGE/gc」
【ノーマルモードで操作の取り消し】
u
undo。直前の操作の取り消し
Ctrl+r
redo。直前の操作の取り消しの取り消し
【コマンドモードでウィンドウの分割】
:sp
split。上下にウィンドウを分割する
しかし、このままでは、上下とも同じファイルが開いているので、「
Ctrl+w」でウィンドウ間を移動する
そして、変更したいファイルで「
:e ファイル名」を使用して、新規のファイルを開く
:vs
virtical split。左右にウィンドウを分割する
しかし、このままでは、上下とも同じファイルが開いているので、「
Ctrl+w」でウィンドウ間を移動する
そして、変更したいファイルで「
:e ファイル名」を使用して、新規のファイルを開く
:close
分割したウィンドウを閉じる
【コマンドモードで複数のファイルをタブ形式で開く】
:tabnew
新規のタブを作る
:tabe
tab edit。新規のタブを作る
qt
go to next tab。ノーマルモードで利用する
タブ間を移動する
:tabclose
タブを閉じる
$ vim -p ファイル名 ファイル名 ・・・
タブを複数一括で開きたい場合は、Linuxコマンドの「vim」に「-p」オプションを付けて、その後に、開きたいファイルを列挙していく
:tabdo %s/置換前文字/置換後文字/
g複数タブでの一括置換
hogeをHOGEにしたいときは、「
:tabdo %s/hoge/HOGE/g」
【ノーマルモードで直前の操作の繰り返し】
.
ピリオド。直前の操作(コマンド)の繰り返し
【ノーマルモードでインデントを揃える】
=
イコール。コードのブロックを明確にするためのインデントを揃える
gg + V(Shift+v) + G(Shift+g)+=
ファイル全体のインデントを揃える。全選択してからインデントを揃える
gg ← 先頭へ移動
V(Shift+v) ← 行単位で選択
G(Shift+g) ← 最後へ移動
= ← インデントを揃える
【挿入モードで補完機能を利用】
Ctrl+ n
今開いているファイル(タブ形式で開いているタブも含む)で、使用している変数名や関数名について補完機能を利用する
【ノーマルモードから挿入モードで矩形選択後に編集する】
Ctrl+v + I(Shift+i) + 挿入したい文字+Esc
複数行の先頭に文字を追加する。矩形選択と編集を組み合わせる
Ctrl+v ← 矩形単位での選択
I(Shift+i) ← 挿入モードへ入る
挿入したい文字 ← 挿入したい文字
Esc ← ノーマルモードへ戻る
なお、これで追加した文字が不要で一括で削除したい場合は、「Ctrl+v + x」を利用する
【ノーマルモードでテキストオブジェクトを扱う】
まず、テキストオブジェクトとは何か?
簡単に言うと、文章の構造を見て、テキストをオブジェクトとして扱う機能です。
詳細は、下記です。
テキストオブジェクトとは、記号などで囲まれたテキストをオブジェクトとして扱うことができる、Vimの機能です。 テキストオブジェクトを使うと、ある記号で囲まれたテキストをコピーしたり削除したりできます。
『Vimのテキストオブジェクトとsurround.vimでhtml編集の効率を上げる』
テキストオブジェクトとは、特定の文字に囲まれた領域のことです。例えば、「() で囲まれた領域」や「”” で囲まれた領域」、「html のタグで囲まれた領域」をテキストオブジェクトといいます。
『Vim のすゝめ 第 8 回 – テキストオブジェクト — SOUM/misc』
そして、テキストオブジェクトの書式は下記の通りです。
オペレータコマンド + (回数指定) + 内部/外部指定 + テキストオブジェクトの種類の指定
オペレータコマンド
コピー(y: yank)、削除(d: delete)、変更(c: change)、選択(v: visual)といった操作の意味を決定づけるキーを使用します。
内部/外部指定
「i」(inner、中身)
「a」(all、全体)
テキストオブジェクトの種類の指定
タグ(t: tag)
括弧記号([,(,{,<,",`)
例えば、「<title>hoge</title>」ようにtitleタグで囲まれた領域にカーソルを置いて「cit」とコマンドを打つと、挿入モードに入れます。
【コマンドモードで使える便利な設定】