我有一个基于简单键映射调用的函数
function! JumpToDefinition()
let filetype=&ft
if filetype == 'coffee'
exe '<C-]>'
endif
endfunction
这在我手动执行时有效,<C-]>
但是当我尝试在上面“执行”它时,我得到一个“尾随空格”错误。
如何像上面那样在独立函数中调用它?
我有一个基于简单键映射调用的函数
function! JumpToDefinition()
let filetype=&ft
if filetype == 'coffee'
exe '<C-]>'
endif
endfunction
这在我手动执行时有效,<C-]>
但是当我尝试在上面“执行”它时,我得到一个“尾随空格”错误。
如何像上面那样在独立函数中调用它?
请注意,:execute
将生成的表达式作为 Ex 命令运行,这可能不是您想要的,因为没有 <C-]>
Ex 命令。你应该使用:normal
.
但是,要能够使用这些“特殊键”,而不是它们所代表的字符,您必须注意三件事:
\<xxx>
。检查帮助expr-string
。:normal
接受命令,而不是像:execute
因此,从上面的第 1 项和第 2 项我们知道"\<C-]>"
应该使用 ,但您不能将其放在 :normal
. 好吧,你可以,但它会被执行为“引号、反斜杠、C、...”。解决方案是回到 using
:execute
,这次构建带有可见"\<xxx>"
前面的字符串:normal
,将扩展为实际字符并执行。
:exe "norm \<C-]>"