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