Membuat konfigurasi tmux yang dapat diluncurkan?

24

Saya sering melakukan hal yang sama dengan tmux:

  1. cd ke direktori yang diberikan.
  2. tmux
  3. Ganti nama jendela dengan apa yang saya lakukan.
  4. Membagi jendela secara vertikal 50%.
  5. Mulai satu proses di jendela kiri.
  6. Mulai proses lain di jendela kanan.
  7. Keuntungan.

Apakah ada cara bagi saya untuk secara otomatis meluncurkan semua ini sehingga saya dapat menjalankan satu perintah dan mendapatkan jendela yang saya cari?

Naftuli Kay
sumber
Bagaimana dengan alias shell?
Marco

Jawaban:

22

Archwiki menyelamatkan hari! Inisialisasi Sesi pada halaman tmux memberikan contoh.

Yang mengatakan, alih-alih memulai tmux sebagai tmux, tmux new -s nameakan memberi nama sesi ketika dimulai bukannya memberikan nomor.

Inisialisasi sesi


Anda dapat meminta tmux membuka sesi dengan jendela yang dimuat sebelumnya dengan memasukkan perincian itu di ~ / .tmux.conf Anda:

new  -n WindowName Command
neww -n WindowName Command
neww -n WindowName Command

Untuk memulai sesi dengan jendela terbagi (beberapa panel), masukkan perintah splitw di bawah neww yang ingin Anda bagi; demikian:

new  -s SessionName -n WindowName Command
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1 
selectp -t 0

akan membuka 2 jendela, yang kedua akan dinamai foo / bar dan akan dibagi secara vertikal menjadi setengah (50%) dengan foo berjalan di atas bar. Fokus akan berada di jendela 2 (foo / bar), panel atas (foo).

Catatan: Penomoran untuk sesi, jendela dan panel dimulai dari nol, kecuali Anda telah menentukan indeks dasar 1 di .conf Anda

Untuk mengelola beberapa sesi, sumber file sesi terpisah dari file conf Anda:

# initialize sessions
bind F source-file ~/.tmux/foo
bind B source-file ~/.tmux/bar
rampok
sumber
6

Jawaban Rob luar biasa dan menjelaskan cara menangani sesi dari dalam tmux itu sendiri. Sekarang, jika Anda tidak keberatan menggunakan alat pihak ketiga, tmuxinator adalah proyek hebat yang membantu membuat dan mengelola sesi dengan mudah .

Setiap sesi dikendalikan oleh file konfigurasi yang memungkinkan Anda untuk menentukan semua jendela dan panel Anda bersama dengan tata letak dan perintah default untuk dijalankan di dalamnya. Ini juga memungkinkan Anda untuk menentukan direktori proyek default, soket tertentu, dan daemon yang harus dijalankan (misalnya mysql). Selain itu, ini juga menyediakan metode yang mudah untuk dilampirkan pada mereka: jalankan saja mux [session-name]dan itu akan memulai sesi atau melampirkannya jika sudah berjalan. Saya telah menggunakannya untuk sementara waktu sekarang dan menyukainya (terima kasih aziz !).

https://github.com/aziz/tmuxinator

JC Yamokoski
sumber