우분투 14.04를 사용하고 있으며 터미널 화면에 이상한 문제가있어서 많은 버그가 있습니다. 누군가가 나를 도와 줄 수 있습니까? 아니면 내가 잘못하거나 Linux가 아닌 방법으로 일하고 있다면 설명해 주시겠습니까? 나는 일종의 해결책을 가지고 있지만 왜 이것이 계속 반복되는지 이해하고 싶습니다.
나는 종종 노트 나 인터넷에서 bash 명령을 복사하고 때로는 복사 한 것을 감싸는 이상한 0 ~ 1 기호가 나타납니다. 그것은 매우 성가 시며 이것은 완전히 임의의 방식으로 발생합니다.
긴 검색을 한 후에이 문제가 Bracked Paste Mode 라는 것을 알았printf "\e[?2004l"
습니다.이 모드가 갑자기 활성화되면이 명령 을 사용하여 터미널을 수정합니다.
어떻게 든이 기능을 영구적으로 비활성화 할 수 있습니까? 나는 지금 일하고있는 모든 우분투 머신에서이 문제에 직면했다. 이전에는 Ubuntu 10.10 및 12.04를 사용했으며 이전에는 그런 문제가 없었습니다.
답변
괄호 붙여 넣기 모드를 비활성화 할 수 있습니다.
bash에서 일시적으로 시도하려면 다음을 수행하십시오.
bind 'set enable-bracketed-paste off'
그런 다음 동작 방식이 마음에 들면 설정을 ~/.inputrc
시스템 전체 또는 시스템 전체 /etc/inputrc
(또는 우분투의 어느 곳에서나)에 둘 수 있습니다.
답변
에 해당 명령을 넣을 수 있습니다 bashrc
. 그러면 터미널을 열 때마다 적용됩니다.
끝에 입력 vi ~/.bashrc
하고 추가 printf "\e[?2004l"
하고 파일을 저장하십시오.:wq
답변
왜 이런 일이 발생 하는지에 대한 원래의 질문에 대답하기 위해 가능한 시나리오는 다음과 같습니다.
- 내 가정용 컴퓨터에는 괄호 붙여 넣기를 지원하는 새로운 버전의 zsh가 있습니다 (쉘 A라고 함).
- 괄호 붙여 넣기 (쉘 B)를 지원하지 않는 쉘을 이전 버전의 bash로 설정 한 상태에서 컴퓨터에 shed습니다.
문제는 터미널 프로그램에서 셸 A에서 셸 B로 sshing 할 때 대괄호 붙여 넣기가 여전히 활성화되어 있다고 생각하므로 붙여 넣은 내용 (0 ~ 1 비트) 주위에 문자를 계속 추가합니다. 쉘 B는 그것들을 지원하지 않으므로 변경하지 않고 통과시킵니다. 쉘에 특수 이스케이프 시퀀스를 인쇄하여 괄호 붙여 넣기를 해제하도록 터미널에 지시해야합니다.printf "\e[?2004l"
.
이 문제를 해결하는 몇 가지 방법이 있습니다.
-
괄호 붙여 넣기를 전혀 신경 쓰지 않는다면 쉘 A에서 끄십시오. 처음에는 활성화되지 않습니다 (@jwd의 답변)
-
쉘 A에서는 브라켓 붙여 넣기를 계속 사용하고 쉘 B에서는 비활성화하려면 이스케이프 시퀀스를
.bashrc
(@MOHRE의 답변)에 추가하십시오 -
괄호 붙여 넣기를 지원하도록 쉘 B를 업그레이드하여 해당 0 ~ 및 1 ~ 문자를 올바르게 해석하십시오.
참고 : GNU 화면을 사용하는 경우 화면 printf
외부에서 해당 명령 을 실행해야합니다 . 내부에는 작동하지 않는 것 같습니다.