imap jk를 비활성화하려면 set Paste를 사용하세요.

imap jk를 비활성화하려면 set Paste를 사용하세요.

Esc 대신 jk를 누를 수 있도록 ~/.vimrc에서 다음 줄을 사용합니다.

:imap jk <Esc>

붙여넣기 위해 :set을 추가하기 전까지는 잘 작동했습니다.

" Pressing jk is same as pressing Esc
:imap jk <Esc>

" Enable paste from system clipboard
" Bug? This disables imap jk <Esc>  
set paste 

왜 이런 일이 일어나는지 말해 줄 수 있는 사람이 있나요? 적어도 다음 시스템에서 발생합니다.

호스트: Amazon Linux AMI Vim 버전: 7.4

호스트: MacOS 10.14.5 Vim 버전 8.0.1283

답변1

이것은 예상됩니다.

요점은'paste'비활성화된 기능 목록에서 텍스트 및 삽입 모드 매핑을 붙여 넣을 때 "의도하지 않은 효과를 방지"하는 것입니다.

~에서:help 'paste':

'paste'옵션이 켜져 있는 경우(이미 켜져 있는 경우에도):

  • 삽입 모드 및 명령줄 모드에서 매핑 비활성화
  • 약어가 비활성화되었습니다.
  • [...]

또한 들여쓰기 및 텍스트 줄 바꿈과 관련된 옵션과 같이 Vim이 붙여넣은 텍스트를 수정하게 만드는 다른 옵션도 비활성화됩니다.

붙여넣기 모드에서 특수 키 입력(삽입 모드를 종료하는 데 사용되는 ESC 제외)에 대한 유일한 예외는 다음과 같이 설정된 키 입력입니다.'pastetoggle', 설정된 경우. 이 키는 붙여넣기 모드를 비활성화하여(활성화된 경우) 일반 삽입 모드로 돌아갈 수 있습니다.

또한 'paste'대부분의 경우 모달은 실제로 열려 있으면 안 됩니다. Vim이 활성화되면 많은 Vim 기능이 비활성화되므로 일반적으로 붙여넣는 동안 하나의 기능만 사용한 다음 즉시 비활성화하면 됩니다.


붙여넣기 모드에 유용한 키 바인딩이 있는 플러그인 권장 사항을 확인하고 싶다면 tpope를 추천해 드릴 수 있습니다.vim은 손상되지 않았습니다, 다음 세 가지 매핑을 노출합니다(일반 모드에서):

  • [op: 현재 줄 앞에 붙여넣기
  • ]op: 현재 줄 뒤에 붙여넣기
  • yop: 현재 줄을 붙여넣고 바꿉니다.

모든 경우에 Vim은 open 동안 삽입 모드로 들어가며 'paste'ESC 'paste'를 사용하여 삽입 모드를 종료하자마자 닫힙니다. 옵션이 켜져 있을 때 붙여넣기 작업만 수행하므로 한 번의 키 입력, 실제 붙여넣기, ESC 순서가 하나의 일관된 작업이 된다는 개념입니다.

바라보다:help pasting이 플러그인의 경우자세한 내용은.

관련 정보