如何在vim中关闭双缩进?

如何在vim中关闭双缩进?,vim,Vim,我正在编写python、javascript、html和其他配置文件,我意识到当我在未完成的行中输入换行符(即未终止的字符串,仍在字典括号内等)时,我会得到双缩进 如何修复此问题?Python 可以在.vimrc文件中设置几个变量来影响Python缩进的方式: 在开括号后缩进:g:pyindent\u open\u paren='&sw*2' 嵌套括号后缩进:g:pyindent\u nested\u paren='&sw' 连续行的缩进:让g:pyindent_continue='&sw*2'

我正在编写python、javascript、html和其他配置文件,我意识到当我在未完成的行中输入换行符(即未终止的字符串,仍在字典括号内等)时,我会得到双缩进

如何修复此问题?

Python 可以在
.vimrc
文件中设置几个变量来影响Python缩进的方式:

在开括号后缩进:
g:pyindent\u open\u paren='&sw*2'

嵌套括号后缩进:
g:pyindent\u nested\u paren='&sw'

连续行的缩进:
让g:pyindent_continue='&sw*2'

有关详细信息:
:帮助ft python缩进

Javascript 请参见
$VIMRUNTIME/indent/javascript.vim
:它使用
cindent
执行缩进
cindent
通过
cinoptions
变量受多个选项的影响。其中一些默认设置为
&shiftwidth*2
,您可能需要重置它们

您案例的相关选项似乎是
+N
。在
.vimrc
文件中,您应该放置如下内容:

set cinoptions+=+1
尽管这似乎已经是默认值

Html 再次请参见
$VIMRUNTIME/indent/html.vim
:它通过自定义表达式执行缩进。我快速看了一下,它似乎没有在任何地方执行任何双缩进,但我可能错了。这方面可用的全局变量似乎并不相关

在最坏的情况下,您可能希望自己修改该文件并将其放入
~/.vim/indent/

其他文件
一般来说,每个文件都是根据自己的标准缩进的,请查看
$VIMRUNTIME/indent/
,了解是否可以以及如何配置每个文件。

是否确实缩进了两次?可能只是您的
shiftwidth
值是缩进长度的两倍。首先确保将您的
shiftwidth
值设置为与缩进长度相同的值。

双缩进是什么意思?@muhmuhten如果将
shiftwidth
设置为4,则会得到8个空格。它是在python.vimok中定义的,那么JS文件呢?帮助部分考虑了哪些选项(没有特定于JS文件的选项,所以我不知道选择哪一个)