Todd Freed haklı, bunu yapmanın "doğru" yolu kullanıyor \;
. Sırala. Ama bir engel var.
Görüyorsunuz, bir araya tmux komutları vererek tmux komutları dizisine katılıyorsunuz ;
. Böylece, tmux kaynaklı bir dosyada
new-session "monitor1" ; split-window -v "monitor2"
Eğer bir nedenden ötürü, hepsini tek bir satırda istiyordun. Şimdi, bu tek satırlık bileşik deyimi verebilir tmux
ayrıca bir kabuk komutunu ama;
öylesine kaçmış gerektiğini başka argüman olarak kabuk yorumlayıp onu tmux
. Bu nedenle, yukarıdakilerden kabuğa eşdeğer olan
$ tmux new-session "monitor1" \; split-window -v "monitor2"
Benzer şekilde, tmux bind-key
komutu , tmux komutu olan bir dizi argüman ve tuşa basıldığında çalıştırılacak argümanları alır. C-q
Yukarıdaki sıraya tmux kaynaklı bir dosyanın içinden bağlanmak istiyorsanız,
bind-key -n C-q new-session "monitor1" \; split-window -v "monitor2"
Burada ;
tmux'dan kaçtık , böylece tmux bind-key
komutun sonu olarak yorumlanmıyor , fakat anahtarın bind-key
bağlı değeri olarak bir bileşik komut oluşturmasını söylemek için başka bir argüman olarak C-q
.
Peki, bunu tmux'a kabuktan yapmak istediğimizde ne olur? Bir sürü kaçış.
$ tmux bind-key -n C-q new-session "monitor1" \\\; split-window -v "monitor2"
İlk olarak, kaçmak zorunda \
ve;
her birinden kabuk kabuk iki karakter geçmesine neden \;
bir argüman olarak tmux
. Bu daha sonra ;
tmux'dan kaçar ve bileşik ifadenin tamamını bağlayıcı olarak atamasına neden olur C-q
.
Şimdi, tüm bunlar, tekrar tekrar böyle bir karmaşık tmux kurulumu kullanıyorsanız, içeride tutmak için bir tmux dosyası oluşturmanızı öneririm:
# In split-windows.tmux:
new-session "monitor1"
split-window -v "monitor2"
bind-key -n C-s new-window "monitor4"
# ...etc...
Ve sonra:
$ tmux source split-windows.tmux # (or even make an alias for this)
Bu şekilde sürdürmek çok daha kolay olacak.
\;
:$ tmux bind-key -n C-q new-session "monitor1" '\;' split-window -v "monitor2"