Vim保持不受约束

时间:2015-06-17 06:15:19

标签: vim indentation

如果我不在他们身上写任何东西,Vim会保持我想要保持缩进的线条。我会给出一个例子,其中|是插入符号。

  1. Caret缩进,我按下

    if expression:
        print("hello world")
        |
    
  2. Caret在下一行缩进,现在按下向上箭头

    if expression:
        print("hello world")
    
        |
    
  3. 现在插入符号不再缩进,发生了什么?

    if expression:
        print("hello world")
    |
    
  4. 那么如何保留缩进?

3 个答案:

答案 0 :(得分:1)

正如其他人所指出的那样,如果自动添加缩进,Vim会故意删除空行缩进。但是,如果您在该行上插入了任何文本,即使您将其删除,也会发生 not 。因此,根据具体情况,只需插入一些文本并使用退格键将其删除,如果您想保留空行的缩进。如果总是希望保留它,那么映射也可以使用:

inoremap <CR> <CR>x<BS>

答案 1 :(得分:0)

这是vim的预期行为。由于您已跳过下一行,因此假定您不想写入该特定代码块

答案 2 :(得分:0)

在我的安装中,它保留缩进(至少对于C文件)。

您应该尝试在正常模式下使用o插入新行。

然后根据文档(见:help o):

  

当&#39; autoindent&#39;打开,获取新行的缩进   上一行。当聪明的时候&#39;或者&#39; cindent&#39;是的,缩进   为C程序自动调整一行。

您可能只使用&#39; autoindent&#39;选项。

有关详细信息,请参阅:help indenting

对于非C语言,您可能需要依赖$ VIMRUNTIME / indent文件。

您可以通过添加:set filetype indent on来启用它,前提是您的语言受支持。否则,您将不得不编写自己的缩进文件。