如何在vim中关闭双缩进?

asd*_*dca 13 vim

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

我该如何解决?

Unc*_*eiv 20

蟒蛇

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

在左括号后缩进: let g:pyindent_open_paren = '&sw * 2'

嵌套括号后缩进: let g:pyindent_nested_paren = '&sw'

缩进续行: let g:pyindent_continue = '&sw * 2'

欲了解更多信息: :help ft-python-indent

使用Javascript

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

您的案例的相关选项似乎是+N.在您的.vimrc文件中,您应该输入以下内容:

set cinoptions+=+1
Run Code Online (Sandbox Code Playgroud)

即使这似乎已经是默认值.

HTML

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

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

其他文件

通常,每个文件都根据自己的标准缩进,查看$VIMRUNTIME/indent/是否以及如何配置它们.


小智 5

您确定它实际上缩进了两次吗?您的shiftwidth值可能只是缩进长度的两倍。首先,请确保将shiftwidth值设置为与缩进长度相同的值。