Vim
如何將搜尋限制在目前行
我正在嘗試編寫一個映射,讓我在插入模式下移動一行中的“常見”插入點。例如,我有 delimitMate 外掛 - 因此鍵入一個開始分隔符會自動關閉分隔符並將我置於兩者之間。一旦我輸入了裡面的文本,我通常想跳到分隔符的末尾並保持插入模式。向前推進,對於如下所示的功能
$("#someid").live("someevent", function (param1, param2) {
我想要的是一個插入模式映射,它可以讓我跳到以下任何分隔符字元(引號、雙引號、括號和/或 EOL)中的第一個之後,並在這些點上循環。
檢查 VIM 文件以進行搜尋 - %l 運算符允許限制特定的行號。我試過 %.l (。是目前行) - 但這不起作用。有任何想法嗎?
:exe "/\\%" . line(".") . "l[{}()\"':=\\[\\],]"
似乎有效 - 但不會將游標移動到匹配項。
得到這個與以下工作。
inoremap <C-e> <C-o>:call search("\\%" . line(".") . "l[{}():=\\[\\]\.,]","We")<cr>
這會將游標移動到目前行上的匹配項,但有兩件事不能很好地工作:
- 每次按鍵都會停頓很久
- 它讓我在匹配字元之前進入 Ins 模式,而不是在我想要的之後。