2017-05-20 119 views
0

我想在只有一个键的情况下在vim中启用或禁用鼠标支持(在我的情况下为F7)。它应该在命令模式插入模式下工作。我有这个在我的.virmrc中:Vim和密钥映射

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运行良好,鼠标支持不。为什么?

+0

对不起,我的意思是:“编辑模式”=插入模式 – Genschman

回答

1

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

:help :set

:se[t] {option}!
:se[t] inv{option}切换选项:反转值。 {not in 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>