有时,我不得不使用未缩进缩进级别的代码,通常在复制/粘贴文件中的某些内容后,我已将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