退格,如果从光标到行首的字符是制表符/空格,则返回一个缩进级别

Som*_*DOS 4 vim indentation text-indent

我正在使用Vim进行Python开发.有时,在if子句中的表达式之后:(假设|是游标).

if test:
    pass
    |
Run Code Online (Sandbox Code Playgroud)

...我按回车键,想要进入if识别级别.

我知道我可以回到命令模式并按下<,但是我想知道当Vim知道光标后面的所有字符都是标签os空格时,是否有可能在按下退格键时返回一个缩进级别(或者shiftwidth)值).

Bil*_*dom 8

设置softtabstop等于shiftwidth,然后打开expandtab:

:set expandtab shiftwidth=4 softtabstop=4
Run Code Online (Sandbox Code Playgroud)

现在当你按下时Backspace,Vim会自动删除适当数量的空格以移回一个缩进级别.

有几个设置可以控制选项卡,空格和缩进的行为,它们可以以非显而易见的方式进行交互.我推荐这个Vimcast剧集,以获得非常清晰的概述:

http://vimcasts.org/episodes/tabs-and-spaces/

  • +1,它的工作原理.另一件事:我已经在我的vimrc中拥有了所有这些命令,但没有按照你的建议同时调用.在这种情况下,我有什么不知道的吗? (2认同)