我有一个基于简单键映射调用的函数
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-]>"