检查VIM中的变量位置?或者如何设置shfitwidth?

时间:2014-04-02 20:27:39

标签: vim vim-plugin

这不是一个非常简单的问题。

我发现python文件的“shiftwidth”设置为4,而我在.vimrc的底部有这些:

set tabstop=2                                                               
set shiftwidth=2                                                               
set softtabstop=2                                                              
set expandtab 

所有其他文件类型的shiftwidth为2;但它仅适用于python。

我想知道是否可以看到变量(在我的情况下,shiftwidth)的位置已经改变;如果这个变量被改变的可能位置是不可能的话。有没有办法让shiftwidth = 2普遍......甚至对于python文件? (虽然它也建议使用4个空格用于python,但我个人更喜欢2)

2 个答案:

答案 0 :(得分:5)

:verbose set shiftwidth

告诉您当前值和定义的位置。请参阅:help :verbose

文件类型插件是在触发相应的FileType事件后获取的,因此它们会覆盖vimrc中的选项。


在配置中添加特定于文件类型的设置的简单方法是向vimrc添加类似的内容:

augroup Python
    autocmd!
    autocmd fileType python setlocal tabstop=2 shiftwidth=2 softtabstop=2 expandtab
augroup END

请参阅:help :autocmd


干净的方法是将您想要的设置放入自定义ftplugin

文件:

~/.vim/after/ftplugin/python.vim

其内容:

setlocal tabstop=2
setlocal shiftwidth=2
setlocal softtabstop=2
setlocal expandtab

请注意使用setlocal代替set,因为您不希望在任何地方应用这些设置。

答案 1 :(得分:1)

这可能是由Python的内置ftplugin文件设置的。如果你

:e $VIMRUNTIME/ftplugin/python.vim

并搜索shiftwidth,您可能会发现它设置为4