Vim에서 Ctrl+v를 사용할 때 Ctrl을 사용하는 이유와 이를 수정하는 방법은 무엇입니까?

Vim에서 Ctrl+v를 사용할 때 Ctrl을 사용하는 이유와 이를 수정하는 방법은 무엇입니까?

작동하지 않기 때문에 Vim을 사용 /etc/zsh/zshrc하여 키 바인딩을 추가 하고 있습니다 . tmux 터미널에서 +를 입력한 다음 +를 입력하면 쉘이 표시됩니다 . 그러나 Vim 삽입 모드에 있을 때 동일한 순서를 누르면 다음과 같은 결과가 나타납니다. .zshinputrcCtrlvCtrlLeftArrow^[OD^[[D

나는 이것이 ^[[D+를 입력할 때 쉘이 생성하는 것임을 발견했습니다. 또한 파일을 다음으로 변경했는데 예상대로 작동했습니다(+를 누르면 커서가 한 단어 뒤로 이동합니다). 이것이 제가 말하는 라인입니다:CtrlvLeftArrow^[[D^[OD/etc/zsh/zshrcCtrlLeftArrow

bindkey "^[OD" backward-word

Vim이 Ctrl.

답변1

이것은 실제로 Vim이 아니라 여러분의 터미널이 뭔가 이상한 일을 하고 있는 것입니다. 터미널에는 커서 키와 관련된 두 가지 제어 시퀀스 세트가 있습니다.역사적 이유: 하나는 "응용 프로그램 커서 키 모드"라고도 하는 전체 화면 응용 프로그램용이고 다른 하나는읽기-평가-인쇄애플리케이션(예: 셸).

과거에는 읽기-평가-인쇄 응용 프로그램에 라인 편집 기능이 없었으며 터미널 또는 운영 체제 터미널 드라이버는 결국 더욱 복잡해졌습니다. 따라서 터미널은 터미널 드라이버가 사용할 제어 시퀀스를 보냅니다. 어쨌든 Unix 터미널 드라이버는 적절한 줄 편집 기능을 갖지 못했습니다(예: readline 라이브러리를 통해).

터미널은 커서 키 모드와 응용 프로그램 커서 키 모드를 편집하는 동안 +를 ␛OD전송하고 있습니다. Ctrl두 가지 옵션이 있습니다:Left␛[D

  • 두 모드를 구별하지 않도록 터미널을 구성하십시오. 이를 수행하는 방법은 전적으로 터미널 에뮬레이터에 따라 다릅니다.
  • 그것으로 살아라. 특정 애플리케이션은 항상 터미널을 동일한 모드로 설정하므로 사용하는 모드에 따라 키 바인딩을 구성하기만 하면 됩니다.

관련 정보