当前位置: 首页 > 面试题库 >

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

宗政松
2023-03-14
问题内容

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

通常,自动缩进效果很好,但是当我开始换行并输入’#’来输入注释时,Vim会为我取消缩进。

例如,如果有

def foo():

然后按回车,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

问题答案:

设置smartindent使Vim表现得像您为我描述的那样,而使用nosmartindent(这就是我倾向于使用的)Vim表现得像您希望的那样。

更新:来自的文档smartindent

当在新行的第一个字符中键入“#”时,该行的缩进将被删除,“#”将被放置在第一列中。缩进将还原到下一行。如果不希望这样,请使用以下映射:“:inoremap#X
^ H#”,其中使用CTRL-V CTRL-H输入^ H。使用“ >>”命令时,以“#”开头的行不会右移。

好像就是这样。

更新:可能无需理会以下内容…我将其保留在此处以获取更多的信息价值。;-)

如果设置nosmartindent没有帮助,也许您可​​以使用:set不带参数的命令来获取Vim会话中所有有效设置的列表,然后将其粘贴到某个位置(也许在Pastie上)。据我所知,还有其他一些选项会影响自动缩进。



 类似资料:
  • 问题内容: 当使用注释使Java代码缩进时,vim坚持这样缩进: 我希望注释与方法定义在同一列中,但似乎无法找到一种告诉vim做到这一点的方法,除了可能使用缩进表达式外,但我不确定是否可以将其与经常碰碰碰。 编辑:文件类型插件已经打开,我对缩进插件有点困惑。接受的答案可能有点破烂,但对我也有用。 问题答案: 编辑:我不能删除自己的答案,因为它已经被接受,但是@pydave的答案似乎是更好(更可靠)

  • 使用 Vim 编辑 Shell 脚本,在进行调试时,需要进行多行的注释,每次都要先切换到输入模式,在行首输入注释符"#"再退回命令模式,非常麻烦。 连续行的注释其实可以用替换命令来完成。换句话说,在指定范围行加"#"注释,可以使用 ":起始行,终止行 s/^/#/g",例如: :1,10s/^/#/g 表示在第 1~10 行行首加"#"注释。"^"意为行首;"g"表示执行替换时不询问确认。如果希望

  • 问题内容: “ SQL语句缩进最佳实践”似乎是编写SQL块的公认格式。 是否有一个符合该标准的Vim缩进/语法文件,或者至少是紧密文件? 目前,我的Vim几乎保留了所有内容,仅缩进了某些关键字。 问题答案: “ SQLUtilities:SQL实用程序-格式化,生成- 列列表,数据库过程 ”具有SQL Utilities插件,该插件具有功能。与“如何在Vim中自动格式化和自动大写SQL ”是一个相

  • 问题内容: 从PHP文件中删除注释的最佳方法是什么? 我想做一些与strip-whitespace()类似的事情-但它也不应该删除换行符。 例如: 我要这个: 成为: (尽管如果在删除注释的地方仍然留有空行,那是不可能的)。 由于可能需要保留嵌入式html,因此这可能是不可能的-那是什么导致了google上出现的问题。 问题答案: 我会使用tokenizer。这是我的解决方案。它应该在PHP 4和

  • 问题内容: 是否有任何工具/ Eclipse插件可以删除文件中的所有JavaDoc注释? 运行该工具后, 普通 (非JavaDoc)注释 应完整无缺 。 问题答案: 尝试使用此正则表达式在eclipse / sed /您最喜欢的具有正则表达式支持的编辑器中搜索替换。 将输入视为单行 起始字符串 零或更多 负面的展望 空格或非空格字符 尾随字符串 编辑 要解决字符串包含javadoc的情况,请使用此

  • 有没有办法从一个巨大的xml文件中删除注释( 两者,根元素前的注释 和内的注释 最好的解决方案是使用xPath。我试过了 它适用于DOM,但不适用于vtd xml 这是我选择评论的代码 但此处的屏幕上打印的是nothing。 有没有办法用vtd xml做到这一点? 谢谢你的帮助。