不要停止未找到的映射

时间:2014-07-02 15:47:53

标签: vim macros

vim映射有一个重要部分:

:map <C-j>r f{^

我注意到,当在行中找不到{字符时,则不执行映射的其余部分。

有没有办法,即使找不到搜索字符,如何强制映射继续? (在这种情况下执行返回文件的开头)

1 个答案:

答案 0 :(得分:0)

是的,Vim在映射中中止错误。无论错误如何,您都可以使用:silent! normal! ...继续。使用一系列:normal!命令,您甚至可以检查(例如光标是否移动)并对其作出反应。草图:

:map <C-j>r :exe 'normal! maf{'<Bar>if getpos("'a") == getpos(".")<Bar>echo "no move"<Bar>endif<CR>

请注意,这不能很好地扩展。您最好将命令移动到:function

Also, you should probably use :noremap;它使映射不受重映射和递归的影响。

这个问题的字面答案是: :map <C-j>r :silent! exe "normal f{^"<CR>