【发布时间】:2014-06-11 07:57:12
【问题描述】:
我经常发现自己不得不在简约的终端上使用普通的旧 vi,这些终端的行为往往与大型发行版上的 vim 不同,所以这种行为让我很吃惊。
我想知道的不是如何移动到行中的最后一个字符,而是过去一个字符。因为键入$ 不会将插入光标移动到行中的最后一个字符,这很容易证明。我现在在 MSYS 上使用 vi。
如果我输入该行
This is a test
点击esc、$、i和<enter>,我会得到以下信息:
This is a tes
t
这表明插入光标没有放在行尾,而是放在行中最后一个字符的左侧(想象一下,框是 Notepad++ 中的一行。盒子在字母的顶部,表示字符将插入构成盒子左侧的区域),我知道这是因为如果它真的在结尾(“结尾”意味着最后一个字符)最后一个字符不会像您在上面看到的那样移动到自己的行。
我不想要这种行为。每次按回车键时都要输入一个额外的字符,以确保我不必重新输入我的单词,这对我来说太痛苦了。这会降低我的工作效率。
我该如何解决这个问题?这是我可以在.exrc 中调整的设置吗?
【问题讨论】:
-
这是评论而不是答案,因为我不知道其中有多少适用于原始 vi(我使用 vim),但是当您使用
i时,它会插入 before 你所在的角色。使用a插入(追加)之后,A追加到当前行的末尾(“之后”$)。 -
我不确定普通的旧 vi 但你不能在命令模式下输入
A吗?这应该把你放在插入模式的最后一个字符之后。如果这不起作用,请键入<Esc>$a,它应该做同样的事情。 -
据我所知
i和a都将您置于插入模式,区别在于i在当前字符之前启动您,而a在之后启动您。