Vim的Python代码缩进错误(使用Python模式插件)

Vim的Python代码缩进错误(使用Python模式插件),python,vim,python-mode,Python,Vim,Python Mode,如下面的屏幕显示,我演示了Vim在向Python代码添加注释时的奇怪行为。在演示1和演示2之间,我只是在不同的缩进级别(在类定义中)开始注释行 演示1 演示2 问题是: 如屏幕播放结束时所示,只有在插入模式下键入:才能正确缩进 理想的解决方案将实现: 在开始一行注释时,请正确保留缩进级别 这听起来像是vim设置问题。从vanilla vim开始,当我创建新行时,每行上都没有缩进。如果我在我的home目录中创建一个名为.vimrc的文件。i、 e.~/.vimrc并将 文件类型缩进插件打开 在

如下面的屏幕显示,我演示了Vim在向Python代码添加注释时的奇怪行为。在演示1和演示2之间,我只是在不同的缩进级别(在类定义中)开始注释行

演示1

演示2

问题是: 如屏幕播放结束时所示,只有在插入模式下键入
才能正确缩进

理想的解决方案将实现:
在开始一行注释时,请正确保留缩进级别

这听起来像是vim设置问题。从vanilla vim开始,当我创建新行时,每行上都没有缩进。如果我在我的
home
目录中创建一个名为
.vimrc
的文件。i、 e.
~/.vimrc
并将

文件类型缩进插件打开

在文件中,我得到了预期的缩进行为。这对你有用吗

我的解决方案 我把下面这句话注释掉了,一切都很顺利。没有对评论作进一步奇怪的更正。

智能对齐

我的Vim的其他信息: 为便于缩进,以下是设置:

filetype plugin on
filetype indent on
set autoindent
另外,已经验证了
python模式
没有故障。无论使用
python模式
还是不使用,
set smartindent
总是让我遇到问题

暂定结论:
set smartindent
可能无法正常工作,我的折叠方法指定如下。此类设置位于
C:/vim/vimfiles/ftplugin/python.vim

setlocal formatoptions=crnqj
下面是所用字符的对应关系,但似乎没有一个是问题

  • c
    :使用textwidth自动换行注释,自动插入当前注释的前导

  • r
    :在插入模式下点击
    后,自动插入当前注释标题

  • n
    :格式化文本时,识别编号列表。这实际上使用 “formatlistpat”选项,因此可以使用任何类型的列表。这个 数字后的文本缩进用于下一行。这个 默认值是查找一个数字,可以选择后跟“.”、“:”、“)”, “]”或“}”。请注意,还必须设置“自动缩进”。不起作用 与“2”一起使用。 例如:

  • q
    :允许使用“gq”格式化注释。 请注意,格式设置不会更改空行或包含 只有评论负责人。在这样一行之后开始一个新段落, 或者当注释引线更改时

  • j
    :如果有意义,请在连接行时删除注释引线

参考更好的框架+答案解决方案
  • 直接回答:
  • 其他引用参考文献:

简言之,我在编辑Python脚本时观察到的并不仅仅是“Python文件类型”。它与符号“hash”有关

请给我看看你的vimrc。尤其是indentkeys、indentexpr、已安装插件、@mattn,由于
set smartindent
,这似乎更像是一个不兼容的问题?我不再有上述问题后,简单地删除这样的设置。啊,似乎smartindent受影响。如果您不记得设置了该选项,可以使用
:verbose set smartindent
确认设置的位置。如果您可以使用
autocmd filetype python setlocal nosmartident对filetype=python禁用它,那么我同意这是一个副本。我可以删除这个问题吗?@dlmeetei
1. the first item
   wraps
2. the second item