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