A Text Editor -- Vim のメモ
将太郎 2008/03/14   |  開発色々
操作の豆知識 2008/03/14  |  PK:Vim 操作 豆知識

1.検索

/xxx(?xxx) ドキュメントから「xxx」を検索する。/ は下を検索、? は上を検索する。xxx は正式表現も利用可能です。
デフォルトは大文字と小文字を区別するが、区別しない場合はまず
:set ignorecase
見つかったら、n を入力で次を検索、N で逆方向を検索する。

*(#) カーソルにある単語と一致する単語を下(上)へ検索。

g*(g#) 上記*(#)と似ています。単語を含む文字列もヒットする。

gd カーソルにある単語と一致する単語を検索し、初めて対象単語がある、且つコメントでないところにカーソルを移す。

% カーソルにある括弧と対応する括弧を検索する。() [] {} は対象となる。

f(F)x 現在の行の中、カーソルの後(前)を検索し、初めの x ヒットする。見つかったら、; で続いて検索、’ で逆方向で検索

[I カーソルにある単語と一致する全ての行を表示する。

:vim /{pattern}/[g][j] {file} grep検索を行う。現在のフォルダの下に、「member」と言う単語が含まれたSQLファイルを検索し、ヒットしたファイル一覧を表示する場合は下記コマンドです。
:vim /member.*/[j] *.sql そして、ヒットしたファイル一覧を表示する
:copen
 



2.速やかにカーソルを移す

w 次の単語へ
e 単語の終わりへ
b 前の単語へ

0 行の頭へ
^ 行の始めの単語へ
$ 行の最後へ

H スクリーンの始めの行へ
M スクリーンの真ん中の行へ
L スクリーンの最後の行へ
gg ドキュメントの始めの行へ
G ドキュメントの最後の行へ
c-f(Ctrl+f) 次頁、page down と一緒
c-b 前頁、page up と一緒

’’ 前回カーソルのところへ。例えば、gd, * などで検索して、このコマンドを入力すると、前回カーソルにある所に戻る。
’. 前回修正した行へ
`. 前回修正した所へ
 



3.コピー、削除と貼り付け

vim では、yはコピー、dは削除、pは貼り付け。中で、コピーと削除はカーソル移動コマンドと結合できる。
これらについて、vimのレジスタにも関連があるので、:help reg で参照する。

yw カーソルの所から、単語の終わりまでコピー
dw カーソルの所から、単語の終わりまで削除
y0 カーソルの所から、現在行の頭までコピー
d0 カーソルの所から、現在行の頭まで削除
y$ カーソルの所から、現在行の終りまでコピー
d$ カーソルの所から、現在行の終わりまで削除
yfa カーソルの所から、その後一個目のaまでコピー
dfa カーソルの所から、その後一個目のaまで削除

yy 現在の行をコピー
dd 現在の行を削除
D カーソルの所から、行末まで削除
 



4.速やかに入力

c-p(c-n) 編集モードで、単語の補完

c-x-l 編集モードで、行の補完

c-x-f  編集モードで、ファイル名の補完。例えば、/usr/local/tom を入力後、c-x-f すると、/usr/local/tomcat が補完される
 



5.置換え

:s/aa/bb/g 現在の行の中、全ての aa 文字を bb に置換え

:%s/aa/bb/g ドキュメントの中、全ての aa 文字を bb に置換え

:12,23s/aa/bb/g 12行から、23行の中、全ての aa 文字を bb に置換え

:12,23s/^/#/ 12行から、23行まで、行の頭に # を挿入

:%s= *$== 全ての行、行末の空白を削除

:g/^\s*$/d 文字(空白も)がない空行を削除
 



6.複数ファイル編集

:sp(:vsp) filename スクリーンを横(縦)に分割して、ファイルを開く。c-w-w で分割された各ウィンドーの間に、カーソルを移動できる

:ls 開いたファイルの一覧を表示する。例えば、下記データは表示される。
1 %a "usevim.html" 行 162
2 # "xxxxxx.html" 行 0

表示項目の意味:
【1】 ファイル番号
【%a】 ファイルの略称、% は現在編集中と示している
【#】 前回編集したファイル
【"usevim.html"】 ファイル名
【行 162】 カーソルの位置

:b 1 ファイル番号が1のファイルを編集する。ここの1は上記 ls コマンドで表示されたファイル番号です。

:set diff ファイル比較。まずは :vsp filename で縦ウィンドーで比較相手を開く。そして、左と右ウィンドーで :set diff を入力すると、比較ができる。



7.TAB

<< 現在の行を左へtab移動

>> 現在の行を右へtab移動

5>> 現在の行から、5行までの行を右へtab移動

:12,24> 12行~24行を右へtab移動

:12,24>> 12行~24行を右へ2回tab移動


閲覧  |  コメント  |  目次

 
ヘルプ  |  ご利用規約  |  相互リンク  |  問合せ
リンクはご自由に、問合せはお気軽に
©2007 Uprush