나는 파일 이름과 같은 단어를 복사하기 위해 터미널에서 마우스 더블 클릭을 사용하고, 다른 터미널에서 마우스 가운데 버튼을 사용하여 붙여넣는 데 매우 익숙합니다.
그러나 Fedora 24에서 vim을 사용할 때는 이 동작이 작동하지 않는 것 같습니다. vim 세션에서 두 번 클릭하면 파일 이름의 일부만 선택되고 실제로는 해당 부분을 클립보드에 복사하지 않습니다. 왜냐하면 중간 클릭을 통해 붙여넣을 수 없기 때문입니다.
이 동작을 유발하는 일부 설정이 vim에 있습니까(그래서 비활성화할 수 있음)? 복사 붙여넣기를 사용하면 \vi file
제대로 작동하지만 구문 강조가 손실됩니다.
저는 Fedora 24와 vim 버전 2:8.0.124-2.fc24를 사용하고 있습니다. vim-common, vim-enhanced, vim-filesystem, vim-minimal 패키지가 설치되어 있습니다.
답변1
이들 모두예vim 온라인 도움말에서. 그러나 이는 doco의 다양한 변수와 옵션에 걸쳐 퍼져 있으며 전체에 대한 실제적인 포괄적인 가이드는 없습니다.
일반 모드
터미널 에뮬레이터에는 두 가지 모드가 있습니다. 일반 모드에서는 모든 마우스 상호 작용을 자체적으로 처리합니다. 두 번 클릭하면 터미널 에뮬레이터가 단어가 무엇인지 결정하고 선택 항목을 강조 표시합니다. 마우스 가운데 버튼을 클릭하면 터미널 에뮬레이터는 일반 타이핑 입력과 마찬가지로 X 서버에서 선택 항목을 가져와 터미널로 보냅니다.
최소 vim(이라는 프로그램 vi
) 을 실행하거나 :set mouse=
전체 vim을 사용하면 다음과 같은 결과를 얻을 수 있습니다. 마우스 가운데 버튼을 사용하여 vim에 붙여넣으려고 시도한 적이 있다면 vim이 붙여넣기에 참여하지 않는다는 것을 알 수 있을 것입니다. 왜냐하면 당시 삽입 모드에 있지 않으면 붙여넣은 텍스트가 처리되기 때문입니다. vim 명령으로.
마우스 보고 모드
그 안에마우스 보고서그러나 모드에서는 터미널 에뮬레이터 자체가 마우스 작업을 처리하지 않습니다. 대신, 일반적인 타이핑 입력과 마찬가지로 특수 제어 시퀀스로 인코딩된 작업을 전송합니다. 애플리케이션은 추가 제어 시퀀스를 출력하여마우스 보고서모드가 켜지고 꺼집니다. (자유 소프트웨어 세계에서 발명한 일부 마우스 보고 프로토콜이 정말 나쁘다는 사실과 관련하여 여기에는 많은 미묘함이 있습니다. 그러나 이는 이 답변의 범위를 벗어납니다.)
mouse=a
vim 이나 이와 유사한 기능을 사용하면 현재 수행 중인 작업의 정확한 설정 mouse=h
에 따라 일반 모드와 마우스 보고 모드 사이에서 터미널 모드가 동적으로 변경됩니다 . mouse
예를 들어 mouse=h
, 도움말 화면으로 전환하면 마우스 보고 기능이 켜지고 다시 전환하면 꺼집니다.
마우스 보고 모드가 켜져 있으면vim 자체단어가 무엇인지 결정하고 선택 항목을 강조 표시하며 선택 항목을 X 서버에 전달합니다. vim을 이와 유사한 것으로 (전체) 실행 mouse=a
하지만 사용 가능한 GUI가 있는지 알 수 없는 경우 DISPLAY
해당 환경에서 환경 변수를 제거하면 작업을 선택하고 붙여넣을 때 이를 알 수 있습니다.이내에vim에서는 X 선택이 표시되지 않으며 X 응용 프로그램도 해당 선택이 표시되지 않습니다. 실제로 화면에는 X 응용 프로그램과 vim의 두 가지 옵션이 동시에 표시될 수 있습니다. (최소화된 vim은 코드에서 X 서버와 전혀 통신할 수 없습니다.)
단어가 무엇인지 결정
단어가 무엇인지 결정하는 규칙은 다릅니다. 터미널 에뮬레이터(에뮬레이터 프로그램에 따라)는 단어 경계를 결정하는 방법을 구성하도록 허용할 수도 있고 허용하지 않을 수도 있습니다. roxterm, Terminate 및 LXTerminal에는 모두 기본 설정 대화 상자에 "문자별 문자 선택" 설정이 있습니다. 다른 사람들은 단순히 그것을 배선합니다.
두 경우 모두 그것은 a/b/c/d
단지 단어일 뿐이라고 분명히 생각합니다. 따라서 터미널 에뮬레이터가 마우스 작업을 처리할 때 더블 클릭에 대한 응답으로 이를 수행하도록 설정됩니다.
vim에는 "키워드"로 간주되는 항목에 따라 매우 별도의 자체 설정 세트가 있으므로 정규식 일치 및 구문 색상 지정과도 연결됩니다. 분명히 현재 파일에 대해 알도록 vim을 구성한 모든 것( iskeyword
옵션은 버퍼에 로컬이며 선택한 파일 유형에 따라 조정될 수 있음)은 a/b/c/d
슬래시로 구분된 여러 단어로 처리됩니다. 이것은 vim이 마우스 작업을 처리할 때 얻을 수 있는 것입니다.
추가 읽기
:help mouse-using
:help mouse
:help ttymouse
:help double-click
:help iskeyword
- "마우스 리포트"은(는) 무슨 뜻인가요?
- Fedora에서 Vi를 Vim으로 전역적으로 교체
- https://unix.stackexchange.com/a/307925/5132