如何在Vim中选择一行中没有缩进的所有文本

  • 本文关键字:一行 文本 缩进 Vim 选择 vim
  • 更新时间 :
  • 英文 :


我想替换光标下当前行的所有文本,c更改文本,以便开始键入新代码。但我想保留压痕。

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

知道吗?

也许您正在寻找cc

:h cc

["x]cc删除[count]行[到寄存器x]并启动插入|lineise|。如果"autoindent"处于启用状态,则保留第一行的缩进。

您可以尝试(放入您的vimrc(:

:onoremap ii :<c-u>normal! v^o$h<cr>
:xnoremap ii ^o$h
  • 第一行定义映射ii,它将与任何预期运动的命令(ciidiiyii…(一起工作
  • 第二映射允许在视觉模式(例如vii(中使用它

:normal!命令的简要说明:

  • v:视觉模式,^:转到第一个非空白字符,o:转到选择的对面,$h:转到行的末尾,然后向左移动1个字符

最新更新