默认情况下,End 键会将我带到 Vim 中该行的最后一个字符。但是,我set virtualedit=onemore
的 vimrc 中有,我实际上希望 End 键将我带到最后一个字符之后的一个字符。
首先我尝试过,map <End> g$
但是如果行超出了屏幕的末尾,它只会带我到最后一个可见的字符。
然后我尝试了一下map <End> $<Right>
,但是如果该行是空白的,它就会带我到下一行,而不是什么都不做。
有任何想法吗?
答案1
您需要运行一个表达式来检查该行是否包含字符,并采取相应的措施。试试这个:
:noremap <expr> <end> (col('$')>1?"\<lt>end>\<lt>right>":'')
看:
:help :map-<expr>
答案2
你可以尝试一下。
:map <End> $a<space><ESC>
这将移动到最后一个字符,然后附加一个空格,然后移动到它。