1

我试图为 Markdown 标头创建一个操作符挂起映射,这是一个学习 vim 脚本的练习,这里是我的 vimrc 中的一行:

autocmd Filetype markdown :onoremap ih :<c-u>execute "normal! ?\\(^==\\+$\\|^--\\+$\\)\r:nohlsearch\rkvg_"<cr>

我有这个错误

E486: Pattern not found: \(^==\+$|^--\+$\)

我尝试了一些修改,但我得到了相同的结果,就像管道永远不会逃脱一样!

4

1 回答 1

5

:map命令中,使用<Bar>而不是管道符号:

autocmd Filetype markdown :onoremap ih :<c-u>execute "normal! ?\\(^==\\+$\\<bar>^--\\+$\\)\r:nohlsearch\rkvg_"<cr>

那个长:normal命令(实际上执行一个搜索、一个 Ex 命令,然后是更多命令,用 分隔\r)是丑陋的。您最好使用:call search(...)而不是?命令,并将多个命令分解为:function.

于 2013-07-31T13:16:42.143 回答