Bir anahtarın bağlamasını varsayılan ayarlarına sıfırlamanın doğrudan bir yolu yoktur; tmux sunucusu ilk kez başlatıldığında (in ) varsayılan bağlamaların (in key_bindings_init()
) başlatılması bir kez yapılır ve tek bir anahtarı sıfırlama mekanizması yoktur.server_start()
Daha önce beri yapılandırma dosyasından silindiğini bağlama özel bir tarafından geçersiz olduğunu bağlayıcı varsayılan yeniden kurmak için yapılandırma dosyasını kaynak eylemini istediğiniz istenen senaryo için, icat yöntemi (gerçi maalesef ayrıntılı) makul: unbind-key -a
, sonra tüm “varsayılan” bağlantıları yeniden kurun, sonra özel ciltlerinizi oluşturun (bazıları “varsayılan” bir bağlayıcıyı geçersiz kılabilir).
Bir sunucunun mevcut bağlantıları *list-keys
komutu ile çıkarılabilir ; bu, önerilen dosyanızı oluşturmanıza / korumanıza yardımcı olabilir , ancak geçerli bağlantıları değil, varsayılan bağlantıları çıkarmak için bir yola ihtiyacınız var ..tmux.reset.conf
* list-keys
Çıktısının şu anda doğrudan kullanılamadığı bazı durumlar vardır : noktalı virgül için bağlayıcı, bir tmux komut ayırıcısı olarak yorumlanmasını önlemek için ters eğik çizgiyle kaçış noktalı virgülünü ve tekli içinde çift tırnak kullanan argümanları olan bağları kaldırmasını gerektirir. tırnak (varsayılan bağlamaların hiçbiri böyle değildir), çift tırnak içinde çift tırnak olarak çıkar.
Varsayılan ciltleri elde etmek için, minimum bir konfigürasyona sahip (yani özel ciltleme yok) geçici bir sunucuya ihtiyacınız vardır, böylece list-keys
çıktısını alabilirsiniz. Çalıştırabileceğiniz tmux sunucularının sayısında bir sınır yoktur , ancak her birinin farklı bir soket yol adı kullanması gerekir; -L
ve -S
tmux seçenekleri de soket adını (belirtmek için kullanılabilir $TMPDIR/tmux-$UID
. adında bir soket üzerinde yeni bir sunucu) konuş, ya da tam soket yol adını So (veya başlangıç temp
, bunu kullanırsınız:
tmux -L temp …
Emin senin kullanmaz hale getirmek için .tmux.conf
, kullandığınız -f
okumak için söylemek /dev/null
(her zaman boş olan özel bir dosyayı):
tmux -f /dev/null -L temp …
Not : Bu, /etc/tmux.conf
böyle bir dosyanın varlığının işlenmesini engellemez ; Bu “sistem konfigürasyon dosyası” nın yolu kodlanmış ve onu atlamak için bir seçenek yok (kodun eklenmesi).
Normalde, new-session
sunucuyu gerçekten başlatmak için bir komut gerekir , ancak herhangi bir oturum istemiyoruz, yalnızca başlatılmış bir sunucuyu sorgulamak istiyoruz. start-server
Herhangi oturumları yaratmadan bir sunucu başlar: komut yok sadece.
tmux -f /dev/null -L temp start-server …
Şimdi, sadece "query" komutumuzu eklememiz gerekiyor ( list-keys
bu durumda):
tmux -f /dev/null -L temp start-server \; list-keys
Not : Kabuğun bir tmux komut ayırıcısı olmasını istediğimizden, kabuğun bir kabuk komut ayırıcı olarak işlem görmesini önlemek için noktalı virgülün kaçması veya alıntılanması gerekir .
Korunacak oturum olmadığından, list-keys
komutu çalıştırmayı bitirdikten sonra sunucu otomatik olarak kapanacaktır .
Böylece, dosyalarınızı .tmux.reset.conf
geçici olarak kaldırma konusunda endişelenmenize gerek kalmadan .tmux.conf
(yalnızca varsayılan bağlantıları görebilmeniz için) ve mevcut sunucuları kapatmadan endişelenmenize gerek kalmadan , bunun gibi bir komut kullanabilirsiniz .
run-shell
Komut senkronize olsaydı, böyle bir çağrıyı source-file
, statik bir dosyaya (sizin .tmux.reset.conf
) koymak yerine, konfigürasyon dosyasına (sonradan işleyeceğiniz geçici bir dosyaya yakalayarak) gömebilirsiniz . Bu, her zaman geçerli tmux sürümünüzden varsayılan bağlayıcıları kullanmanıza izin verir (varsayılan bağlayıcılar zaman zaman değişir). Ne yazık ki, run-shell
komutun tamamlanması sonraki komutlarla ilgili olarak şu anda asenkrondir (bir run-shell
komuttan sonra gelen komutlar genellikle tarafından oluşturulan süreç run-shell
bitirme şansına sahip olmadan önce çalışacaktır ).