tmux:在 vim 中启用鼠标滚动而不是历史缓冲区

the*_*ark 26 vim scrolling tmux

在使用 screen 一段时间后,我最近才开始使用 tmux 1.8。在互联网上到处阅读后,我想出了以下 ~/.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
Run Code Online (Sandbox Code Playgroud)

更新:

找到了答案。我不得不将我的任期设置为 xterm,它正在获取屏幕的价值。当我执行以下操作时:

export TERM=xterm
Run Code Online (Sandbox Code Playgroud)

在 vim 中:

set mouse=a
Run Code Online (Sandbox Code Playgroud)

我在 tmux 下在 vim 中打开的文件内滚动时没有问题。如果我必须滚动到历史缓冲区,我会做(前缀)[ 然后使用鼠标。它就像一个魅力!

Vic*_*ist 39

将以下内容添加到您的.vimrc操作中。

set mouse=a
Run Code Online (Sandbox Code Playgroud)

这将在所有模式下启用鼠标,因此a对于all. 请参阅 vim联机帮助页http://vim.wikia.com/wiki/Using_the_mouse_for_Vim_in_an_xterm