我最近刚开始使用 tmux 1.8,之前用过一段时间的 screen。在网上读了一些东西后,我找到了以下 ~/.tmux.conf。然而,当我打开 vim 并尝试用鼠标滚动时,tmux 会滚动其滚动缓冲区,而不是将滚动命令发送到 vim。有解决方法吗?以下是我的配置:
set-option -g default-shell /bin/bash
set -g status-utf8 on
set -g status-keys vi
set -g status-interval 1
set -g prefix `
bind ` send-key `
bind-key -n F9 resize-pane -Z
bind-key -n F11 prev
bind-key -n F12 next-window
bind-key | split-window -h
bind-key - split-window -v
set -s escape-time 0
set -g history-limit 100000
set -g mode-mouse on
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on
set-option -g mouse-utf8 on
set -g status-bg '#666666'
set -g status-fg '#aaaaaa'
set -g status-left ''
set -g status-right ''
set-option -sg escape-time 1
更新:
找到答案了。我必须将我的术语设置为 xterm,它正在获取屏幕的值。当我执行以下操作时:
export TERM=xterm
在 vim 中:
set mouse=a
在 tmux 下,在 vim 中打开的文件中滚动时我没有遇到任何问题。如果我必须滚动到历史缓冲区,我会执行 (前缀) [,然后使用鼠标。效果非常好!
答案1
添加以下内容.vimrc
即可。
set mouse=a
这将在所有模式下启用鼠标,因此a
为all
。请参阅 vim手册页和http://vim.wikia.com/wiki/Using_the_mouse_for_Vim_in_an_xterm。