Terminal

如何在終端中禁用滑鼠支持?

  • July 15, 2021

我在使用 xfce4-terminal 時問了這個問題,但我對通用解決方案感興趣:有沒有辦法阻止終端仿真器在控制台中宣布滑鼠支持?我需要更頻繁的滑鼠選擇和複製粘貼,而我需要 vim 或任何地方的滑鼠支持。

在啟用xterm 滑鼠跟踪時,您可以按住該Shift鍵以使用正常的滑鼠選擇。這適用於我知道的所有終端仿真器(, (like ) 或基於 - 的終端仿真器)。xterm``vte``xfce-terminal``rxvt

具體來說vimmouse通常在終端中預設情況下不啟用。因此set mouse=a,您~/.vimrc或您的作業系統提供的系統 vimrc 中可能存在某個地方。您可以隨時添加:

set mouse=

給你~/.vimrc禁用它。或者:

if !has("gui_running")
 set mouse=
endif

以避免為vim.

滑鼠支持(有點)在具有該功能的terminfo數據庫中宣傳。kmous現在,並非所有應用程序都依賴它來決定是否啟用滑鼠跟踪。

您可以重新定義終端的條目(在本地 terminfo 數據庫中)以刪除該功能:

infocmp -1x | grep -v kmous= | TERMINFO=~/.terminfo tic -x -
export TERMINFO=~/.terminfo

對於使用 的應用程序,將使用者定義的功能(未在 和 中記錄但在和中提及)設置為空字元串ncurses就足夠了。如果滑鼠事件是由終端發送的,這不會阻止應用程序處理滑鼠事件,但會阻止應用程序發送進入滑鼠跟踪模式的序列。因此,您可以將兩者結合:XM terminfo(5)``curs_caps(5)``curs_mouse(3)

infocmp -1x |
 sed '/kmous=/d;/XM=/d;$s/$/XM=,/' |
 TERMINFO=~/.terminfo tic -x -
export TERMINFO=~/.terminfo

引用自:https://unix.stackexchange.com/questions/187695