삽입 모드로 들어가려면 마우스 가운데 버튼을 사용하여 텍스트를 붙여넣으세요.

삽입 모드로 들어가려면 마우스 가운데 버튼을 사용하여 텍스트를 붙여넣으세요.

vim마우스 가운데 버튼을 클릭할 때 자동으로 편집 모드로 들어가는 것을 끄는 방법은 무엇입니까 ?

배경: 저는 JJJj세 줄을 연결한 다음 한 줄 아래로 내려가 마우스로 해당 명령 문자열을 선택한 다음 vim마우스 가운데 버튼을 사용하여 계속해서 붙여넣는 방법으로 명령 문자열을 만드는 것을 좋아합니다. 그런데 최근에는 vim마우스 가운데 버튼을 클릭하면 자동으로 삽입 모드로 진입해 프로그램이 제대로 작동하지 않는 현상이 발생하고 있다. 이것이 그 자체의 변경인지 아니면 내 배포판(Gentoo)의 일부 기본 구성인지는 모르겠지만 vim, 이를 다시 끄는 방법이 필요합니다.

한 가지를 명확히 하자면: 설정이 없습니다 set mouse=a(내 설정이나 다른 곳에 없음) . 예를 들어 마우스 왼쪽 버튼을 클릭해도 커서가 클릭한 위치로 이동하지 않습니다. 이것이 아마도 in을 사용하는 [cas]es 프롬프트가 이 문제를 해결하지 못하는 ~/.vimrc이유일 것입니다. .set mouse=~/.vimrc

그리고 나는 vim(에서 xterm)가 아니라고 말했다 gvim.

시스템 세부정보:

  • 젠투 리눅스
  • 일반 리눅스 4.9.13
  • X.Org X 서버 1.19.3
  • 엑스텀(327)
  • vim 8.0.386 (젠투에 의해 수정된 것 같습니다)

답변1

이것은 완전히 답변되었습니다여기. 자세한 내용과 대체 솔루션은 훌륭한 링크 답변을 참조하세요.

:set t_BE=짧은 대답: 파일에 넣으세요 ..vimrc

답변2

vim을 비활성화한 상태에서 마우스 모드를 사용해 보세요 :set mouse=. ~/.vimrc( 없이 ) 에 추가하세요 :. 기존 set mouse=줄이 있으면 주석 처리할 수도 있습니다 .

이렇게 하면 vim의 모든 마우스 처리가 비활성화되고 마우스의 기본 X 처리로 돌아갑니다. 즉, 선택을 시작하려면 왼쪽 버튼을 클릭하고, 선택을 확장하려면 마우스 오른쪽 버튼을 클릭하고, 붙여넣으려면 가운데 버튼을 클릭하세요. 특히 vim 창에서 마우스를 클릭하면아니요마우스 커서를 움직이거나 vim의 시각적 선택 모드와 상호 작용하세요.


:map그런데, 마우스에서 vim 내장 기능의 표준 이하 버전을 사용하는 대신 매크로를 사용하거나 기록하는 것을 고려해 보셨나요?

:map , JJJj명령 시퀀스를 쉼표 키에 매핑하는 등 키 입력에 쉽게 매핑할 수 있습니다 .

또는 q문자나 숫자 뒤에 문자나 숫자를 사용하여 매크로를 레지스터에 기록합니다. 예를 들어 , 다음 과 같이 간단히 qaJJJjq입력 하면 매크로를 실행할 수 있습니다 . 또한 자주 사용하는 여러 작업 간에 빠르게 전환해야 할 때마다 다수의 매크로를 기록하고 매핑할 수 있습니다 . 예를 들어JJJj@a@a,:map , @a

저는 ,단기(즉, 현재 편집 세션) 매핑을 위해 (쉼표) 키를 사용하고 있습니다. 왜냐하면 이 키는 제가 사용해 본 어떤 것과도 매핑되지 않기 때문입니다. 영구 매핑의 경우 기능 키를 사용하고 이를 내 ~/.vimrc파일에 설정합니다. 예를 들어, map <F5> {!}par^V^M}F5키는 커서를 현재 단락의 시작 부분으로 이동하고 par단락 재형식화를 통과한 다음 커서를 단락 위로 이동합니다( vim단락 재형식화 기능이 내장되어 있지만 저는 이를 선호합니다 par).

매핑과 매크로는 필요에 따라 복잡할 수 있습니다. Record Macro를 사용하면 다시 입력할 q때까지 입력한 내용이 모두 기록됩니다 . q명령에 ESC나 캐리지 리턴과 같은 제어 문자를 포함시키려면 :map지도에 들어갈 때 Ctrl-Vaka를 사용하여 해당 문자를 "이스케이프" 할 수 있습니다.^V

:map , Do^V^[!!date -R^V^MkJ

이 매핑은 ,현재 줄의 나머지 부분(현재 커서 위치에서 시작)을 RFC-2822 형식의 현재 날짜 및 시간으로 바꿉니다.

또는 패턴을 검색하고 세 줄을 연결한 다음 다시 검색하려면 다음을 수행할 수 있습니다.

:map , JJJn

그런 다음 를 사용하여 첫 번째 검색을 수행한 /pattern<enter>후 을 눌러 ,연결하고 다음 일치 항목을 검색합니다. 이 시점에서 가입하고 다시 검색할지( ,다시 누르기), 다시 검색할지( 를 누르기 n) 또는 완전히 다른 작업을 수행할지 선택할 수 있습니다 . 나는 보통 간단한 검색 및 교체를 수행하고 싶지 않지만 매번 결정을 내리고 싶을 때(예: 잘못된 긍정 일치 항목이 너무 많아 가치보다 오래 걸리는 경우) 완벽한 정규식을 만들기 위해 이 작업을 수행합니다. 검색 모드)

위의 내용은 이것이 수행할 수 있는 작업에 대한 아주 간단한 예일 뿐입니다. 입력한 다음 find-next를 3J번갈아 누르고 이전 명령을 반복하는 것과 크게 다르지 않습니다 . 물론 가능합니다 . 일련의 명령을 반복해야 할 때 유용합니다.n.:map , .n할 수 없다반복하다.

관련 정보