繁体   English   中英

VI编辑器:移至EOL而不是最后一个字符

[英]VI Editor: Move to EOL instead of last character

我最经常发现自己必须在简约的终端上使用普通的旧vi,这些终端往往与大型发行版上的vim行为有所不同,因此这种行为使我震惊。

我想知道的不是如何移动到行中的最后一个字符,而是如何移动到该行之后的一个字符。 因为键入$不会将插入光标移动到该行的最后一个字符,所以很容易证明这一点。 我现在在MSYS上使用vi。

如果我输入

This is a test

然后按esc$i<enter> ,我将得到以下内容:

This is a tes
t

这表明插入光标不是放在行的末尾,而是放在行中最后一个字符的左边(假设框像在Notepad ++中那样是一行。框在字母的上方,表示将该字符插入组成该框左侧的区域中),我知道这是因为,如果它确实在末尾(“ end”表示最后一个字符的右侧),则最后一个字符将不会移动像上面看到的一样。

我不要这种行为。 每次我按Enter键只是为了确保不必重新输入我的文字,这对我来说是一个很大的痛苦。 这杀死了我的生产力。

我该如何解决? 这是我可以在.exrc进行调整的设置吗?

在行尾进入插入模式的普通模式命令为A

更一般而言, i在当前字符之前进入插入模式因此您得到的结果与您所做的完全一致: $将光标放在最后一个字符上,而i在最后一个字符之前进入插入模式。 那就是您要Vim要做的,这就是它的作用。

如果你想插入当前字符模式进入,正确的命令是a ,所以你应该做的,而不是什么$i (你想要什么,无论你是在vi或者vim不能这样做)是$a针对有一个很酷的捷径: A

我猜您想使用o “打开”新行。 但是我提供了一些通过vi插入文本的方法

插入命令

应当注意,vi / vim的光标设置在字符顶部,而不是像大多数编辑器一样位于字符之间。

  • i在光标之前插入文本
  • a光标之后追加文本
  • I在该行的第一个非空白之前插入文本
  • A文本追加到行的末尾
  • o在当前行下方开始新行并开始插入模式
  • O在当前行上方开始新行并开始插入模式
  • S / cc删除当前行并开始插入。
  • c{motion}删除{motion}并开始插入模式。 读为零钱
  • C从当前位置删除到行尾并开始插入模式
  • s删除光标下的字符并启动插入模式
  • r替换一个字符
  • R开始替换模式。 将其视为覆盖

对于任何这些命令类型的帮助:h {command}所以对A帮助为:h A

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM