在执行:noremap时,如何阻止光标在vim中移动?

时间:2013-01-16 19:08:28

标签: vim remap

我的.vimrc中有很多这些:

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

(只需按一下按钮就可以切换自动注册,行号,忽略等等,这很好。)

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

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

由于

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

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

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

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