Memoize |
BasicWerk
EC Support
Technique
Facebook
|
20141222201820_Vim_macro |
Vim_macro
Vim で編集中に繰り返し作業が発生したらマクロをその場で登録して実行すると作業効率が上がる。
例えばこんな内容の行があったとして、 parent=`pwd` source=$parent/source data=$parent/data result=$parent/result source=$parent/source 以下の行を var="value" のように右辺がダブルクォーテーションで囲まれた状態にしたい。
ポインタが source=... の行のどこかに居るとする。
キー入力はこんな感じ。
この時点で source=... の行は編集が終了し、カーソルは data=... の行に居るはずだ。 parent=`pwd` source="$parent/source" <- この行は編集完了 data=$parent/data <- この行にカーソルがいる状態 result=$parent/result
ここで @a を2回入力すると data=... の行と result=... の行が編集される。 parent=`pwd` source="$parent/source" data="$parent/data" result="$parent/result"
ポイントはマクロの登録の最後に j (ひとつ下の行へ) を含めること。 でないと、@a 一発で編集と行移動が同時にできない。 なお、仮に result=... の行末が newline ではなく EOF だとしても、Vim のマクロはシーケンスが成功する限り実行する。 つまり最後の j は失敗するがその手前までのマクロシーケンスは実行される。
|
© Shin Nakamura/BasicWerk 2008 - 2014 |