Todd Freed benar, cara "benar" untuk melakukan ini adalah menggunakan \;
. Semacam. Tapi ada halangan.
Anda lihat, Anda bergabung dengan urutan perintah tmux bersama dengan memberikan tmux konjungsi ;
. Dengan demikian, dalam file yang bersumber dari tmux, Anda mungkin mengatakan
new-session "monitor1" ; split-window -v "monitor2"
jika, karena suatu alasan, Anda menginginkan itu semua dalam satu jalur. Sekarang, Anda dapat memberikan bahwa satu-baris pernyataan majemuk dengan tmux
perintah dari shell juga tapi yang ;
harus melarikan diri sehingga menafsirkan shell sebagai argumen lain untuk tmux
. Jadi, yang setara dengan yang di atas dari shell adalah
$ tmux new-session "monitor1" \; split-window -v "monitor2"
Demikian pula, bind-key
perintah tmux mengambil serangkaian argumen yang merupakan perintah tmux dan argumen untuk dijalankan ketika tombol ditekan. Jika Anda ingin mengikat C-q
urutan di atas dari dalam file yang bersumber dari tmux, Anda akan mengatakannya
bind-key -n C-q new-session "monitor1" \; split-window -v "monitor2"
Di sini kita telah lolos ;
dari tmux , sehingga tmux tidak menafsirkannya sebagai akhir dari bind-key
perintah, tetapi sebagai argumen lain untuk bind-key
mengatakannya untuk membentuk perintah majemuk sebagai nilai terikat C-q
kunci.
Jadi apa yang terjadi ketika kita ingin membuat tmux melakukan itu dari shell? Banyak yang melarikan diri.
$ tmux bind-key -n C-q new-session "monitor1" \\\; split-window -v "monitor2"
Pertama, kita harus melarikan diri \
dan;
masing - masing dari shell , menyebabkan shell untuk melewati dua karakter \;
sebagai argumen tmux
. Ini kemudian lolos ;
dari tmux, menyebabkannya menetapkan seluruh pernyataan majemuk sebagai pengikatan C-q
.
Sekarang, semua yang dikatakan, jika Anda menggunakan pengaturan tmux yang kompleks seperti ini berulang kali, saya sarankan Anda membuat file tmux untuk menyimpannya di:
# In split-windows.tmux:
new-session "monitor1"
split-window -v "monitor2"
bind-key -n C-s new-window "monitor4"
# ...etc...
Lalu:
$ tmux source split-windows.tmux # (or even make an alias for this)
Akan jauh lebih mudah untuk mempertahankannya.
\;
:$ tmux bind-key -n C-q new-session "monitor1" '\;' split-window -v "monitor2"