如何正确设置 Vim 自动缩进以编辑 Python 文件?
Posted
技术标签:
【中文标题】如何正确设置 Vim 自动缩进以编辑 Python 文件?【英文标题】:How do I set up Vim autoindentation properly for editing Python files? 【发布时间】:2010-09-09 01:38:15 【问题描述】:我在设置 Vim (7.1.xxx) 以编辑 Python 文件 (*.py) 时遇到问题。 缩进似乎被破坏了(最佳 4 个空格)。 我遵循了一些通过 Google 找到的教程。仍然没有效果:/ 请帮忙。
【问题讨论】:
您的问题到底是什么?缩进是怎么破的? 您使用的是什么平台? Windows/Mac/Linux? 将此添加到 .vimrcfiletype plugin indent on
【参考方案1】:
我在我的 macbook 上使用它:
" configure expanding of tabs for various file types
au BufRead,BufNewFile *.py set expandtab
au BufRead,BufNewFile *.c set expandtab
au BufRead,BufNewFile *.h set expandtab
au BufRead,BufNewFile Makefile* set noexpandtab
" --------------------------------------------------------------------------------
" configure editor with tabs and nice stuff...
" --------------------------------------------------------------------------------
set expandtab " enter spaces when tab is pressed
set textwidth=120 " break lines when line length increases
set tabstop=4 " use 4 spaces to represent tab
set softtabstop=4
set shiftwidth=4 " number of spaces to use for auto indent
set autoindent " copy indent from current line when starting a new line
" make backspaces more powerfull
set backspace=indent,eol,start
set ruler " show line and column number
syntax on " syntax highlighting
set showcmd " show (partial) command in status line
(编辑为仅显示与缩进/制表符相关的内容)
【讨论】:
在编辑 C 风格语言时不要使用制表符。 s/noexpandtab/expandtab @AlexKreimer 你可能是对的——我在 2008 年写了这篇文章——那是 很久 以前的事了。我很想更新它,但我已经不再使用 vim 来处理大多数东西了。当您找到更好的解决方案时,请务必返回此处并发布指向更好答案的链接(或自己写一个)! @DarenThomas IMO,一个非常过时的答案【参考方案2】:我用:
$ cat ~/.vimrc
syntax on
set showmatch
set ts=4
set sts=4
set sw=4
set autoindent
set smartindent
set smarttab
set expandtab
set number
但是我要去试试达人的条目
【讨论】:
请注意,smartindent
仅适用于编辑 C 文件,而不适用于 Python 文件(无论如何现在已弃用;请参阅 ***.com/a/234578/37639)。【参考方案3】:
一个更简单的选项:只需在 /etc/vim/vimrc 文件中取消注释以下配置部分(最初被注释掉):
if has("autocmd")
filetype plugin indent on
endif
【讨论】:
【参考方案4】:我在 python 存储库中使用 vimrc 等:
http://svn.python.org/projects/python/trunk/Misc/Vim/vimrc
我也加了
set softtabstop=4
I have my old config here that I'm updating
【讨论】:
【参考方案5】:确保您正在为 VIM 编辑正确的配置文件。特别是如果您使用的是 windows,文件可以命名为 _vimrc 而不是 .vimrc,就像在其他平台上一样。
在vim类型中
:help vimrc
并检查您的 _vimrc/.vimrc 文件的路径
:echo $HOME
:echo $VIM
确保您只使用一个文件。如果你想将你的配置拆分成更小的块,你可以从你的 _vimrc 文件中获取其他文件。
:help source
【讨论】:
【参考方案6】:结合 Daren 和 Thanos 提出的解决方案,我们有一个很好的 .vimrc 文件。
-----
" configure expanding of tabs for various file types
au BufRead,BufNewFile *.py set expandtab
au BufRead,BufNewFile *.c set noexpandtab
au BufRead,BufNewFile *.h set noexpandtab
au BufRead,BufNewFile Makefile* set noexpandtab
" --------------------------------------------------------------------------------
" configure editor with tabs and nice stuff...
" --------------------------------------------------------------------------------
set expandtab " enter spaces when tab is pressed
set textwidth=120 " break lines when line length increases
set tabstop=4 " use 4 spaces to represent tab
set softtabstop=4
set shiftwidth=4 " number of spaces to use for auto indent
set autoindent " copy indent from current line when starting a new line
set smartindent
set smarttab
set expandtab
set number
" make backspaces more powerfull
set backspace=indent,eol,start
set ruler " show line and column number
syntax on " syntax highlighting
set showcmd " show (partial) command in status line
【讨论】:
【参考方案7】:如需更高级的 python 编辑,请考虑安装simplefold vim 插件。它允许您使用正则表达式进行高级代码折叠。我用它来折叠我的类和方法定义以便更快地编辑。
【讨论】:
以上是关于如何正确设置 Vim 自动缩进以编辑 Python 文件?的主要内容,如果未能解决你的问题,请参考以下文章