Saat ini tidak ada cara langsung untuk mengatur ulang ikatan kunci ke standarnya; inisialisasi binding standar (dalam key_bindings_init()
) dilakukan sekali ketika server tmux pertama kali dimulai (dalam server_start()
), dan tidak ada mekanisme untuk mengatur ulang satu kunci.
Untuk skenario yang Anda inginkan di mana Anda ingin tindakan sumber file konfigurasi Anda untuk membangun kembali default mengikat yang sebelumnya diganti oleh kebiasaan yang mengikat yang sejak itu telah dihapus dari file konfigurasi Anda, metode yang Anda merancang wajar (meskipun sayangnya verbose): unbind-key -a
, kemudian bangun kembali semua ikatan "default", lalu buat ikatan kustom Anda (beberapa di antaranya mungkin mengesampingkan ikatan "default").
Binding server saat ini dapat diekstraksi dengan list-keys
perintah * ; ini dapat membantu menghasilkan / memelihara .tmux.reset.conf
file yang Anda usulkan , tetapi Anda perlu cara untuk mengekstrak binding default , bukan binding saat ini .
* Ada beberapa situasi di mana output list-keys
saat ini tidak secara langsung dapat digunakan: pengikatan untuk titik koma membutuhkan titik koma yang lolos dengan garis miring terbalik agar tidak ditafsirkan sebagai pemisah perintah tmux , dan setiap binding yang memiliki argumen yang menggunakan tanda kutip ganda di dalam single tanda kutip (tidak ada ikatan default seperti ini) akan keluar sebagai tanda kutip ganda di dalam qoutes ganda .
Untuk mendapatkan binding standar, Anda memerlukan server sementara dengan konfigurasi minimal (yaitu tidak ada binding kustom) sehingga Anda dapat menangkap list-keys
hasilnya. Tidak ada batasan jumlah server tmux yang dapat Anda jalankan, tetapi masing-masing harus menggunakan socket pathname yang berbeda; opsi -L
dan -S
tmux dapat digunakan untuk menentukan nama socket (dalam $TMPDIR/tmux-$UID
atau nama path socket penuh. Jadi, untuk berbicara dengan (atau memulai) server baru pada socket bernama temp
, Anda akan menggunakan ini:
tmux -L temp …
Untuk memastikan itu tidak menggunakan Anda .tmux.conf
, Anda gunakan -f
untuk menyuruhnya membaca /dev/null
(file khusus yang selalu kosong):
tmux -f /dev/null -L temp …
Catatan : ini tidak mencegah pemrosesan /etc/tmux.conf
, jika file tersebut ada; path ke "file konfigurasi sistem" ini adalah kode-keras dan tidak ada opsi untuk mem-bypass-nya (singkat menambal kode).
Biasanya, Anda memerlukan new-session
perintah untuk benar-benar memulai server, tetapi kami tidak ingin sesi apa pun, hanya server yang diinisialisasi untuk kueri. The start-server
perintah tidak hanya itu: mulai server tanpa membuat sesi apapun.
tmux -f /dev/null -L temp start-server …
Sekarang, kita hanya perlu menambahkan perintah "query" kami ( list-keys
dalam hal ini):
tmux -f /dev/null -L temp start-server \; list-keys
Catatan : titik koma perlu diloloskan atau dikutip untuk mencegah shell memperlakukannya sebagai pemisah perintah shell karena kami ingin itu menjadi pemisah perintah tmux .
Karena tidak ada sesi untuk dipertahankan, server akan keluar secara otomatis setelah selesai menjalankan list-keys
perintah.
Jadi, Anda dapat menggunakan perintah seperti ini untuk menghasilkan sebagian besar file Anda .tmux.reset.conf
tanpa harus khawatir untuk sementara waktu menghapus .tmux.conf
file Anda (untuk membiarkan Anda melihat hanya binding standar) dan tanpa harus mematikan server yang ada.
Jika run-shell
perintah itu sinkron, Anda bisa menyematkan panggilan seperti ini di file konfigurasi Anda (menangkap ke file sementara yang kemudian Anda proses dengan source-file
) daripada memiliki file statis (Anda .tmux.reset.conf
). Itu akan membiarkan Anda selalu menggunakan binding default dari versi tmux Anda saat ini (binding default sesekali berubah). Sayangnya, penyelesaian run-shell
perintah saat ini tidak sinkron sehubungan dengan perintah berikutnya (perintah yang datang setelah run-shell
perintah biasanya akan berjalan sebelum proses melahirkan run-shell
telah memiliki kesempatan untuk menyelesaikan).