emacsからvimに乗り換える
少しvimを触ってみる。
escは遠い。
インサートモードでのjjをescに割り当てる。
モードとIMEのOn、Off状況を覚えてられない。
あと、jjをescにするとIME Onの時にjjして「っj」とかなって悲しい。
jjをやめてjfにする。
ファイルを開く
:e ファイル名
終了
:q
保存
:w
別名で保存
:w ファイル名
行頭へ移動
^
行末へ移動
$
検索
*
カーソルのある場所の単語を検索(便利)
/xxxxx
xxxxxを検索
正規表現で検索
ただし(とかエスケープしないといけない(面倒)
/(call)+ <-ダメ
/\(call\)+ <-OK
エスケープしないといけない文字が覚えられない。
very magicでなんとかする
/\v(call)+ <-OK
置換
:%s/置換前/置換後/g
確認しながらは
:%s/置換前/置換後/gc
正規表現するなら以下
:%s/\v置換前/置換後/gc
区切りは/じゃなくて;でもいいらしい
:%s;\v(call)+;called;gc
grep、置換する。
:grep 検索文字 対象ファイル
:grep 検索文字 対象ファイル|cw
でQuickfixウィンドウが開くはずなんだけど、
「余分な文字が後ろにあります」
と怒られる。
:grep xxx後に:cwでお茶を濁す。
置換の時が面倒。
:args /temp/xxx/**/*.*
して
:argdo %s/\vxxx/xxx/g|update
なにがいやって、grepと置換でやること違う。
それと、内容確認してから置換ができない。
vim(vimgrep)も考えたけど遅いのが気に入らない。
ので
The Silver Searcher + Ag.vim +qfreplaceにする。
:Ag パターン ファイル
でgrep
Quickfixリストが開くから
:qfreplace
で置換用バッファを開いて書き換え。
:w
で保存。
と思ったら。widowsではag使えない。
使えなくないけど、シェルがワイルドカードを展開してくれないから同じ使い勝手にならない。macとwindowsで使い方変えたくないんだけどなあ。。。
しょうがないからwindowsではgrep(中身はfindstr)して:cw -> :qfreplace -> :wで行くか。
vimrc再読み
:source ~/.vimrc
バッファを閉じる
:bd
バッファの移動
<C-w>h
<C-w>j
<C-w>k
<C-w>l
オペレータとモーション
力尽きた
入力補完
NeoCompleteで
Undo、Redo
uとctrl+r