当我编辑一个Python文件时,例如:
我发现这是由于
但是在Vim的帮助文档中,在
def my_func():
print('Something')
<-- CURSOR IS HERE
当我想要通过键入#
添加注释时,该行会自动重新缩进到行的开头:
def my_func():
print('Something')
#<-- CURSOR IS HERE
我发现这是由于
smartindent
选项的影响,所以要解决这个问题,我只需要运行:set nosi
(或在我的.vimrc文件中禁用它)。但是在Vim的帮助文档中,在
:h 'smartindent'
中,你可以读到以下内容:
但我的当启用'cindent'或设置了'indentexpr'时,设置'si'无效。
indentexpr
选项被设置为以下内容::set indentexpr?
indentexpr=GetPythonIndent(v:lnum)
我应该避免使用smartindent
选项,因为它似乎是一个旧的功能,并且仅适用于 C 风格的语言;
但是当我编辑 Python 文件时,我想知道为什么smartindent
会产生一些效果,考虑到帮助文档中写的是什么?
smartindent
并设置indentexpr=GetPythonIndent(v:lnum)
时,它表现正常,不会出现您所描述的情况。可能是某个插件正在覆盖或存在冲突的设置。 - Atrismartindent
的问题。我刚刚写了:set nosi
解决了这个问题,但我的问题是关于Vim帮助文档的内容,它与实际行为不符。 - yolenoyer