我正在尝试定义一个vim键映射,用于将所选行放在HTML p
标记内:
vnoremap <leader>bp c<p><cr></p><esc>P
它不起作用,我认为vim以特殊的方式解释<p>
。我该如何解决这个问题?
答案 0 :(得分:4)
您可能想查看Tim Pope的Surround插件。然后,您可以执行S<p>
并使用<p>
标记围绕视觉选择的文字。
但是答案请看@romainl的答案。我还建议你通过:h key-notation
答案 1 :(得分:4)
看起来你正在使用Vim兼容模式&#34;这是一种只有无可救药的自虐人才。在&#34; nocompatible模式&#34;中,您的映射按预期工作,因此您应该确保nocompatible
已设置(创建空白~/.vimrc
应该足够了。)
无论如何,您的<p>
不是问题所在,因为它们是正常插入的,是<cr>
和<esc>
造成混乱的问题:因为你在&#34;兼容模式&#34;中运行Vim,cpoptions
选项包括<
,导致Vim无法识别<CR>
和朋友作为特殊密钥。
在&#34; nocompatible模式下运行Vim&#34;是最好的方式,但如果你真的坚持去&#34;兼容&#34;:
,你也可以使用下面的表示法vnoremap <leader>bp c<p>^M</p>^]P
其中^M
插入<C-v><CR>
,^]
插入<C-v><Esc>
。