无法在tmux中调整vim拆分的大小


47

在之外一切正常tmux。但是tmux我不能用鼠标调整vim分割的大小。我set mouse=a在.vimrc中。有解决方案吗?

.tmux.conf:

$ cat ~/.tmux.conf
set-option -g mode-mouse on
set-option -g mouse-resize-pane on
set-option -g mouse-select-pane on
set-option -g mouse-select-window on

AFAIK,这是一个已知/未解决的问题。当然,如果您将鼠标放在键盘旁,这几乎不是问题。
romainl

11
您是否尝试过ttymouse=xterm2Vim中进行设置?这让我可以拖拉tmux内部的Vim分割(似乎默认为with运行时,这可能是tmux以外的情况)。xterm2TERM=xterm
克里斯·约翰森

@ChrisJohnsen有效!!请将此评论作为答案,我将接受它:)
holms

@romainl您好!使用默认的vim键绑定调整窗口的大小是相当麻烦的恕我直言。xD
trusktr 2014年

这不是油灰问题
jasonszhao 2015年

Answers:


69

看来,拖动状态行来调整分割时是不可能的Vim的选择ttymousexterm; 当值正确时,它确实起作用xterm2。后一个值将Vim配置为请求扩展的鼠标报告模式,该模式(除其他外)提供了更好的拖动支持。此扩展模式仅适用于xterm的较新版本(以及其他兼容的终端仿真器,包括tmux),因此它不是默认值。

您可以在您的设备中使用类似以下内容.vimrc的选项:

set mouse+=a
if &term =~ '^screen'
    " tmux knows the extended mouse mode
    set ttymouse=xterm2
endif

(不过,我不确定这将如何影响实际的屏幕实例,这些实例也使用以screen。开头的TERM 。)

当您不在tmux范围内时,TERM环境变量可能是xterm-ish值,并且Vim将使用控制序列来探测xterm版本t_RV


3
您提到不知道这将如何影响屏幕(与tmux相对)。答案是:屏幕也有同样的问题,这个确切的修复方法也在那里起作用。
Moss Collum 2013年

1
这个条件在我的Tmux中并没有成立,只是简单地set设置变量即可。
jasonszhao 2015年

1
如果您在具有超过223列的终端中工作,则需要ttymousesgras 设置为xterm2不超过该范围。你可以检查你的Vim支持sgr使用has("mouse_sgr")。设置它应该总是安全的,sgr而不是xterm2因为它是向后兼容的。请参阅:help ttymouse
Sudo Bash

14

就我而言,它解决了以下两种情况:鼠标拆分调整大小和宽屏的鼠标位置问题。

解决方法是:

if has("mouse_sgr")
    set ttymouse=sgr
else
    set ttymouse=xterm2
end

这对我有用。
Paul Brannan'9
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.