2014-02-18 38 views
1

我正在尝试为我的C++项目使用google.vimand on vim.org)缩进样式,但似乎无法加载它。我使用vundle安装了google.vim并打开了一个cpp文件,并注意到我的tabstops,shiftwidths等没有改变。如果您设置全局ts和sw参数,它们是不是被覆盖?在vim中编辑文件时,你如何强制一定的缩进?编辑cpp文件时,我希望我的vimrc文件中的所有内容都被google.vim文件覆盖。在Vim中加载google.vim缩进文件

运行Vim的:filetype命令揭示了这样的信息:

 detection:ON plugin:ON indent:ON 

底线是,我不知道如何告诉Vim用我的位于在〜/ vim的/ vundle google.vim文件/google.vim/indent/google.vim。从我读过的内容来看,vim会检测当前文件的文件类型,并使用相应的.vim文件进行语法和缩进。那么我会不得不将我的google.vim文件重命名为cpp.vim?

在大多数情况下,我喜欢使用3的tabstop和3的shiftwidth,所以我将它们设置在我的.vimrc文件中。但是,当我编辑cpp文件时,我希望将所有设置从全局设置更改为google.vim文件设置的内容。

+0

我得到一个错误信息,如果我进入你的高亮线。有关正确的语法,请参阅':help:filetype-overview':你想':filetype plugin indent on'。将此行添加到vimrc文件并安装后,需要(1)重新启动vim和(2)编辑C++文件。如果您需要进一步的帮助,请包含一个指向google.vim插件的链接。 – benjifisher

+0

对不起,我包含的行并不打算运行,我只是简单地显示':filtype'的输出是为了清楚我已经检测到文件。总之,到github google.vim项目的链接在这里:https://github.com/vim-scripts/google.vim。我只想用上面.vim文件中的设置覆盖当前的设置。对于我的大多数文件,我使用tabstop和3,但谷歌缩进使用2的tabstop和shiftwidth(当然还有很多其他的东西)。我只是不明白如何“打开”谷歌。 vim indent file ..或任何.vim缩进文件 – user985030

+0

您是否在我的第一条评论中描述了步骤(1)和(2)? – benjifisher

回答

3

您必须将文件从google.vim重命名为cpp.vim,如the description of the plugin on vim.org中所示。

一般的解释:

添加filetype plugin indent on~/.vimrc使得Vim检测到您编辑的文件(通常根据文件扩展)和源特定文件类型插件和缩进脚本的文件类型。

的想法很简单:您编辑文件与文件类型{{LANGUAGE}}和Vim试图来源的任何ftplugin/{{LANGUAGE}}.vimindent/{{LANGUAGE}}.vim找到你runtimepath

因为你的文件的文件类型为cpp,Vim会幸福忽略你的google.vim缩进脚本,所以......你必须将其重命名为cpp.vim为它工作。

或者你可以重新命名所有的C++文件foobar.google和教Vim识别*.google文件,但是,嗯......不健全的权利;-)

+1

谢谢,这个答案是非常有帮助的。将google.vim重命名为cpp.vim是需要完成的。此外,vundle在安装google.vim插件时没有正确管理'runtimepath'。该路径显示它正在查看〜。/ vim/bundle/google。vim/after之后,实际上没有'after'目录只是一个'indent'目录。所以通过重命名文件并添加正确的运行时路径,我可以使用google.vim缩进文件。我想我应该让Vundle在安装额外的vim脚本时并不总是关心我的一切。 – user985030

+0

对于每个人来说,这应该是一个教训,我想。 – romainl