Vim加载缓冲区取决于文件类型

时间:2014-02-07 17:29:04

标签: vim

我正在将vim用于很多语言,我希望改进ctrl + p/n自动完成功能。当我要使用特定的一个时,我在缓冲区中加载一个文件,其中包含我正在使用的语言特定函数的子项:

:badd perl.txt

这会将该文件中的函数加载到auto-complete buffer 我使用的每种语言都有一个.txt个文件。我希望通过根据文件类型加载特定缓冲区来自动执行此过程。我试过搜索,但云找不到一个好的答案。我唯一的领导是我可能需要使用filetype plugins以为不确定如何。如果解决方案只是在rc文件中,那么奖励积分(虽然不重要)(因为这样很容易设置新的工作场所)

一种可能的解决方案:

autocmd BufNewFile,BufRead *`<extention>` badd `<dir to file>`

示例:

autocmd BufNewFile,BufRead *pl badd /home/vim_autocomplete/perl.txt

1 个答案:

答案 0 :(得分:3)

要回答你提出的问题,我认为

:au FileType * badd path/to/<amatch>.txt

(未经测试)将起作用。我不会使用:badd,而是修改'complete'选项:

:au FileType * setl complete+=k/path/to/<amatch>.txt

无论哪种方式,您都可以将命令包装在测试中:

:au FileType * if filereadable("path/to/<amatch>.txt") | ... | endif

(同样未经测试)。当然,如果你想要一个自动命令,那么(无论你使用哪种方法),你都必须在文件类型之后命名文件。

:help :au
:help FileType
:help <amatch>
:help 'complete'