在Vim中的插入模式中,除了使用箭头键之外,是否有任何其他方式来遍历文本来回移动某些字符?
如果在插入模式下按h,j,k和l,则实际字符将显示在屏幕上,而不是在文本中移动。
目前,我这样做的方法是必须诉诸Ctrl + [(Esc),然后遍历文本;但显然这没有效果。
您似乎滥用了vim,但这可能是由于对它不甚了解。
正确的方法是按Esc键,转到要进行小的校正的位置,将其修复,然后返回并继续进行编辑。之所以有效,是因为Vim的 Action 要比平常的角色前进/后退/上/下 Action 多得多。了解更多这些知识之后,这将变得更有成效。
这里有几个用例:
您不小心输入了“accifently”。没问题,序列EscFfrdA将纠正错误,并使您返回到编辑位置。 Ff移动会将光标向后移动到第一个遇到的“f”字符。将其与Ctrl +←→→→→DeldEnd进行比较,后者在临时编辑器中的功能几乎相同,但是需要更多的击键,并使您的手移出键盘的字母数字区域。 您不小心键入了“您不小心键入了”,但想将其更正为“您故意键入了”。然后,Esc2bcw将清除您要修复的单词并使您进入插入模式,因此您可以立即重新输入该单词。要返回到编辑状态,只需按A而不是End键,这样就不必移动手即可到达End键。 您不小心输入了“mouse”而不是“mice”。没问题-老式的Ctrl + w会删除前一个单词,而不会离开插入模式。而且,擦除一个小字比修复其中的错误要快得多。我已经习惯了在输入此消息时关闭浏览器页面...! 重复计数未充分使用。进行移动之前,您可以输入数字。并且移动将重复此次数。例如,15h将使光标返回15个字符,而4j将使光标向下移动4行。开始使用它们,您很快就会习惯。如果您从光标后面错了十个字符,您会发现按←键10次要比迭代移动光标慢得多。因此,您可以改而快速地键入键12h(粗略地猜测,您需要向后移动几个字符),并立即用ll向前两次前进以快速纠正错误。
但是,如果您仍然希望在不离开插入模式的情况下进行小的文本遍历,请遵循rson的advice并使用Ctrl + O。以我上面提到的第一个示例为例,Ctrl + OFf会将您移至上一个“f”字符,并使您进入插入模式。