1

我的 .vimrc 中有很多这样的:

:noremap <F1> :set hls!<CR> :echo "hilight seach (hls) =" &hls<CR>

(很高兴有自动缩进、行号、忽略大小写等,只需按一下按钮即可切换。)

但是在执行这些操作时会出现一种奇怪的行为。光标向右移动一列。如果我在一行的末尾,光标将移动到下一行的开头。为什么会这样,我该如何预防?

这是vim 7.3.429,但我在7.2.411中也看到了。

谢谢

4

2 回答 2

4

问题是 和 之间的<CR>空间:echo。删除它,它应该可以工作。

:noremap <F1> :set hls!<CR>:echo "hilight seach (hls) =" &hls<CR>
于 2013-01-16T19:17:46.397 回答
1

gpojd 是正确的,空间导致您的运动问题。也许您可能对更简单的切换映射感兴趣?

nnoremap <f1> :set hls! hls?<cr>
nnoremap <f2> :set spell! spell?<cr>
nnoremap <f3> :set list! list?<cr>

使用set hls?将显示 的当前值'hlsearch'。因为:set可以一次设置多个设置,所以您切换值然后要求显示当前值。

于 2013-01-17T18:46:13.587 回答