vim cmap lhs只在开头

时间:2016-02-08 21:39:25

标签: vim

我有一个映射 :cnoremap ch call ShowHistoryMatching

问题是ch个字符在任何情况下都会被输入,无论是在cmap输入的开头还是后面,都会扩展到正确的句子。

问题是当我尝试使用/?在vim中搜索单词时,例如对于 /cache - 它将使用上面的映射进行扩展。

如何将映射ch设置为仅在命令开头出现时才会被扩展?

2 个答案:

答案 0 :(得分:1)

cmap是出了名的狡猾,因为它们经常在错误的环境中执行。一些更好的选择:

就个人而言,我只想创建一个新命令。

答案 1 :(得分:0)

您可以使用getcmdpos()功能确定您是否在该行的开头或其他地方。这种技术可以replace a built-in command using an abbreviation或者您可以调整它以用于映射,可能使用<expr>映射。