2016-04-24

升級到 tmux 2.1 以及搭配 vim + mouse 要注意的地方

在解釋程式碼或是 demo 的時候,
用滑鼠來導覽畫面總是可以帶來一些便利,
以往非常好用的 tmux + vim 在 tmux 升級到 2.1 之後,
需要做一些調整,以下簡單記錄我前陣子所調整的部分。

tmux 在 2.1 之前,我們通常會打開底下四個選項
set -g mode-mouse on
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on

tmux 升級到 2.1 之後,上面四個選項被濃縮成底下一個選項
set-option -g -q mouse on
但是,目前的版本,mouse scrolling 和 page up/down 都無法正常運作
可以加入底下的設定來支援這兩個部分:
bind-key -T root PPage if-shell -F "#{alternate_on}" "send-keys PPage" "copy-mode -e; send-keys PPage"
bind-key -t vi-copy PPage page-up
bind-key -t vi-copy NPage page-down
bind-key -T root WheelUpPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; copy-mode -e; send-keys -M"
bind-key -T root WheelDownPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; send-keys -M"
bind-key -t vi-copy WheelUpPane halfpage-up
bind-key -t vi-copy WheelDownPane halfpage-down
另一方面,在 tmux 2.1 搭配 vim 時,即便已設定了 :set mouse=a,
vsplit 的邊框在預設情況下是不能拖拉的,因此,要另外設定:
set ttymouse=xterm2
並且在 drag 之前先按住 [Cmd] 鍵,splitter 才可以順利被 mouse 所拉動。

其他相關設定歡迎參考我的 .tmux.conf
這個設定檔包含在我的跨平台 shell 開發環境設定裡面。

--
Reference
http://superuser.com/questions/549930/cant-resize-vim-splits-inside-tmux
https://github.com/NHDaly/tmux-scroll-copy-mode

沒有留言:

張貼留言

Configuring HAProxy as a proxy for Cargo

Configuring HAProxy as a proxy for Cargo (the Rust package manager) in a corporate network environment involves several steps. Here's a ...