我想只用一个键(在我的例子中是 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>