File konfigurasi Anda berfungsi, tetapi ada beberapa komplikasi.
Perintah berumur pendek
Pertama, perintah yang Anda mulai (contoh ls ) selesai berjalan dengan sangat cepat. Jendela dan panel untuk perintah dibuat, tetapi menghilang begitu setiap perintah keluar.
Jika tujuan Anda adalah untuk benar-benar menggunakan perintah "satu tembakan" seperti itu dalam konfigurasi akhir Anda, maka Anda mungkin harus menggunakan opsi jendela remain-on-exit
(dan mungkin opsi sesi set-remain-on-exit
untuk menyediakan default untuk semua jendela yang dibuat dalam sesi). Ketika remain-on-exit
diatur untuk sebuah jendela, itu tidak akan hilang ketika perintah keluar. Anda mungkin ingin memetakan respawn-window
kunci ke (catatan: respawn-window
akan respawn perintah asli; respawn-pane
juga tersedia di tmux 1.5 untuk respawn masing-masing panel).
bind-key R respawn-window
# set global r-o-e so that initial window of initial session gets it
set -g set-remain-on-exit on
# create a session and its windows/panes
new -n estruct ls
neww -n estruct2 ls
splitw -v -p 50 -t 0 ls
# restore global r-o-e
set -g set-remain-on-exit off
# let session r-o-e inherit from global value for future windows
set -u set-remain-on-exit
Atau, jika Anda tidak keberatan jendela awal Anda menjadi nomor 1 dan bukan angka 0, maka kami dapat menghindari mengubah nilai global:
bind-key R respawn-window
# create a session with a throw-away window
new true
# for future windows, stay open after the command exits
set set-remain-on-exit on
# create the windows we really want
neww -n estruct ls
neww -n estruct2 ls
splitw -v -p 50 -t 0 ls
# for future windows, revert r-o-e to global value
set -u set-remain-on-exit
Jika Anda hanya menggunakan ls
perintah placeholder yang disederhanakan dan Anda benar-benar berniat untuk menelurkan beberapa jenis perintah interaktif di windows / panel Anda, maka Anda mungkin harus menelurkan perintah yang ingin Anda jalankan. Jika perintah yang Anda maksudkan terlalu lama untuk memulai untuk menggunakannya selama pengujian tmux , maka gantilah shell atau perintah interaktif sederhana lainnya (mis top
. sqlite3
,, Dll.).
new-session
Apakah Perintah Default
Kedua, menjalankan tmux tanpa argumen perintah (misalnya tmux
) setara dengan menggunakan new-session
perintah (yaitu tmux
sama dengan tmux new-session
). Anda .tmux.conf
membuat sesi untuk windows / panenya ( new
adalah alias untuk new-session
) dan sesi lain sedang dibuat untuk new-session
perintah implisit yang ditentukan dengan memulai tmux tanpa argumen perintah. Jika Anda menggunakan bilah status default, Anda akan melihat a [1]
di sebelah kiri bilah status ketika Anda berada di sesi "ekstra" (sesi awal yang dibuat di .tmux.conf
adalah angka 0).
Jika Anda ingin menghindari membuat sesi tambahan, maka gunakan tmux attach
sebagai ganti polos tmux
. Perintah dari Anda .tmux.conf
akan berjalan, membuat sesi 0, dan kemudian klien Anda akan melampirkan ke sesi itu daripada membuat yang baru.
splitw
di dalamnya - tidak ada yang lain - dan saya masih tidak mendapatkan layar split karena katanya tidak dapat menetapkan sesi saat ini. Jika saya tambahkannew
sebelumnya, saya mendapatkan ... satu jendela, satu panel. Saya tidak bisa, seumur hidup saya mendapatkan dua panel saat start-up.new
, kemudiansplitw
berfungsi untuk saya ketika saya memulai tmux viatmux attach
. Satu hal yang perlu diingat adalah bahwa.tmux.conf
(atau file yang ditentukan dengan-f
opsi) hanya digunakan jika tidak ada server yang sudah berjalan. Periksa apakah server berjalan melaluitmux ls
. Jika Anda ingin menjalankan perintah dari file ketika server sudah berjalan, maka lakukan seperti ini:tmux source-file /path/to/conf-file-that-creates-a-session-and-windows \; attach
(jika Anda menjalankan ini ketika tidak ada server Anda.tmux.conf
(atau-f
file) akan berjalan dulu makasource-file
file Anda ).tmux new -f myconfig
. Isi file konfigurasi itu hanyanew
diikuti olehsplitw
. Saya membunuh semua dan semua proses tmux sebelum saya mencoba baris perintahtmux -f myconfig
. Saya tidak mendapatkan dua panel. Saya benar-benar bingung di sini dengan apa yang harus dilakukan melewati titik ini (selain hanya menyerah pada tmux).-f
atau tidak,tmux
tanpa argumen perintah sama dengantmux new-session
(yang, untuk server baru, akan membuat sesi baru di atas apa pun yang dilakukan file konfigurasi Anda). Jendela pre-split Anda dibuat di sesi 0, tetapinew-session
perintah implisit membuat (dan melampirkan) sesi tambahan (sesi 1; cari di[1]
dalam baris status Anda). Gunakantmux -f myconfig attach
untuk menghindari membuat sesi baru yang menyembunyikan jendela pre-split Anda.Saya tidak yakin saya mengerti apa yang Anda maksud dengan "memasukkan secara manual", tetapi ini adalah bagaimana saya melakukannya. Saya menulis skrip "autostart" yang diluncurkan oleh manajer jendela saya. Itu mengandung:
di mana setiap file .session terlihat seperti ini:
Tunggu, masih ada lagi! Saya memiliki semakin banyak file .session yang saya muat dengan konsole:
di mana work_console.tabs terlihat seperti ini:
Lalu saya tekan F12 untuk meluncurkan konsole.
sumber
misalkan Anda ingin meluncurkan 3 tugas pemantauan server (di sini ping localhost) tidak perlu dipusingkan dengan file konfigurasi dan sesi yang disimpan. Itu semua bisa dilakukan dari command-line.
sumber
Saya menemukan teamocil sangat berguna untuk mengotomatiskan tmux windows / sesi.
Ini ditulis dalam Ruby sehingga Anda perlu menginstalnya.
Berikut ini contoh konfigurasi:
Anda dapat memiliki pengaturan jendela dan pemisahan.
sumber
Alternatif lain yang mirip dengan teamcoil adalah tmuxinator , ini pada pengembangan aktif dan bekerja dengan cukup baik. Ini juga direkomendasikan (dan agak ditinjau) pada tmux yang luar biasa : Pengembangan Bebas Tikus Produktif dari Rak Buku Pragmatis .
sumber
**
Lebih baik Simpan Sesi Anda!
** Saya menemukan bahwa untuk admin malas seperti saya, saya lebih suka menyimpan sesi tmux, daripada menghabiskan berjam-jam mencoba membangunnya dengan sempurna. Saya mengelola lebih dari 30 server, dan sesi tmux saya dinamis, dengan konfigurasi yang berubah setiap saat. Itu sakit di leher, sampai saya baru-baru ini menemukan tmux-menghidupkan kembali plugin ini hanya hebat. Cobalah. Saat ini, repositori Ubuntu memiliki tmux 1.8, plugin ini perlu 1.9, jadi Anda perlu melakukan upgrade secara manual
Setelah itu Anda dapat menginstalnya dengan
Kemudian dd baris ini ke bagian bawah ~ / .tmux.conf (jika ~ / .tmux.conf tidak tersedia, buat file kosong)
Saya juga menambahkan baris ini di akhir ~ / .tmux.conf sehingga plugin menyimpan sesi untuk semua program yang saya jalankan
Kemudian muat ulang lingkungan tmux.
Itu dia! Kamu selesai. Sekarang, jalankan tmux seperti biasa, ubah ukuran panel Anda, buat panel baru, buat sesi baru ... dll. Ketika Anda puas dengan konfigurasi yang Anda capai (di beberapa jendela dan beberapa sesi), cukup klik ctrl + b lalu ctrl + s untuk menyimpan sesi. Untuk menguji hasilnya, cukup bunuh semua tmux
Kemudian, jalankan lagi tmux
Kemudian, dari dalam tmux klik ctrl + b lalu ctrl + r (untuk mengembalikan) Secara ajaib, semua jendela, panel, dan sesi Anda dipulihkan dengan geometri dan pengaturan yang sama. Semoga ini bisa membantu.
sumber