我正在编写python,javascript,html和其他配置文件,我意识到当我输入换行到未完成的行(即未终止的字符串,仍然在字典括号内等)时,我会得到双缩进。
我该如何解决这个问题?
答案 0 :(得分: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
请参阅$VIMRUNTIME/indent/javascript.vim
:它使用cindent
执行缩进。 cindent
变量会受到许多选项的影响cinoptions
。其中一些默认设置为&shiftwidth * 2
,您可能需要重置这些。
您案件的相关选项似乎是+N
。在.vimrc
文件中,您应该输入以下内容:
set cinoptions+=+1
即使这似乎已经是默认值。
再次,请参阅$VIMRUNTIME/indent/html.vim
:这会通过自定义表达式执行缩进。我快速看了一下,它似乎没有在任何地方进行任何双缩进,但我可能错了。可用的全局变量似乎不相关。
在最糟糕的情况下,您可能希望自己修改该文件并将其放入~/.vim/indent/
。
通常,每个文件都是根据自己的标准缩进的,请查看$VIMRUNTIME/indent/
以了解是否以及如何配置每个文件。
答案 1 :(得分:5)
你确定它实际上是两次缩进吗?可能只是您的speed
值是缩进长度的两倍。首先确保将shiftwidth
值设置为与缩进长度相同的值。