Stretch/Debian 9에서 vim 잘라내기 및 붙여넣기가 작동하지 않습니다.

Stretch/Debian 9에서 vim 잘라내기 및 붙여넣기가 작동하지 않습니다.

여기에서는 일부 VM 서버가 Debian 9로 업그레이드되었습니다.

지금 사용하면 ssh원격 터미널 간에 복사하여 붙여넣을 수 없습니다.

커서가 움직이고 텍스트를 표시하는 것처럼 보이지만 평소보다 더 흥미롭고 다른 방식이지만 Command C/Command V를 실행하거나 해당 메뉴에 복사하여 붙여넣을 때 클립보드에 아무것도 복사되지 않습니다.

또한 Shift 및 기타 키보드 조합을 사용하여 마우스를 움직여 보았지만 긍정적인 결과는 없었습니다.

이는 OS/X, 즉 Sierra 및 El Capitan과 Windows에서도 mobaXterm 터미널을 사용하여 발생합니다.

이 상황은 vim의 마우스 인식으로 인해 발생합니다.

Stack Overflow의 다른 질문을 바탕으로 잘 작동하지 /etc/vim/vimrc.local않았습니다 set mouse="r".set mouse="v

set mouse=""결국 동일한 파일에 설정을 완료하여 약간의 성공을 거두었습니다.

그러나 항상 100% 잘 작동하지는 않습니다. 또 무엇을 할 수 있나요?

답변1

해결책: 로컬로 mouse=a변경 mouse=r하십시오 .vimrc.

/usr/share/vim/vim80/defaults.vim허용되는 답변에서 알 수 있듯이 이 옵션을 설정할 때의 문제는 업데이트할 때마다 덮어쓰여진다는 것입니다. 나는 오랫동안 검색하여 마침내 다음을 발견했습니다. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864074

로컬 솔루션(결함 있는):
첫 번째 해결 방법은 로컬 .vimrc 파일을 사용하여 해당 위치에 설정하는 것입니다. 따라서 각 사용자에 대해 로컬 .vimrc()를 만들고 ~/.vimrc거기에서 옵션을 설정할 수 있습니다. 또는 /etc/skel새로 생성하는 모든 사용자에 대해 자동으로 생성되도록 새로 생성하세요 .

하지만 로컬 파일을 사용할 때는 .vimrc거기에 모든 옵션을 설정해야 합니다. 로컬 파일이 있으면 전혀 로드되지 않기 .vimrc때문 입니다! defaults.vim로컬 파일이 없으면 .vimrc모든 설정을 덮어쓰게 됩니다 defaults.vim.

글로벌 솔루션(우선의):
모든 사용자에 대해 기본 옵션을 로드한 다음 개인 설정으로 기본값을 추가하거나 재정의하는 전역 구성을 갖고 싶습니다./etc/vim/vimrc.local다행히 데비안에는 put in 옵션이 있습니다 /etc/vim/vimrc. 따라서 이 파일을 만들고 기본값을 로드하고, 다시 로드되는 것을 방지한 다음(마지막에) 개인 옵션을 추가할 수 있습니다.

다음 파일을 생성해주세요:/etc/vim/vimrc.local

" This file loads the default vim options at the beginning and prevents
" that they are being loaded again later. All other options that will be set,
" are added, or overwrite the default settings. Add as many options as you
" whish at the end of this file.

" Load the defaults
source $VIMRUNTIME/defaults.vim

" Prevent the defaults from being loaded again later, if the user doesn't
" have a local vimrc (~/.vimrc)
let skip_defaults_vim = 1


" Set more options (overwrites settings from /usr/share/vim/vim80/defaults.vim)
" Add as many options as you whish

" Set the mouse mode to 'r'
if has('mouse')
  set mouse=r
endif

( $VIMRUNTIME위 코드 스니펫에 사용된 값은 와 유사하니 참고하세요 /usr/share/vim/vim80/defaults.vim.)

"이전 복사/붙여넣기 동작"도 활성화하려면 파일 끝에 다음 줄을 추가하세요.

" Toggle paste/nopaste automatically when copy/paste with right click in insert mode:
let &t_SI .= "\<Esc>[?2004h"
let &t_EI .= "\<Esc>[?2004l"

inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()

function! XTermPasteBegin()
  set pastetoggle=<Esc>[201~
  set paste
  return ""
endfunction

답변2

vim을 마우스 인식과 독립적으로 만드는 한 가지 방법은 마우스 관련 구성을 주석 처리하는 것 같습니다.

/usr/share/vim/vim80/defaults.vim다음과 같이 마우스 관련 감지에 대해 주석을 달았습니다 .

" In many terminal emulators the mouse works just fine.  By enabling it you
" can position the cursor, Visually select and scroll with the mouse.
"if has('mouse')
"  set mouse=r
"endif

(이 vim 구성 파일에서는 "댓글이 시작됩니다.)

이 변경을 통해 문제 없이 다시 복사하여 붙여넣을 수 있습니다.

나는 의견에 동의합니다. 프로필이 보호되거나 전송되지 않으면 모든 업데이트에서 덮어쓰게 되므로 이는 이상적인 솔루션이 아닙니다. 당시에는 패키지 버전이나 제가 작업 중인 서버 구성의 세부 사항 때문에만 유효했습니다. 그래서 나는 이 대답을 여기에 남겨두고,최후의 수단으로만 사용해야 합니다..

답변3

이것mouse이 옵션에 대한 Vim 문서설명하다

Shift 키를 누르고 있으면 xterm의 마우스 버튼 처리를 계속 사용할 수 있습니다.

답변4

많은 사람들이 제안했지만 복사 및 붙여넣기는 Debian 9의 Vim에서만 활성화할 수 있다는 :set mouse=a것을 알았습니다 . :set mouse=r행운을 빌어요!

관련 정보