有时,我不得不使用未缩进缩进级别的代码,通常在复制/粘贴文件中的某些内容后,我已将Vim设置为(每级4个空格)。我通常使用<<
和>>
。问题在于它们不会跳到下一个缩进级别,它们只会增加或减少4个空格。
如果我有这样的代码
if condition:
do this
do that
做>>
下去do that
会导致
if condition:
do this
do that
我要它去
if condition:
do this
do that
除了轻松匹配上面的行的缩进之外,我希望它跳到下一个缩进级别,而不是添加4个空格。
这是我在.vimrc中关于缩进的内容
:set tabstop=4 shiftwidth=4 expandtab
>>
并<<
分别添加和删除不需要的缩进。您想要的是“格式化”,可通过完成==
。
:nnoremap >> ^i<tab><esc>
如果您确实希望启用标签页行为,也可以进行映射>>
@romainl
—
Dumitru
==
将跳到上面一行的水平。知道这是一件好事,但并非在我感兴趣的所有情况下都有效。作为问题的补充,我想要的是针对>>
和<<
缩进/缩进从该方向沿边界的下一个shiftwidth倍数。
不,
—
romainl
==
使用equalexpr
或equalprg
重新格式化给定的行。
filetype plugin indent on
你的.vimrc
,文件类型(和插件)压痕相关的规则将适用。即,在编辑时检查您的tabstop
值实际是什么(set tabstop?
将与其他设置相同),然后通过将行添加到“之后”文件中来更改这些值,例如:stackoverflow.com/a/159066/5000478