터미널 세션에 붙여넣으면 Enter를 누르지 않고도 쉘이 즉시 명령을 실행합니다.
이 동작을 비활성화하는 방법을 잘 모르겠습니다.
MacOS Yosemite에 사전 설치된 터미널을 사용하고 있습니다.
답변1
버전 4.4 이상 bash
과 대괄호 붙여넣기 la 를 지원하는 터미널에서 xterm
다음을 수행할 수 있습니다.
bind 'set enable-bracketed-paste'
(또는 set enable-bracketed-paste
당신의 것에 추가 ~/.inputrc
)
이렇게 하면 문자를 입력한 것처럼 해석하지 않고 프롬프트에서 복사-붙여넣기 버퍼가 삽입됩니다(버퍼에 비슷한 문자가 포함되어 있고 터미널 에뮬레이터가 이를 필터링하지 않는 경우 ^C
에도 ^Z
다음과 같은 문제가 발생할 수 있습니다). 문제).
zsh
이는 버전 5.1부터 기본적으로 수행됩니다.
다른 셸이나 터미널의 경우 다음도 참조하세요.클립보드 남용으로부터 자신을 어떻게 보호할 수 있나요?
답변2
이는 "개행" 문자를 붙여넣을 때 발생합니다. 예를 들어, 여러 줄을 붙여넣거나 실수로 줄 끝에 캐리지 리턴 문자를 복사한 경우입니다. 내가 아는 한, 이 동작을 실제로 비활성화할 수 있는 방법은 없지만 이를 완화할 수 있는 방법은 있습니다.
가장 쉬운 방법은 한 번에 한 줄씩 복사하고 마지막 문자를 놓친 다음 수동으로 추가하는 것입니다.
또는 the_velour_fog가 아래에서 지적한 것처럼 인쇄되지 않는 문자를 표시하는 편집기에 붙여넣은 다음 개행 없이 다시 선택할 수도 있습니다.
GNU/Linux 배포판에는 한두 가지 해결 방법이 있지만 이 개념이 MacOS에 이식 가능한지는 모르겠습니다. 상관없어 먼저 살펴보자여기Mac에 수정할 수 있는 유사한 파일이 있는지 확인하세요. 불행하게도 나는 그것을 의심한다.
답변3
붙여넣기 전에 작은따옴표를 입력하세요.을 누른 다음 붙여넣으세요. control-c와 위쪽 화살표를 누르면 하나의 큰 줄로 편집됩니다.
텍스트에 작은따옴표가 포함되어 있지만 큰따옴표가 없는 경우에도 큰따옴표를 사용할 수 있습니다. 큰 따옴표 안에 다른 것을 포함하거나 확장하는 경우에는 $
실제로 따옴표로 묶인 거대한 줄을 명령으로 실행하는 것이 아니기 때문에 괜찮습니다 .
개행 문자는 하나의 긴 줄을 만드는 대신 연속 프롬프트(공식 용어가 아님)를 시작하기 때문에 실제로 전체 내용을 편집할 수는 없습니다.
다음 4줄을 고려하면:
echo
ls
foo
bar
내가 제안한 대로 붙여넣으면 화면에 다음과 같은 결과가 나타납니다.
$ 'echo
> ls
> foo
> bar <or cursor here if you didn't include a trailing newline
> [cursor here]
그런 다음 Control-C와 위쪽 화살표를 누를 수 있습니다. (Control-C는 커서와 같은 줄에 있는 모든 것을 삭제하므로 거기에 유용한 텍스트가 있으면 먼저 Enter를 누르십시오.)
또 다른 방법은 견적을 닫고 Enter 키를 누른 다음 위쪽 화살표 키를 누르는 것입니다.
그래도,위쪽 화살표 이후
$ 'echo
ls
foo
bar
'
붙여넣은 블록 내에서 (텍스트를 통해) 빠르게 이동하려면 왼쪽 컨트롤과 오른쪽 컨트롤을 사용하세요 . 또는 터미널 설정이 제어 화살표 키, alt-b 및 alt-f를 지원하지 않는 경우.
개행 문자는 실제로 명령을 구분합니다. 이 4줄은 명령 기록에 각각 입력됩니다.. ;
또는 으로 변경할 수도 있습니다 &&
. (나는 이것에 대한 비결을 모릅니다. 키를 사용하여 단어를 앞으로 또는 뒤로 반복하여 신속하게 이동하고 수동으로 수행하십시오.)
답변4
그래요아니요회사에 관한 한 저는 매우 만족한 고객입니다. 다음 터미널 프로그램을 사용해 보세요.http://www.emtec.com/zoc/index.html. Mac 버전도 사용할 수 있습니다.
이 답변에 SE 규칙을 위반한 경우 알려주시면 답변을 삭제하겠습니다.
편집하다:
다른 답변을 올바르게 이해한 바에 따르면 이 문제는 터미널 프로그램으로 인해 발생할 수 있습니다. ZOC 터미널 프로그램은 업무용으로 완벽하게 설계된 전문 소프트웨어입니다. 다른 문자 없이 선택한 텍스트를 붙여넣습니다. 세션을 별도의 텍스트 파일에 기록할 수 있습니다. 더있다
고쳐 쓰다:
터미널 프로그램에는 옵션이 있습니다 Paste without final 'newline'
. 아마도 이것이 도움이 될 것입니다.