当我在VIM中按下
如何停止这种情况发生?
v
键进行复制和粘贴操作,然后使用$
键到达行尾,在按下d
键时,下一行会被移动到我要剪切的同一行。如何停止这种情况发生?
v
键进行复制和粘贴操作,然后使用$
键到达行尾,在按下d
键时,下一行会被移动到我要剪切的同一行。当你删除包括换行符在内的所有字符时,它会向上移动。
像往常一样,Vim 有多种解决方案。没有“唯一正确的方法”,但你可以尝试以下命令。
你可以在正常模式下使用 D
(大写),它将删除直到行末的所有内容。
参见 :help D
使用其他动作
你可以使用 g_ 而非 $ 移动到行末,它将移动到该行的最后一个非空格字符,并且不会选择换行符。
参见 :help g_
因此,vg_d 应该能够达到你想要的效果。
使用替换
或者,你可以使用替换而非剪切,用空格替换被删除的字符。
因此,v$rSPACE 可以实现删除,但不会将替换的字符保存在寄存器中(例如用于粘贴)。
如果您使用这些按键序列,则下一行将不会向上移动。
v $ h d
它正在向上移动,因为EOL字符 $
也在删除的同时,没有将光标向左移动1个字符。
直接跳过可视模式,交换另外两个命令,即按下d
$
。
这比你最初的方法更短,并且不会打破你的传统,介绍其他你可能不熟悉的按键。
C
,但我不确定OP是否想要替换剪切文本。然而,D
存在并且似乎工作正常。 - Xavier T.D
。它几乎和进入插入模式一样。已更新答案。 - eckes