我使用 vim 作为辅助编辑器已经有几年了,但由于各种原因,我发现即使我的主编辑器可用,我也越来越多地使用它。一直困扰我vim
并阻止我更多地使用它的一个问题是它处理光标放置的方式。光标只能在一个字符上,而不是在字符之间,就像 1984 年以来创建的任何编辑器一样。
举一个为什么会出现这个问题的例子,如果我想删除一行的最后一个单词,我点击$
到行尾,然后db
向后删除。这留下了一个要删除的字符,因为$
并没有真正走到行尾,而是走到了该行的最后一个字符,并且db
只删除了当前字符之前的字符。问题不在于我必须输入一个额外的字符,而是在做应该简单的事情时需要额外的想法,这会分散我对我实际尝试完成的事情的注意力。
在我看来,更现代的想法光标放置在各方面都更胜一筹,我想vim
改用这种方法。我敢肯定,一些铁杆vim
粉丝会不同意我对此的看法,但由于vim
的优越性的标准论点之一是其无限的可配置性:
vim
将光标置于字符之间吗?您可以:set virtualedit+=onemore
,它允许您刚好越过最后一个字符。对你来说不幸的是,$
仍然到最后一个字符;你必须把光标移过去才能过去。另一方面,您可以使用g$
,它通常会转到换行行上屏幕行的最后一个字符;在onemore
mode 中,它也刚好经过非换行行的最后一个字符(或换行行的最后一个屏幕行)。
:h 'virtualedit'
说这个选项可能会弄乱脚本,但我不知道现实中的风险有多大。