Bagaimana cara mengatur tmux sehingga dimulai dengan windows tertentu dibuka?
shell
production-environment
tmux
satoru
sumber
sumber
bash --rcfile
untuk mendapatkan shell yang bagus di linux ilmiah dengan versi devtools khusus diaktifkan. Akan meninggalkan ini di sini jika seseorang mencoba melakukan hal yang sama.tmux new-window -n "git lg" "scl enable devtoolset-3 'bash --rcfile <(echo \"source \"$HOME/.bashrc\";cd ~/workspace/coolproject/;git lg\")'"
vim
ada singkatan dari perintah yang akan dieksekusi di panel jendela pertama (dan pada saat itu saja) Jika Anda ingin memberi nama sesi 'vim' maka ya, Anda benar, Anda harus menggunakan-s
benderanya. Sintaks keseluruhan:tmux new-session -d -s SessionName -n WindowName Command
Saya sedang mencoba membuat grid panel yang kompleks dan harus berurusan dengan switching dan split panel berulang-ulang. Inilah pembelajaran saya:
Membuat Anda memulai dengan sesi baru. Untuk membaginya gunakan horizontal atau vertikal
split-window -h
atau-v
selanjutnya, seperti itu:Membuat 3 panel, seperti ini:
Untuk menjalankan perintah di panel itu, cukup tambahkan dengan
send-keys 'my-command'
perintah danC-m
yang menjalankannya:Dan sesi yang dihasilkan akan terlihat seperti itu.
Sekarang saya mencoba lagi membagi-bagi panel kiri bawah, jadi beralih menggunakan kembali
last-pane
, atau di windows yang lebih kompleks, dengan diselect-pane -t 1
mana1
adalah jumlah panel agar dibuat dimulai dengan0
.Apakah itu. Pada dasarnya mengetahui jalan keluar Anda
split-window
danselect-pane
itulah yang Anda butuhkan. Ini juga berguna untuk lulus dengan-p 75
ukuran persentase panel yang dibuat olehsplit-window
untuk memiliki kontrol lebih besar atas ukuran panel.Yang menghasilkan sesi tampak seperti itu
Harapan yang membantu
tmux
peminat di masa depan.sumber
-h -p 30
membuat panel horizontal dengan 30% dari ketinggian yang tersedia;-v -p 75
sama untuk vertikal dengan lebar 75%.\:
? Saya telah melihat skrip bekerja dengan dan tanpa ini.\;
meneruskan tanda titik koma ke tmux, bukan bash, memungkinkan perintah untuk dikirim dengan satu panggilan ke tmux. stackoverflow.com/questions/20913198/…Anda dapat sumber sesi yang berbeda dari
.tmux.conf
seperti Anda :Dan kemudian format sesi seperti yang Anda butuhkan:
Ini akan membuka 2 jendela, yang kedua akan diberi nama foo / bar dan akan dibagi secara vertikal menjadi setengah (50%) dengan foo berjalan di atas bar. Fokus ada di jendela 2 (foo / bar), panel atas (foo).
Anda kemudian dapat memulai sesi tmux yang Anda sukai (dalam hal ini, session1) dengan PrefixShifts
sumber
Prefix Shift S
saya harus berada di tmux dan mencari file Anda mencoba untuk memulai sesi baru yang tmux tidak suka dan tidak akan lakukan kecuali Anda memaksanya.Gunakan tmuxinator - memungkinkan Anda untuk mengkonfigurasi banyak sesi, dan Anda dapat memilih mana yang akan diluncurkan pada waktu tertentu. Anda dapat meluncurkan perintah di jendela atau panel tertentu dan memberikan judul ke windows. Berikut adalah contoh penggunaan dengan mengembangkan aplikasi Django .
Contoh file konfigurasi:
Lihat README di tautan di atas untuk penjelasan lengkap.
sumber
lihat @ https://github.com/remiprev/teamocil
Anda dapat menentukan struktur Anda menggunakan YAML
sumber
sesi 1
buat alias di .bashrc
sumber
neww
? Saya tidak dapat menemukan perintah itu di mana pun. ~ Kelihatannya seperti itunew-window
, meskipun saya tidak mengerti mengapa Anda menggunakan bentuk panjang dan pendek.Pertama saya mendapat pendekatan dari @jasonwryan tetapi jika Anda memiliki lebih dari 2 konfigurasi, ini bisa membingungkan.
Jadi saya membuat fungsi alias:
Dalam
~/.tmux/
saya punya beberapa sesi untuk banyak kegunaan. Misalnya saya bekerja untuk perusahaan yang berbeda yang saling memiliki lingkungan pengembang. Jadi dengan fungsi alias di atas saya cukup memanggil:tmx company1
dan memuat konfigurasi yang saya butuhkan.Pembaruan: Tujuan dari "$ 2" setelah
tmux
perintah adalah, agar Anda dapat melewati argumen tmux tambahan.sumber
no server running on /tmp/tmux-1000/default
). Itu sebabnya saya perlu memperbaiki perintahtmux new-session
. Ref github.com/fatso83/dotfiles/commit/…Dari skrip "get.all" saya, yang saya panggil setiap pagi untuk menjalankan banyak pekerjaan "get.XXX" berikutnya untuk menyegarkan perangkat lunak yang saya lacak. Beberapa dari mereka berhenti secara otomatis. Yang lain membutuhkan lebih banyak interaksi setelah mendapatkan selesai (seperti meminta untuk membangun emacs).
sumber
Jika Anda hanya ingin membagi layar menjadi 2 panel (katakan secara horizontal), Anda dapat menjalankan perintah ini (tidak diperlukan skrip tmux atau shell):
Layar Anda akan terlihat seperti ini:
sumber
Dan ini adalah bagaimana saya melakukannya:
Saya punya satu file untuk setiap proyek saya. Anda juga dapat mengelompokkan mereka untuk memiliki beberapa untuk pekerjaan beberapa untuk proyek hobi.
Anda juga dapat memindahkannya ke
~/bin
folder, menambahkannya kePATH
dan memberitmux_my_awesome_project
nama. Maka Anda akan dapat menjalankannya dari setiap tempat.sumber
Ini bekerja untuk saya. Membuat 5 jendela dengan nama yang diberikan dan memilih otomatis ke
home
jendela.sumber
Coba bro , ini adalah bootstrapper proyek.
Ini memberikan apis mudah untuk berinteraksi
tmux
.Itu terlihat seperti ini:
Untuk meluncurkan proyek, yang perlu dilakukan adalah menjalankan perintah berikut -
bro start <project_name>
Lihat screencast di bawah ini, ini menunjukkan cara memulai
bro
dan menggunakantmux
apinya.https://user-images.githubusercontent.com/8296449/50532502-2cf3e400-0b6e-11e9-84af-c5f77a04e5cc.gif
sumber
Plugin tmux-continuum akan secara otomatis menyimpan sesi tmux Anda dan memuatnya saat berikutnya tmux dimulai, akan lebih mudah untuk diatur daripada beberapa solusi skrip khusus di sini.
Untuk menyimpan sesi Anda sesuai permintaan, Anda dapat menggunakan plugin tmux-resurrect . tmux-resurrect juga diperlukan untuk menjalankan tmux-continuum
sumber
Ada plugin tmux untuk ini.
Lihat tmux-bangkit kembali
Atau tmux-kontinum
sumber
Anda dapat menggunakan kait tmux untuk menjalankan perintah saat sesi baru dibuat. Secara khusus, ini dicapai dengan menggunakan
session-created
kail.Misalnya, untuk membagi layar tiga cara dengan htop berjalan di kanan bawah Anda dapat menambahkan baris berikut ke
~/.tmux.conf
file Anda :Keuntungan dari metode ini adalah Anda tidak harus menjalankan tmux dengan cara khusus (yaitu, skrip shell atau alias) untuk mendapatkan hasil yang diinginkan. Anda juga dapat menggabungkan ini dengan yang
tmux new-session -A -s mysession
dijelaskan dalam jawaban lain ini sehingga perintah kait hanya dijalankan ketika Anda pertama kali membuat sesi dan bukan pada lampiran berikutnya.Fitur ini ditambahkan oleh d15d54c2c pada tahun 2016. Rilis pertama yang menyertakannya adalah 2.4.
sumber
Anda harus menentukannya di file konfigurasi tmux Anda (
~/.tmux.conf
), misalnya:(membuka satu sesi dengan 2 jendela dengan mocp diluncurkan di pertama dan mutt di kedua, dan sesi terpisah dengan 3 jendela kosong).
sumber
Saya sudah membuat skrip ini . Tidak perlu tmuxinator, ruby atau yang lainnya. Ini hanya skrip bash, dapat dikonfigurasi:
File bernama config harus berisi sesuatu seperti ini:
dan kode bash seharusnya:
sumber
tmux start_server
tidak memulai server sendiri. Lihat github.com/tmux/tmux/issues/182Saya hanya mencoba menggunakan semua ide di halaman ini dan saya tidak suka ide-ide itu. Saya hanya ingin solusi yang memulai tmux dengan satu set jendela spesifik ketika terminal saya dibuka. Saya juga ingin itu menjadi idempoten, yaitu membuka jendela terminal baru mengambil alih sesi tmux dari yang sebelumnya.
Solusi di atas sering cenderung membuka beberapa sesi tmux dan saya ingin hanya satu. Pertama, saya menambahkan ini ke
~/.bash_profile
:kemudian saya menambahkan yang berikut ini ke
~/.tmux.conf
:sekarang setiap kali saya memulai terminal atau memulai tmux atau apa pun, saya menyambungkan kembali ke pengaturan yang ada yang saya inginkan (nama sesi
default
), atau membuat sesi baru dengan pengaturan itu.sumber
tmux start_server
tidak memulai server sendiri. Lihat github.com/tmux/tmux/issues/182tmuxp mendukung konfigurasi sesi JSON atau YAML dan API python. File konfigurasi tmuxp sederhana untuk membuat sesi baru dalam sintaks YAML adalah:
sumber
Script ini memulai sesi dengan nama "e" dan tiga jendela
sumber