추가 읽기

추가 읽기

zsh를 사용하고 있습니다.

zsh 창에서 복사한 내용을 마우스 오른쪽 버튼으로 클릭한 후 마우스 오른쪽 버튼을 클릭하여 붙여넣도록 하겠습니다. 나는 항상 일부 문자가 누락되고 마지막 문자의 대소문자가 바뀌는 경우가 있습니다.

예를 들어

echo this is a long message

다음으로 붙여넣기

(empty line)

this is a long messaG

그리고

vim hello.txt

~이 되다

m hello.tX

원인은 무엇이며 해결 방법은 무엇입니까?

답변1

여기에는 두 가지 이유가 있습니다.

  • 무언가(아마도 Z 쉘)가 터미널을 열도록 지시합니다.괄호 안에 붙여넣기.
  • Z 쉘 사용법 vicmd또는 viins키맵.

무슨 일이 일어나는가?

  1. Z 셸이 시작되고 터미널 에뮬레이터에서 대괄호로 묶인 붙여넣기를 열도록 제어 시퀀스를 실행합니다. 아니면 텍스트 편집기가 어느 시점에서 이 작업을 수행했는데 어떤 이유로 다시 닫는 제어 시퀀스를 실행할 수 없었을 수도 있습니다.
  2. 당신은 뭔가를 붙여 넣습니다.
  3. 터미널 에뮬레이터는 대괄호 붙여넣기 제어 시퀀스의 시작, 붙여넣을 텍스트 및 대괄호 붙여넣기 제어 시퀀스의 끝을 보냅니다.
  4. 초기 대괄호 붙여넣기 제어 시퀀스의 첫 번째 문자는 ESC로, ZLE의 vi삽입 모드를 취소하고 ZLE의 vi명령 모드로 돌아갑니다.
  5. 후속 문자는 vi명령이며 문자 o또는 에 도달하여 i삽입 모드로 들어갈 때까지 많은 작업을 수행하지 않습니다.
  6. 나머지 텍스트는 삽입 모드에서 삽입됩니다.
  7. 후행 괄호 붙여넣기 제어 시퀀스의 첫 번째 문자는 ESC로, ZLE의 vi삽입 모드를 취소하고 ZLE의 vi명령 모드로 돌아갑니다.
  8. 제어 시퀀스의 후속 문자는 거의 영향을 미치지 않습니다.
  9. 닫는 괄호 붙여넣기 제어 순서의 마지막 문자는 대소문자를 ~바꾸는 명령입니다 vi. 이렇게 하면 붙여넣은 텍스트의 마지막 문자가 대문자와 소문자로 바뀌게 됩니다.

다음 두 가지 방법 중 하나로 이 문제를 해결할 수 있습니다.

  • vicmd/ 키맵 에서 이를 처리하도록 구성되지 않았기 때문에 Z 쉘이 대괄호로 묶인 붙여넣기를 여는 것을 방지합니다 viins.
  • vicmd/keymap 에서 대괄호로 묶은 붙여넣기가 작동하도록 합니다 viins. 이를 수행하는 방법은 처음에 Z 쉘이 괄호 안의 페이스트를 인식하도록 만든 방법에 따라 다릅니다. 플러그인 safe-paste은 emacs 키맵을 사용하며 vi 키맵과 잘 작동하도록 조정되어야 합니다. 하지만 이것이 현재 Z 셸에서 브래킷 페이스트를 얻는 유일한 방법은 아닙니다.

추가 읽기

관련 정보