Vi编辑和行尾的光标位置?

时间:2012-12-01 14:51:53

标签: linux vim text-editor vi slackware

当我使用vi时(我认为默认情况下会在Slackware 13.37上调用elvis)我可以按预期插入文本但是当我使用ESC x编辑拼写错误时光标移动键l以及$将光标放在最后一个字母上,而不是超出它,因此强迫我在最后一个字母的左边插入任何新文本,基本上强制输入拼写错误,除非我一直删回到空格。实际的箭头键通常会让我超越最后一个字母,但并非总是如此。

为了帮助解释我在做什么:

This is text with a tttypog

我用ESC x

修复了它
This is text with a typog

但是ESC lESC $只允许我将光标移动到g,从而迫使我只在g的左侧插入任何新文本

This is text with a typoraphicalg

我做错了吗?

2 个答案:

答案 0 :(得分:4)

编辑:用“普通模式”替换“命令模式” - @Jim Steward:感谢您指出错误

简短回答:如果您处于正常模式并希望在字符后按a插入文字。按A直接跳到行尾,并在最后一个字符后插入字符。在vi,afaik中,无法将光标放在当前行中最后一个字符后的列上(如果处于正常模式)。但是在vim中有一个名为virtualedit的选项,它可以让你这样做(参见:help virtualedit)。

答案 1 :(得分:1)

vi有两种模式,编辑模式(默认)和插入模式。命令“i”(不带引号)将您带到插入模式,ESC将您带回编辑模式。没有必要在每个命令之前按ESC,虽然按ESC是一种无害的方法,如果你忘记了最后一个模式,确保你处于编辑模式。

“A”命令(不带引号)用于在行尾添加文本。