여기 몇 개의 VM 서버를 데비안 9로 업그레이드했습니다.
이제를 사용할 때 ssh
원격 터미널간에 복사하여 붙여 넣을 수 없습니다.
커서가 평소보다 재미 있고 다른 방식으로 움직임을 보이고 텍스트를 표시하는 것처럼 보이지만 command-C / command-V를 수행하거나 각 메뉴에서 복사하여 붙여 넣을 때 클립 보드에 다른 내용이 복사되지 않습니다. .
또한 긍정적 인 결과없이 Shift와 다른 키보드 조합으로 마우스 움직임을 시도했습니다.
이는 OS / X, 즉 Sierra 및 El Capitan 및 Windows에서 mobaXterm 터미널을 사용하여 발생합니다.
상황은 마우스가 있다는 vim의 인식 때문입니다.
스택 오버플로 다른 질문에 따라, 나는 창조 /etc/vim/vimrc.local
와 set mouse="r"
와 set mouse="v
; 제대로 작동하지 않았습니다.
마지막으로 set mouse=""
약간의 성공으로 동일한 파일에 설치 하십시오.
그러나 시간의 100 %도 제대로 작동하지 않습니다. 다른 무엇을 할 수 있습니까?
답변
해결책은 실제로 옵션 mouse=a
을로 설정하는 것 mouse=r
입니다.
/usr/share/vim/vim80/defaults.vim
허용 된 답변 에서 알 수 있듯이 이것을 설정할 때의 문제 는 모든 업데이트에서 덮어 쓰게된다는 것입니다. 나는 오랫동안 검색하고 이것에 끝났다 :
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864074
첫 번째 방법은 로컬 .vmrc 파일을 사용하여 설정하는 것입니다.
따라서 ~/.vimrc
모든 사용자에 대해 로컬 .vimrc ( )를 만들고 옵션을 설정할 수 있습니다. 또는 /etc/skel
새로 생성 할 때마다 자동으로 생성되도록 하나 를 만듭니다.
로컬 .vmrc 파일을 사용하는 경우, 당신은 로컬이 있다면 있기 때문에, 거기에 모든 옵션을 설정해야합니다 .vimrc
, (가) defaults.vim
모든로드되지 않습니다! 로컬이 없으면에서 .vimrc
모든 설정을 덮어 씁니다 defaults.vim
.
기본 옵션을로드 한 다음 개인 설정으로 기본값을 추가하거나 덮어 쓰는 모든 사용자에 대한 전역 구성을 원했습니다. 운 좋게도 데비안에는 그 옵션 /etc/vim/vimrc.local
이 있습니다 : 는 다음에로드됩니다 /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
답변
마우스 인식에서 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 구성 파일에서 “은 주석을 시작합니다).
이 변경으로 인해 문제없이 다시 복사하여 붙여 넣을 수있었습니다.
구성 파일을 보호하거나 전환하지 않는 한 실제로 업데이트로 덮어 쓰기 때문에 이것이 이상적인 솔루션이 아니라는 의견에 동의합니다. 당시에는 패키지 버전이나 내가 일했던 서버 구성의 사양으로 인해 유일하게 작동했습니다. 따라서이 답변을 여기에 남겨두고 최후의 수단으로 사용해야합니다 .
답변
Shift 키를 누른 상태로 마우스 버튼의 xterm 처리를 계속 사용할 수 있습니다.
답변
/etc/vimrc.local
다음 을 작성 하고 삽입하여 시스템 파일을 변경하지 않고이를 비활성화 할 수 있습니다 .
set mouse=
답변
많은 사람들이 제안 :set mouse=a
했지만 :set mouse=r
데비안 9의 Vim에서는 복사 및 붙여 넣기 만 가능합니다. 행운을 빕니다!