我可以让 vim 改变它的光标行为吗?

ico*_*ast 11 vim cursor

我使用 vim 作为辅助编辑器已经有几年了,但由于各种原因,我发现即使我的主编辑器可用,我也越来越多地使用它。一直困扰我vim并阻止我更多地使用它的一个问题是它处理光标放置的方式。光标只能一个字符上,而不是字符之间,就像 1984 年以来创建的任何编辑器一样。

举一个为什么会出现这个问题的例子,如果我想删除一行的最后一个单词,我点击$到行尾,然后db向后删除。这留下了一个要删除的字符,因为$并没有真正走到行尾,而是走到了该行的最后一个字符,并且db只删除了当前字符之前的字符。问题不在于我必须输入一个额外的字符,而是在做应该简单的事情时需要额外的想法,这会分散我对我实际尝试完成的事情的注意力。

在我看来,更现代的想法光标放置在各方面都更胜一筹,我想vim改用这种方法。我敢肯定,一些铁杆vim粉丝会不同意我对此的看法,但由于vim的优越性的标准论点之一是其无限的可配置性:

  • 在这种情况下可以交付吗?
  • 可以vim将光标置于字符之间吗?

ech*_*son 5

您可以:set virtualedit+=onemore,它允许您刚好越过最后一个字符。对你来说不幸的是,$仍然到最后一个字符;你必须把光标移过去才能过去。另一方面,您可以使用g$,它通常会转到换行行上屏幕行的最后一个字符;在onemoremode 中,它也刚好经过非换行行的最后一个字符(或换行行的最后一个屏幕行)。

:h 'virtualedit' 说这个选项可能会弄乱脚本,但我不知道现实中的风险有多大。