我的 .vimrc 中有很多这样的:
:noremap <F1> :set hls!<CR> :echo "hilight seach (hls) =" &hls<CR>
(很高兴有自动缩进、行号、忽略大小写等,只需按一下按钮即可切换。)
但是在执行这些操作时会出现一种奇怪的行为。光标向右移动一列。如果我在一行的末尾,光标将移动到下一行的开头。为什么会这样,我该如何预防?
这是vim 7.3.429,但我在7.2.411中也看到了。
谢谢
问题是 和 之间的<CR>
空间:echo
。删除它,它应该可以工作。
:noremap <F1> :set hls!<CR>:echo "hilight seach (hls) =" &hls<CR>
gpojd 是正确的,空间导致您的运动问题。也许您可能对更简单的切换映射感兴趣?
nnoremap <f1> :set hls! hls?<cr>
nnoremap <f2> :set spell! spell?<cr>
nnoremap <f3> :set list! list?<cr>
使用set hls?
将显示 的当前值'hlsearch'
。因为:set
可以一次设置多个设置,所以您切换值然后要求显示当前值。