xfce4-terminal을 사용하는 동안 이 질문을 하고 있지만 일반적인 해결 방법에 관심이 있습니다. 터미널 에뮬레이터가 콘솔에서 마우스 지원을 알리는 것을 방지하는 방법이 있습니까? vim이나 다른 곳에서 마우스 지원이 필요한 것보다 훨씬 더 자주 마우스 선택과 복사-붙여넣기가 필요합니다.
답변1
이 키를 누르고 Shift있으면 일반 마우스를 사용하여 선택할 수 있습니다.xterm 마우스 추적활성화되었습니다. 이는 내가 아는 모든 터미널 에뮬레이터( xterm
, vte
또는 기반) xfce-terminal
에서 작동합니다.rxvt
특히 일반적으로 vim
터미널 mouse
에서는 기본적으로 활성화되어 있지 않습니다. 따라서 set mouse=a
시스템에 vimrc가 있거나 운영 체제에서 제공할 수 있습니다. ~/.vimrc
언제든지 다음을 추가할 수 있습니다.
set mouse=
당신을 위해 그것을 비활성화하십시오 ~/.vimrc
. 또는:
if !has("gui_running")
set mouse=
endif
GUI 버전에서 비활성화하지 않으려면 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
답변2
/etc/vim/vimrc 끝에 다음 두 줄을 추가합니다:
set mouse=
set ttymouse=
답변3
나는 이 패치를 사용하고 있습니다:
--- a/src/vteseq.cc 2020-01-25 21:39:47.737317745 +0100
+++ b/src/vteseq.cc 2020-01-25 21:40:12.811424242 +0100
@@ -462,18 +462,7 @@
void
Terminal::update_mouse_protocol() noexcept
{
- if (m_modes_private.XTERM_MOUSE_ANY_EVENT())
- m_mouse_tracking_mode = MOUSE_TRACKING_ALL_MOTION_TRACKING;
- else if (m_modes_private.XTERM_MOUSE_BUTTON_EVENT())
- m_mouse_tracking_mode = MOUSE_TRACKING_CELL_MOTION_TRACKING;
- else if (m_modes_private.XTERM_MOUSE_VT220_HIGHLIGHT())
- m_mouse_tracking_mode = MOUSE_TRACKING_HILITE_TRACKING;
- else if (m_modes_private.XTERM_MOUSE_VT220())
- m_mouse_tracking_mode = MOUSE_TRACKING_SEND_XY_ON_BUTTON;
- else if (m_modes_private.XTERM_MOUSE_X10())
- m_mouse_tracking_mode = MOUSE_TRACKING_SEND_XY_ON_CLICK;
- else
- m_mouse_tracking_mode = MOUSE_TRACKING_NONE;
+ m_mouse_tracking_mode = MOUSE_TRACKING_NONE;
m_mouse_smooth_scroll_delta = 0.0;
vte는 더 이상 내 마우스에 신경 쓰지 않으므로 vim은 내가 마우스를 가지고 있다는 것을 모릅니다.
답변4
적어도 xterm
(작동하지 않는 것 같습니다 urxvt
) 다음과 같이 실행하여 "마우스를 비활성화"할 수 있습니다.
xterm -xrm xterm*allowMouseOps:false