Vim忽略.vimrc中指定的shiftwidth

时间:2013-01-05 16:25:49

标签: vim

我在Linux Mint 12“Lisa”(x64)上使用Vim 7.3.154 cli。

我更喜欢使用2列的tabstopshiftwidth。 我的.vimrc:set ts=2
:set sw=2
实现同样的目标。

每当我打开一个新的Vim实例时,都会保留tabstop值,因此会根据.vimrc呈现现有选项卡。但不知何故,shiftwidth值变为3.这会在自动缩进时产生3列缩进 在新的Vim实例上运行:set sw=2可以解决此问题 谁能告诉我为什么Vim忽略/更改shiftwidth的{​​{1}}值?

我尝试禁用所有插件无济于事。

Vim compiled options | .vimrc

1 个答案:

答案 0 :(得分:4)

这个答案只是总结了我们在评论中讨论过的内容。 :)

这很可能是因为您启用了文件特定设置。检查:h modeline以获取更多相关信息。确保您遇到问题的那些文件中没有这一行。


除了设置tabstopshiftwidth之外,您还应该设置更多关于空白和标签的设置。

set noexpandtab " Make sure that every file uses real tabs, not spaces
set shiftround  " Round indent to multiple of 'shiftwidth'
set smartindent " Do smart indenting when starting a new line
set autoindent  " Copy indent from current line, over to the new line

" Set the tab width
let s:tabwidth=4
exec 'set tabstop='    .s:tabwidth
exec 'set shiftwidth=' .s:tabwidth
exec 'set softtabstop='.s:tabwidth

观看此视频,了解更多信息:http://vimcasts.org/episodes/tabs-and-spaces/


因此,这是您能够解决的实际问题的答案。该php.php文件位于/plugin目录中。每次Vim启动时,该目录都会被加载一次。检查一下:http://learnvimscriptthehardway.stevelosh.com/chapters/42.html#vimplugin

如果您想要的是仅在PHP文件上加载的文件,那么您应该将其放在/ftplugin文件夹中:http://learnvimscriptthehardway.stevelosh.com/chapters/42.html#vimftplugin

阅读那里的文档,它应该是.vim文件,换句话说,在这种情况下,它将被称为php.vim

Pathogen或Vundle做的是修改运行时路径(:h runtimepath),仅此而已。

因此,您现在可以通过单击此答案左侧的绿色小箭头来接受此答案。 :)