vimrc如何调用unix查找?

时间:2017-02-20 08:55:50

标签: vim exuberant-ctags

我想将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文件的值:列表。

1 个答案:

答案 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)), ',')