我想将tags变量设置为使用gotags
在特定文件夹中生成的所有exuberant Ctags
文件的集合。 (gotags
只是重命名的tags
文件。
我在.vimrc
文件中添加了以下行。
set tags+=/usr/local/go/src/gotags
set tags+=`find /home/vimal/gowork/src -name gotags`
但它不起作用,我得到以下错误
$ vi ~/.vimrc
Error detected while processing /home/vimal/.vimrc:
line 157:
E518: Unknown option: /home/vimal/gowork/src
Press ENTER or type command to continue
如何修复错误并将tags
变量设置为一个目录树下所有gotags
文件的值:列表。
答案 0 :(得分:2)
发明新语法在实践中往往效果不佳。使用system()
从Vim运行外部命令,而不是反引号。 Vim中的set
也很奇怪,它并不像您期望的那样评估RHS。大多数情况下使用let &option = ...
代替set option=...
要简单得多。
无论如何,要回答你的问题,你不需要为此运行find(1)
,普通的Vim功能足以满足你的需求:
let &tags = join(extend([&tags, '/usr/local/go/src/gotags'],
\ findfile('gotags', '/home/vimal/gowork/src', -1)), ',')