Vim和键映射

  • 本文关键字:映射 Vim vim
  • 更新时间 :
  • 英文 :


我想只用一个键(在我的例子中是 F7(在 vim 中启用或禁用鼠标支持。它应该在命令模式插入模式下工作。我的 .virmrc 中有这个:

  set mouse=
  nnoremap <F7>       :set mouse=a <CR>
  inoremap <F7> <C-o> :set mouse=a  <CR>

但这行不通。我还想在两种模式下打开和关闭cursorline。为此,我在我的 .vimrc 中有这个

set nocursorline
nnoremap <F2>      :set cursorline!<CR>
inoremap <F2> <C-o>:set cursorline!<CR>

光标线效果很好,鼠标支持不行。为什么?

光标线示例中的!修饰符是它工作的原因。这告诉 Vim 切换或反转当前值。它仅适用于布尔(真/假(设置。

:help :set

:se[t] {option}!
:se[t] inv{option} 切换选项:反转值。{不在 Vi} 中

在你的mouse情况下,你需要一些更聪明的东西。

function ToggleMouse()
    if &mouse == 'a'
        set mouse=
        echo 'Mouse mode OFF'
    else
        set mouse=a
        echo 'Mouse mode ON'
    endif
endfunction
nnoremap <F7> :call ToggleMouse()<CR>
inoremap <F7> <C-o>:call ToggleMouse()<CR>

最新更新