0

マクロの記録は問題ありませんが、.vimrc にこれがあり、非常に便利です。

""""""""""""""""""""""""""""""""""""""""""""""""
" ,p prepares and ,a applies a pattern
"    $x = array("@@@"=>"@@@");        (type ,p here)
"    text                             (type ,a here)
" gives you: 
"    $x = array("text"=>"text");
" and moves to the next line to repeat
""""""""""""""""""""""""""""""""""""""""""""""""
nnoremap ,p "ryy
nnoremap ,a "edd"rPV:s/@@@/<C-r>e<Backspace>/g<CR>j

これに慣れると、(少なくとも私にとっては) マクロを記録するよりもはるかに高速です。

私の質問は:

これを変更して、異なるパラメータを認識できるようにできますか? 現在の置換は 1 つだけ (現在の行全体) を認識し、その場所に配置し@@@ます。

次のように改善したいと思います。

$x = array("{{1}}"=>"{{2}}"); // {{3}}    (type ,p here)
key, value, some explanation              (type ,a here)

そしてそれを使用して、次のようなものを取得します。

$x = array("key"=>"value"); // some explanation

私はvimscriptや非常に動的な正規表現(つまり、変数や文字列をキャプチャする)にあまり精通していません。誰かが私を正しい方向に向けることができますか?

4

1 に答える 1