用< Vim键映射和>符号

时间:2014-04-21 14:48:13

标签: vim keymapping

我正在尝试定义一个vim键映射,用于将所选行放在HTML p标记内:

vnoremap <leader>bp c<p><cr></p><esc>P

它不起作用,我认为vim以特殊的方式解释<p>。我该如何解决这个问题?

2 个答案:

答案 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>