題 鼠標在vim中通過tmux滾動,如何配置?


我正在使用PuTTY,tmux和vim的組合。如果我只是打開與PuTTY的SSH連接,然後打開vim,鼠標滾動按預期工作。但是如果我打開tmux然後在tmux中打開vim,滾動只會部分起作用,這意味著我可以像往常一樣向下滾動但我無法向上滾動。如果我向上滾動緩衝區只是“上下”,只是停留在同一個位置。 “set -g mode-mouse on”似乎沒有什麼區別(我之後用“tmux source-file~ / .tmux.conf”重新加載conf),無論哪種方式都以相同的方式工作。

編輯:我也注意到滾動的工作方式與終端中的tmux預期相同,但不在vim中。只有與vim中鼠標/終端相關的選項是“set mouse = a”和“set t_Co = 256”。

有任何想法嗎?


4
2018-01-25 17:13


起源


以下鏈接包含解決方案: superuser.com/questions/549930/... - Shubham


答案:


摘要

問題顯然從PuTTY開始,但並不一定就此止步。以下是對PuTTY問題的潛在解決方案的鏈接,以及對整個問題的分析。


問題說明

組態

vim 同 mouse=a 啟用滾動,選擇和光標移動

tmux, 沒有 tmux 啟用鼠標功能,即以下內容:

set -g mode-mouse off
set -g mouse-select-pane off
set -g mouse-resize-pane off
set -g mouse-select-window off

用例

一個典型的用例是使用 vim   的 tmux。避免之間的負面互動 tmux 和 vim 是禁用的主要原因之一 tmux 滾動。

行為

請注意,僅當使用PuTTY作為終端仿真器時才會出現以下情況,並且在gnome-terminal或任何其他經過測試的Linux終端仿真器中無法重現。

嘗試使用鼠標“向上滾動”時 vim   一個 tmux 會話,行動完全失敗。正如OP所描述的那樣,通常可以看到緩衝區“上下”,好像每次滾動嘗試都會發生反作用(下面有更多內容)。

這與OP的描述基本相同,但是在我的解釋或OP的問題中不清楚的情況下重新考慮。


潛在的解決方案 - PuTTY

似乎存在PuTTY與每個ScrollDown / ScrollUp事件發送無關的ScrollDown事件的問題。這意味著每次向上滾動的嘗試都會被取消,並且沒有任何反應。相反,向下滾動時,每個滾動事件都會加倍。通過查看,行為很容易驗證 vim 滾動行為 首先在外面 的 tmux (滾動正常工作),和 第二個里面 的 tmux (向上滾動不起作用,單次向下滾動兩次滾動的嘗試)。

根據以下gmane線程,上面描述的問題通過Putty-X補丁解決(https://github.com/atsepkov/putty-X/commit/bbcedf5a85ca1ccaa27005e7f7ebeb4c8a783b88):

鏈接到gmane線程http://comments.gmane.org/gmane.comp.terminal-emulators.tmux.user/5498

注意: 我自己沒有驗證上述解決方案,因此請查看gmane線程以獲取更多信息。


補充意見

在哪裡  有趣的是,這是一個使用舊版本無法重現的新問題 tmux/vim。使用相同版本的PuTTY(0.63),可以在Ubuntu 13.10系統上主動演示該問題,而Ubuntu 12.04系統不會出現此問題。

首先,問題似乎指向系統配置增量(即缺少ncurses-term或類似),但是使用這種類型的解決方案尚未確定任何修復。此外,同一問題的多個報告(包括此主題)傾向於支持問題的存在。

由於問題和相關軟件版本的共同依賴性,似乎問題不僅限於單個應用程序。它可能是更新版本的 tmux/vim '修復'產生回歸的東西。或者,它可能是更新版本的 tmux/vim 簡單地暴露了PuTTY中的現有問題。無論哪種方式,都需要進行一些額外的調查才能完全解決問題。如果這可以幫助任何人進行調查,請在下面找到一些相關的版本信息。


版本信息

Ubuntu 12.04 版本信息('向上滾動' vim 代替 tmux  作品):

  • tmux:1.6-1
  • vim:7.3.429-2

Ubuntu 13.10 版本信息('向上滾動' vim 代替 tmux 是 破碎):

  • tmux:1.8-4
  • vim:7.4.000-1

另外值得注意的是 - gmane海報報導沒有觀察到這個問題 tmux 1.7 + vim 7.3。海報對這個問題的第一次觀察也是 tmux 1.8 + vim 7.4。


希望至少,這個答案可以讓任何致力於(或堅持使用)PuTTY的人都可以選擇解決這個問題。除此之外,希望有人能夠理解上面的其他觀察結果,並幫助使主題得到適當的解決。


5
2018-04-14 22:09



禁用“bind-key a send-prefix”而不禁用鼠標對我有用... vim是否使用tmux樣式會話? - Andreas Rehm
@Andreas,謝謝你的建議。我已經嘗試過沒有運氣(無論是否配置修改都會出現問題)。您使用的是什麼tmux + vim版本組合?什麼是 .tmux.conf看起來像你禁用之前和之後 bind-key a send-prefix? - daBeamer


對於最終到此處的任何人:這已經在0.64預發行版中得到修復,您可以從PuTTY官方網站下載。


2
2018-01-14 22:31



更新putty為我解決了這個問題。 - math0ne


這是我能夠滾動才能正常工作的唯一方法:

放:

set -g terminal-overrides 'xterm*:smcup@:rmcup@'

在文件中: ~/.tmux.conf


0
2017-10-28 11:02





我對ubuntu 16.04安裝沒有任何問題。 tmux是默認的apt-get安裝版本。 Vim是版本8. PuTTY是版本0.67

當在tmux會話中託管時,滾動和單擊都在vim內部工作。

〜/ .tmux.conf

set-option -g mouse on

請注意,鼠標控制的tmux選項已從早期版本更改。

的〜/ .vimrc

set mouse=a

意識到 這個答案 表明vim插件可能是導致問題的原因。


0
2018-02-17 07:59