如何在vimscript中为ctags创建别名

时间:2013-05-08 14:00:17

标签: vim

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

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

当我手动执行<C-]>时,这会有效,但当我尝试“exe”它时,我会收到“尾随空白”错误。

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

1 个答案:

答案 0 :(得分:5)

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

但是,能够使用这些“特殊键”,而不是字符 他们代表,你必须注意三件事:

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

    所以,从上面的第1和第2项我们知道应该使用"\<C-]>",但是你 不能把它放在:normal前面。嗯,你可以,但那样就可以了 执行为“引用,反斜杠,C,......”。解决方案是回归使用 :execute,这次是在前面构建带有可见"\<xxx>"的字符串 :normal的{​​{1}},将扩展为实际角色并执行。

    :exe "norm \<C-]>"