Vim缩进与python变得奇怪
Posted
技术标签:
【中文标题】Vim缩进与python变得奇怪【英文标题】:Vim indentation with python getting wierd 【发布时间】:2016-08-15 10:54:28 【问题描述】:def main():
todo=TODO()#this line shows one tab one sublime text
print("The indentation is not right")# THIS ONE SHOWS TWO TABS
我遇到了一个奇怪的问题,我不能再使用 vim 来编辑我的 python 文件了。上面的缩进和我的一样,但是我说缩进是错误的。顺便说一句,正确的第一行是由另一台计算机编辑的。我的操作系统使用 Fedora 23,vim 的默认选项卡在任何其他文件上是 8 个空格,只需要一个退格键即可删除,当我创建 .py 文件时,选项卡变为 4 个空格,需要退格 4 次 现在我不能用我的 vim 来编辑文件了。
【问题讨论】:
你能提供更多关于你的情况的细节吗?你能提供以下输出吗?:set tabstop
,:set shiftwidth
,set softtabstop
你还在为 python 使用任何插件吗?像python-mode
或pyflakes
之类的?
@sudobangbang 我刚刚检查了一下,当我创建.py以外的文件时,所有这三个输出都是=8,但是当它是.py文件时它们=4,我的.vimrc没有改变这个
【参考方案1】:
如果您想使用 8 个空格宽的制表符,并且每个缩进级别一个制表符,请使用
:set tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab
或将其放入您的.vimrc
set tabstop=8
set softtabstop=8
set shiftwidth=8
set noexpandtab
要专门为 python 设置此首选项,请将其放入您的 vimrc
autocmd Filetype python setlocal ts=8 sts=8 sw=8
或
autocmd FileType python set tabstop=8|set shiftwidth=2|set expandtab
更多信息请阅读secrets of tabs in vim和indenting source code (vim wiki)
你也可以在旧的 vim 文档中了解它
:help tabstop
:help softtabstop
【讨论】:
这在 vim 中确实有效,但是当我在 .vimrc 中编写这些时,它不起作用。为什么只有 .py 有这个问题 你在使用任何用于 python 的 vim 插件吗? ***.com/questions/158968/… setroubleshoot (1.1) setuptools (18.0.1) 六 (1.9.0) slip (0.6.4)slip.dbus (0.6.4)sosreport (3.2.0a1)SSSDConfig (1.13.3) urllib3 (1.13.1)yumex-dnf (4.1.3) 不,@C.Qian 我说的是 vim 插件或脚本。您是否尝试过我添加到问题中的命令? ` autocmd 文件类型 python setlocal ts=8 sts=8 sw=8`?以上是关于Vim缩进与python变得奇怪的主要内容,如果未能解决你的问题,请参考以下文章