我正在使用Vim和编辑Python脚本。
一般来说,自动缩进的效果很好,但是当我开始一个新行并键入“#”来输入注释时,Vim会为我取消该行的缩进。
例如,如果有
def foo():
然后按enter,Vim将正确缩进
def foo():
pass
但是,如果不是键入pass
,而是键入#
,它将自动取消缩进
def foo():
# comment
class Thing():
def __init__(self):
pass
# comment line gets unindented all the way
下面是我的.vimrc文件。有人知道为什么会这样吗?
set tabstop=4
set smartindent
set shiftwidth=4
set expandtab
set backspace=indent,eol,start
set scrolloff=3
set statusline=%f%m%r%h%w\ [%Y\ %{&ff}]\ [%l/%L\ (%p%%)]
set laststatus=2
发布于 2010-03-02 09:28:20
虽然Micha的帖子解释了smartindent的作用,但你可以做得更好,而不仅仅是关闭它。你可以根据自己的喜好来配置它,或者更好的是,让ł为你选择更好的缩进。在你的vimrc中使用以下设置,而不是其他缩进设置:
filetype indent on
Vim将自动为python使用适当的缩进插件。这比不缩进#行要好得多--几乎所有的东西都应该适当地缩进。
发布于 2012-06-30 17:15:41
您只能对python文件尝试一个选项:
autocmd BufRead *.py inoremap # X<c-h>#<space>
发布于 2013-04-15 21:03:53
由于某种未知的原因,当我打开cindent
时,导致了上述行为。把它关掉帮我修好了。上面的其他修复都没有帮助。
https://stackoverflow.com/questions/2360249
复制相似问题