我在Linux Mint 12“Lisa”(x64)上使用Vim 7.3.154 cli。
我更喜欢使用2列的tabstop
和shiftwidth
。
我的.vimrc
有
:set ts=2
:set sw=2
实现同样的目标。
每当我打开一个新的Vim实例时,都会保留tabstop
值,因此会根据.vimrc
呈现现有选项卡。但不知何故,shiftwidth
值变为3.这会在自动缩进时产生3列缩进
在新的Vim实例上运行:set sw=2
可以解决此问题
谁能告诉我为什么Vim忽略/更改shiftwidth
的{{1}}值?
我尝试禁用所有插件无济于事。
答案 0 :(得分:4)
这个答案只是总结了我们在评论中讨论过的内容。 :)
这很可能是因为您启用了文件特定设置。检查:h modeline
以获取更多相关信息。确保您遇到问题的那些文件中没有这一行。
除了设置tabstop
和shiftwidth
之外,您还应该设置更多关于空白和标签的设置。
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
),仅此而已。
因此,您现在可以通过单击此答案左侧的绿色小箭头来接受此答案。 :)