我想替换光标下当前行的所有文本,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
,它将与任何预期运动的命令(cii
、dii
、yii
…(一起工作 - 第二映射允许在视觉模式(例如
vii
(中使用它
:normal!
命令的简要说明:
v
:视觉模式,^
:转到第一个非空白字符,o
:转到选择的对面,$h
:转到行的末尾,然后向左移动1个字符