如何在vimscript中为ctags创建别名

Tor*_*ups 1 vim

我有一个基于简单键映射调用的函数

function! JumpToDefinition()
    let filetype=&ft
    if filetype == 'coffee'
        exe '<C-]>'
    endif
endfunction
Run Code Online (Sandbox Code Playgroud)

当我手动执行此操作<C-]>时,但当我尝试"exe"它上面时,我得到一个"尾随空格"错误.

如何在我上面的独立函数中调用它?

sid*_*yll 5

请注意,:execute 将结果表达式作为Ex命令运行,这可能不是您想要的,因为没有 <C-]>Ex命令.你应该使用:normal.

但是,为了能够使用这些"特殊键"而不是它们所代表的字符,你必须注意三件事:

  1. 表示它们的正确方法是使用反斜杠\<xxx>.检查帮助expr-string.
  2. 使用双引号,而不是单引号
  3. :normal 接受命令,而不是表达式 :execute

因此,从上面的第1和第2项我们知道"\<C-]>"应该使用,但你不能把它放在前面 :normal.好吧,你可以,但它会被执行为"引用,反斜杠,C,......".解决方案是回到使用 :execute,这次构建"\<xxx>"前面有可见字符串的字符串:normal,它将扩展为实际字符并执行.

:exe "norm \<C-]>"
Run Code Online (Sandbox Code Playgroud)