【问题标题】:How to indent blank lines when indenting multiple lines in vim?在vim中缩进多行时如何缩进空行?
【发布时间】:2015-12-27 03:55:14
【问题描述】:

所以,如果我有这样的文字:

int x() {
int a = 1;

return a;
}

尝试缩进函数内部不会缩进空行。 (使用视觉模式和>)

如何改变 vim 的行为,让空白行也缩进?

【问题讨论】:

  • 你是说你想要一行只有空格吗?
  • 除了不必要的空白字节使您的文件膨胀之外,缩进的空白行到底是什么样的?
  • @Peter Rincker:是的,没错!
  • @twalberg:如果我有标签显示,它会显示更清晰的缩进指南,例如管道。例如::set list:set listchars=tabs:|\ 。此外,它不会在上下移动时弄乱我的光标位置,并且可以更轻松地创建具有正确缩进的新行。 (在一个完全空的行上按o 会产生一个新的完全没有缩进的行。)
  • @nijoakim o/OS/cc 都可以正常工作。您的vimrc 中很可能没有filetype plugin indent on。此外,根据需要使用空格也会影响有用的段落动作,例如 {}ipap。您的光标位置也应该没问题,因为 vim 存储虚拟列,因此从长线到短线再回到长线不会改变光标列。如果希望严格保持光标位置,您可能需要查看'virtualedit'。见:h 'virtualedit'

标签: vim indentation


【解决方案1】:

我试图提供一种非常简单的方法。您可以尝试使用带有CTRL-V(或Windows 上的CTRL-Q)的blockwise Visual 模式来选择您希望缩进的块(从第一列开始)。然后(您需要有+visualextra 功能;使用:version 来查看是否有)您可以按I(我的意思是Shift-iCTRL+ TEsc。或者你可以通过映射来做到这一点

vnoremap <Leader><Key> I<c-t><Esc>

更多关于这些:h v_b_I:h i_CTRL-T

但我真的认为你不应该使用只有空格的行。

【讨论】:

    猜你喜欢
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 2011-03-01
    • 1970-01-01
    相关资源
    最近更新 更多