我用的是优秀的EasyTags vim 插件。我唯一的问题是 Exuberant CTags 不支持 Haskell。但是,有几个程序可以正确生成 Haskell vim 标签文件,并且我已经在 EasyTags 中使用了按文件类型标签文件选项。
有没有办法告诉 EasyTags 根据文件类型使用不同的 ctags 程序?我可以编写一个包装脚本并将其设置为全局 ctags 程序,但更喜欢更干净的解决方案。
我已经尝试过
:autocmd FileType haskell let g:easytags_cmd = '~/.cabal/bin/lushtags'
但是 EasyTags 似乎尝试查询 ctags 程序以获取支持的语言列表,因此当我打开启用此选项的 Haskell 文件时,会收到错误。
"Data/Csv/Conduit.hs" [RO] 51L, 1950C
Error detected while processing function xolox#easytags#register..xolox#easytags#get_tagsfi
le..xolox#easytags#supported_filetypes..34_check_filetype:
line 3:
E605: Exception not caught: Failed to get supported languages! (output: Usage: lushtags [op
tions] [--] )
Error detected while processing function xolox#easytags#register..xolox#easytags#get_tagsfi
le..xolox#easytags#supported_filetypes:
line 14:
E171: Missing :endif
Error detected while processing function xolox#easytags#register..xolox#easytags#get_tagsfi
最佳答案
这里的 EasyTags 用户 friend ,我也一直想要这个功能(对于 jsctags
)。我已经实现了 patch允许为特定语言配置单独的可执行文件。
在合并之前(不幸的是,过去几个月没有任何事件),您可以使用 my fork 。配置将是这样的:
let g:easytags_languages = {
\ 'haskell': {
\ 'cmd': '~/.cabal/bin/lushtags',
\ 'args': [],
\ 'fileoutput_opt': '-f',
\ 'stdout_opt': '-f-',
\ 'recurse_flag': '-R'
\ }
\}
关于vim EasyTags,每个文件类型标签命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15256893/