vimrc 如何调用unix find?
vimrc how to invoke unix find?
我想将标签变量设置为我使用 exuberant Ctags
在特定文件夹中生成的所有 gotags
文件的集合。 (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
文件的列表。
发明新语法在实践中往往效果不佳。使用 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)), ',')
我想将标签变量设置为我使用 exuberant Ctags
在特定文件夹中生成的所有 gotags
文件的集合。 (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
文件的列表。
发明新语法在实践中往往效果不佳。使用 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)), ',')