tl; Dr.
... | tmux loadb -
tmux saveb - | ...
Açıklama ve Arkaplan
Tmux'ta, tüm kopyala / yapıştır etkinliği , üst (dizin 0) en son kopyalanan metin olan arabellek yığınından geçer ve açıkça bir arabellek dizini sağlanmadığında yapıştırmak için kullanılır -b
. Geçerli arabellekleri tmux list-buffers
veya varsayılan kısayol tmux-prefix+ ile inceleyebilirsiniz #.
Yığının en üstündeki yeni bir tmux arabelleğine geçmenin, set-buffer
dize bağımsız değişkenini load-buffer
almanın ve dosya bağımsız değişkenini almanın iki yolu vardır . Bir tampon içine borulamak için genellikle load-buffer
stdin ile kullanmak istersiniz , örn .:
print -l **/* | tmux loadb -
Bunu tekrar editörlere yapıştırmak oldukça açıktır ( tmux-prefix+ ]veya bağladığınız her şey paste-buffer
), ancak macunun kabuğun içinden erişilmesi değildir, çünkü çağırmak paste-buffer
, macunu terminalinizin düzenlemesinde sonlanan stdin'e yazacaktır. arabellek ve macundaki herhangi bir yeni satır, kabuğun şu ana kadar yapıştırılmış olan her şeyi yürütmesine neden olur (muhtemelen gününüzü mahvetmek için harika bir yol).
Buna yaklaşmanın birkaç yolu vardır:
tmux pasteb -s ' '
: -s
tüm satır sonlarını (ayırıcılar) sağladığınız ayırıcıyla değiştirir. Ancak yine de davranışı elde edersiniz, paste-buffer
bu da hamurun terminal düzenleme tamponunuzda bittiği anlamına gelir, bu da istediğiniz gibi olabilir, ancak genellikle değildir.
tmux showb | ...
: show-buffer
tamponu stdout'a yazdırır ve neredeyse gerekli olan şeydir, ancak Chris Johnsen yorumlarda belirtildiği gibi , show-buffer
yazdırılamayan ASCII karakterlerinin ve ASCII olmayan karakterlerin sekizli kodlamasını gerçekleştirir. Bu maalesef, boş sonlandırılmış dizeler veya aksanlı latin karakterler (örn. (Zsh) print -N á | tmux loadb - ; tmux showb
baskılar \303\241\000
) gibi basit şeylerle bile sinir bozucu olmak için yeterince sık kırılıyor .
tmux saveb - | ...
: save-buffer
basitçe tersine çevirir load-buffer
ve değiştirilmemiş ham baytları çoğu durumda istenen olan stdin'e yazar. Daha sonra başka bir boru monte etmeye devam edebilirsiniz, örn. | xargs -n1 -I{} ...
işlem hattı akıllıca geçmek , vb ..
tmux show-buffer
C0 kontrol karakterlerinin ve ASCII olmayan baytların sekizli kodlamasını yapar (örneğin aksanlı Latin karakterler, vb.).tmux save-buffer -
Ham baytları istiyorsanız kullanabilirsiniz (bu genellikle istediğiniz şeydir).