[主題]:
在前面幾篇文章定義了,tmux的mouse mode的方法後(PREFIX+m & PREFIX+M),我發現一件事情:”當tmux的mouse mode和vim的mouse mode同時打開,vim的mouse mode會遮蔽tmux的mouse mode”。
我的意思就是,當兩邊的mouse mode打開進到vim裡面,tmux的mouse mode等於沒有打開。
也就是之前我們打開tmux mouse mode然後用mouse直接選後ctrl+c的方式會失敗。(因為被屏蔽了)。
[Work-Around]:
好吧,直覺想法就是想要用tmux的mouse mode就把vim的mouse mode關閉。反之,平時就打開。
我們都知道在vim下把mouse mode打開可以在~/.vimrc下面寫:
:set mouse=a
而若要把mouse mode關閉(只做用在vim command mode),可以寫:
:set mouse=c
而基礎的vim scripting告訴我們,設定變數可以寫以下的code:
let g:mouse_mode = 1
如果是要寫一個function則是可以寫以下的 code:
func! Mouse_on_off()
endfunc
如果要寫一個if else的statement則是可以寫以下的code:
if g:mouse_mode == 0
...
else
...
endif
有了這些knowledge之後我們就可以把全部兜起來,如下,我們就可以有mouse mode的toggle hot key了! :
"{{{ Mouse Toggle
let mouse_mode = 0 " 0 = c, 1 = a
func! Mouse_on_off()
if g:mouse_mode == 0
let g:mouse_mode = 1
set mouse=c
else
let g:mouse_mode = 0
set mouse=a
endif
return
endfunc
"}}}
nnoremap <silent> <C-m> :call Mouse_on_off()<CR>
[使用方法]:
如果在~/.vimrc設定好以上,當在vim內按下 ctrl+m時,如果mouse mode是打開的, 那麼就會關閉。反之就會打開。
這樣就可以work-around掉,tmux的mouse mode被vim mouse mode屏蔽的問題了。
沒有留言:
張貼留言