Apakah ada cara untuk mengetahui indeks panel dari panel tertentu di Tmux?
Saya tahu saya bisa menjalankan sesuatu seperti:
tmux display-message -p "#{pane_index}"
tetapi itu hanya berfungsi pada panel aktif. Saya ingin ini berfungsi untuk panel apa pun yang dijalankan. Biasanya tentu saja sulit untuk menjalankan skrip dalam panel yang bukan panel aktif, tetapi Anda dapat jika Anda menggunakan :set-window-option synchronize-panes
untuk menyinkronkan input antara semua panel.
Bagaimana saya menggunakan ini?
Dalam pekerjaan saya, saya harus terhubung ke beberapa server identik di load balancer pada saat yang sama, yang saya lakukan dengan panel Tmux. Saya biasanya mengaktifkan fitur panel sinkronisasi untuk memungkinkan saya memiliki apa pun yang saya ketik secara identik dikirim ke setiap panel pada saat yang sama. Ini sangat bagus.
Hal yang saya temukan adalah bahwa saya ingin terhubung ke server dan melakukan sesuatu yang unik untuk setiap panel kadang-kadang, menggunakan "pane index" yang sama setiap kali. Misalnya, saya menjalankan perintah seperti ini:
ssh NODE_$(get_pane_number)
yang, ketika disinkronkan dan dijalankan di setiap panel, akan menjalankan perintah berikut di jendela dengan 4 panel:
ssh NODE_0
di panel 0
ssh NODE_1
di panel 1
ssh NODE_2
di panel 2
ssh NODE_3
di panel 3
Tentu saja saya bisa membuat skrip ini, tetapi itu hanya akan berfungsi dengan baik sebelum saya mulai menyinkronkan input. Ada saat-saat ketika saya ingin melakukan ini setelah saya mulai menyinkronkan input juga.
Anda bisa mendapatkan semua indeks panel serta banyak informasi lain tentang panel
Lihat
tmux(1)
FORMAT untuk mendapatkan daftar informasi yang bisa Anda dapatkan dan kerjakan.sumber
get_pane_number
yang benar-benar mengembalikan # yang tepat tanpa panel aktif.Membangun dua solusi yang diusulkan, saya menemukan fungsi ini bekerja untuk saya:
atau hal yang sama dimulai dengan indeks = 1
Ini bukan yang tercantik tetapi berfungsi dan saya bisa menjatuhkannya di saya
.bashrc
dan hanya menggunakan$I
kapan saja saya butuhkansumber