VIM TABSTOP设置未生效



更新:使用Ingo Karkat的故障排除发现了一个解决方案,我能够确定通过以下方面的设置被覆盖的位置:冗长的SW?sts?由此,我能够使用自己的设置创建文件~/.vim/after/ftplugin/python.vim。最终,重新启动的VIM使更改生效,因为我:源〜/.vimrc努力不足以加载这些更改。在Hinsight中,这可能是因为我的新设置不在VIMRC中。无论哪种方式,公认的答案都是最终解决了我所遇到的问题,生活可以按照广告的广告继续。

我是一个新的VIM用户,并且正在努力了解TabStops和SoftTabStop的工作方式。我已经做了一些阅读,并决定我的设置如下

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

我希望在哪里可以将选项卡为2个空间,但是当我将它们添加到我的vimrc并资源时,.vimrc在我的python文件中进行gg = g不应用我期望的更改,而是将4个空间放在我的凹痕上。如果我输入插入模式,我还将获得4个空间缩进。我是否无法将这些固定?我以前有

autocmd FileType python set sw=4
autocmd FileType python set ts=4
autocmd FileType python set sts=4

我认为,即使将其删除并重新加载了VIMRC,也许该设置仍在系统中。我尝试添加

autocmd FileType python sw=2 sts=2 ts=2 et

但是,这无法纠正我获得4个空间与2的问题。我缺少什么?插件可能会覆盖这个吗?我看着/语法,但是那里只有一个html.vim。我有一些插件:vundle,youcompleteme,taglist,ultisnips,语句,vim-surround

不确定其中的任何一个是否可能是原因或如何进一步解决问题。希望VIM神能来这里来救援。

vim可以告诉您这些设置是最后设置的位置:

:verbose setlocal ts? sts? et? sw?

您的全局设置很可能被$VIMRUNTIME/ftplugin/python.vim覆盖。这具有以下代码(在最新的VIM 8.0中(:

if !exists("g:python_recommended_style") || g:python_recommended_style != 0
    " As suggested by PEP8.
    setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
endif

您可以看到, :let g:python_recommended_style = 0(例如,在~/.vimrc中(可以禁用设置。由于许多用户抱怨预设,因此可能引入了这种有条件的后卫。通常,Filetype插件没有此类插件,但是您可以随时通过中的中的脚本覆盖设置

:setlocal ts=...命令放入~/.vim/after/ftplugin/python.vim中。另外,您可以在~/.vimrc中直接定义:autocmd FileType python ...,但是一旦拥有许多自定义,这会变得笨拙。正如您提到的那样,:autocmd不适合您,可能会有其他自定义(:verbose setlocal应该告诉您(。在这种情况下,您需要找到一个特殊的解决方案,具体取决于涉及的插件。

最新更新