在Vi中,当我按下$
时,它会跳转到行的最后一个字符,而不是行尾字符。如何在一次按键中到达行尾字符,最快的删除行尾字符的方法是什么?
在Vi中,当我按下$
时,它会跳转到行的最后一个字符,而不是行尾字符。如何在一次按键中到达行尾字符,最快的删除行尾字符的方法是什么?
gJ
而不是 Jx
来无空格拼接(它的优点是只需一个操作,这样.
将重复拼接而不是字符删除)。 - DrAlv1-v2
出现为subtract(v1,v2)
。它基于首先使用鼠标选择v1-v2
,然后调用宏。问题在于\
>通常将光标放在最后一个字符之后,但当它是行末的最后一个字符时,它会在最后一个字符之前。因此,在这种情况下,宏会切掉最后一个字符。通过
:set ve=onemore`,它可以始终正常工作。 - Evgeni Sergeev当你学习vi/vim时,大多数人都会告诉你输入"i"
以开始插入模式,但由于其他编辑器的操作方式,几乎所有人都会跳过基本的“编辑”操作(许多人直到太晚才意识到这一点,可能因此而感到羞愧,但我不会)。
在命令模式下,你可以找到光标闪烁的位置/字符,并有三个编辑选项:
"i"
- 在该字符之前编辑(插入,在按ESC键之前继续编辑)"r"
- 在该字符处编辑(替换,一次性动作,立即返回命令模式)"a"
- 在该字符之后编辑(添加,在按ESC键之前继续编辑)因此,使用"l"
、"$"
或"END"
键只能定位到最后一个字符。在那里,你决定编辑的命运,在这种情况下,我们选择"a"
继续编辑。剩下的部分是编辑完成后按ESC键。
编辑:除了 i,r,a
之外,也可以使用它们的大写版本,通过 SHIFT
或 CAPS LOCK
。
I
- 跳转到行首并开始插入,直到按下 ESC 键R
- 连续替换直到按下 ESC 键A
- 在最后一个字符后跳到行尾并开始追加,直到按下 ESC 键在这种情况下,A
更可取。
:help 've'
,将其设置为onemore
将允许将光标定位在最后一个字符之后。然而,这并不完美,因为例如,如果选择的结束位置是在行末的最后一个字符处,>
仍然会表现得不一致 :( - Evgeni Sergeev