【问题标题】:How can I select all the text on a line without the indentation in Vim?如何在 Vim 中选择一行上没有缩进的所有文本?
【发布时间】:2020-05-10 11:19:23
【问题描述】:

我想替换光标下当前行的所有文本和change 文本,所以我开始输入新代码。但我想保留缩进。

目前我正在使用ddO。这将在插入模式下删除该行并在光标之前打开一行,这很好,因为 vim 会注意到先前的缩进并按预期放置光标。
但我想使用类似于ciwc(更改内词),因为认为“换行”感觉很自然。 Vc 几乎是我想要的,但它会失去缩进。

有什么想法吗?

【问题讨论】:

    标签: vim


    【解决方案1】:

    也许您正在寻找cc

    :h cc
    

    ["x]cc 删除 [count] 行 [进入寄存器 x] 并开始 插入 |逐行|。如果'autoindent'打开,保留 第一行的缩进。

    【讨论】:

    • 非常感谢。我对 vim 很陌生,而且我不知道我们可以使用 :h 搜索信息。真的很有帮助。
    【解决方案2】:

    你可以试试这个(放入你的 vimrc):

    :onoremap ii :<c-u>normal! v^o$h<cr>
    :xnoremap ii ^o$h
    
    • 第一行定义了映射ii,它将适用于任何期望运动的命令(ciidiiyii...)。
    • 第二个映射允许在可视模式下使用它(例如,vii)。

    :normal!命令简述:

    • v:视觉模式,^:转到第一个非空白字符,o:转到选择的另一侧,$h:过去到行尾,然后向左走 1 个字符。

    【讨论】:

      猜你喜欢
      • 2020-01-30
      • 1970-01-01
      • 2012-01-19
      • 2014-04-17
      • 1970-01-01
      • 2022-10-07
      • 2020-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多