首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Vim自动删除Python注释上的缩进

Vim自动删除Python注释上的缩进
EN

Stack Overflow用户
提问于 2010-03-02 09:01:29
回答 3查看 10.4K关注 0票数 77

我正在使用Vim和编辑Python脚本。

一般来说,自动缩进的效果很好,但是当我开始一个新行并键入“#”来输入注释时,Vim会为我取消该行的缩进。

例如,如果有

代码语言:javascript
复制
def foo():

然后按enter,Vim将正确缩进

代码语言:javascript
复制
def foo():
    pass

但是,如果不是键入pass,而是键入#,它将自动取消缩进

代码语言:javascript
复制
def foo():
# comment

class Thing():
    def __init__(self):
         pass
# comment line gets unindented all the way

下面是我的.vimrc文件。有人知道为什么会这样吗?

代码语言:javascript
复制
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
EN

回答 3

Stack Overflow用户

发布于 2010-03-02 09:28:20

虽然Micha的帖子解释了smartindent的作用,但你可以做得更好,而不仅仅是关闭它。你可以根据自己的喜好来配置它,或者更好的是,让ł为你选择更好的缩进。在你的vimrc中使用以下设置,而不是其他缩进设置:

代码语言:javascript
复制
filetype indent on

Vim将自动为python使用适当的缩进插件。这比不缩进#行要好得多--几乎所有的东西都应该适当地缩进。

票数 21
EN

Stack Overflow用户

发布于 2012-06-30 17:15:41

您只能对python文件尝试一个选项:

代码语言:javascript
复制
autocmd BufRead *.py inoremap # X<c-h>#<space>
票数 6
EN

Stack Overflow用户

发布于 2013-04-15 21:03:53

由于某种未知的原因,当我打开cindent时,导致了上述行为。把它关掉帮我修好了。上面的其他修复都没有帮助。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2360249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档