답변:
tl; dr
... | tmux loadb -
tmux saveb - | ...
설명 및 배경
tmux에서 모든 복사 / 붙여 넣기 활동은 상단 (인덱스 0)이 가장 최근에 복사 된 텍스트 인 버퍼 스택을 거치며 버퍼 인덱스가 명시 적으로 제공되지 않은 경우 붙여 넣기에 사용됩니다 -b
. tmux list-buffers
또는 현재 바로 가기 tmux-prefix+로 현재 버퍼를 검사 할 수 있습니다 #.
스택 맨 위에 새로운 tmux 버퍼로 파이핑하고 set-buffer
, 문자열 인수와 load-buffer
파일 인수를 취하는 두 가지 방법이 있습니다 . load-buffer
stdin과 함께 사용하려는 버퍼에 파이프로 연결하려면 다음 과 같이하십시오.
print -l **/* | tmux loadb -
이것을 편집기에 다시 붙여 넣는 것은 매우 분명하지만 ( tmux-prefix+ ]또는 바인딩 한 paste-buffer
것) 쉘 내부에서 붙여 넣기에 액세스하는 것은 그리 중요하지 않습니다. 호스트를 호출 paste-buffer
하면 붙여 넣기가 stdin에 쓰여 지기 때문에 터미널의 편집으로 끝납니다. 버퍼 및 붙여 넣기의 줄 바꿈은 셸이 지금까지 붙여 넣은 모든 것을 실행하게합니다 (잠재적으로 하루를 망칠 수있는 좋은 방법).
이것에 접근하는 몇 가지 방법이 있습니다 :
tmux pasteb -s ' '
: -s
모든 줄 끝 (구분 기호)을 구분 기호로 바꿉니다. 그러나 여전히 동작은 paste-buffer
터미널 편집 버퍼에 붙여 넣기가 끝나는 것을 의미하지만 원하는 것은 아니지만 일반적으로 그렇지 않습니다.tmux showb | ...
: show-buffer
표준 출력 버퍼를 인쇄하고 필요한 것 거의 것입니다,하지만 같은 크리스 욘센이 코멘트에 언급 , show-buffer
수행 비 인쇄 가능한 ASCII 문자와 비 ASCII 문자 인코딩 진수. 불행히도 null로 끝나는 문자열이나 악센트가 붙은 라틴 문자 (예 : (zsh) print -N á | tmux loadb - ; tmux showb
인쇄 \303\241\000
) 와 같은 간단한 것들조차도 성가신 것으로 종종 부러집니다 .tmux saveb - | ...
: save-buffer
단순히 load-buffer
원시 바이트를 반대로 바꾸고 수정하지 않은 원시 바이트를 stdin에 씁니다. 대부분의 경우에 바람직한 것입니다. 그런 다음 다른 파이프를 계속 조립할 수 있습니다 (예 : | xargs -n1 -I{} ...
선로 등을 처리하기 위해 통과하십시오 .
tmux show-buffer
C0 제어 문자 및 비 ASCII 바이트 (예 : 악센트가있는 라틴 문자 등)의 8 진 인코딩을 수행합니다.tmux save-buffer -
원시 바이트를 원할 경우 사용할 수 있습니다 (보통 원하는 것임).