2017-05-20 114 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>