如何在vim中关闭双缩进?

时间:2010-08-21 20:13:41

标签: vim

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

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:20)

的Python

您可以在.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

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

HTML

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

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

其他文件

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

答案 1 :(得分:5)

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