录制宏很好,但我的 .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
一旦你习惯了这一点,它(至少对我来说)比录制宏要快得多。
我的问题是:
这可以改变以识别不同的参数吗?当前替换仅识别一个(整个当前行)并将其放置在原@@@
处。
我想把它改进成这样:
$x = array("{{1}}"=>"{{2}}"); // {{3}} (type ,p here)
key, value, some explanation (type ,a here)
并使用它,获得类似:
$x = array("key"=>"value"); // some explanation
我对 vimscript 或如此动态的正则表达式不是很流利(我的意思是,捕获可变数字或字符串)。有人能指出我正确的方向吗?