Vim和键映射

时间:2017-05-20 07:58:08

标签: vim

我想在vim中启用或禁用只有一个键的鼠标支持(在我的情况下是 F7 )。它应该在命令模式插入模式下工作。我在.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>

Cursorline运行良好,鼠标支持不行。为什么?

1 个答案:

答案 0 :(得分:1)

游标示例中的!修饰符就是它的工作原理。这告诉Vim切换或反转当前值。它仅适用于布尔值(true / false)设置。

来自: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>