Bir tmux penceresi için varsayılan bir başlık ayarlayabilir miyim?


38

Şu anda başlık varsayılan olarak reattach-to-user-namespace(OS X), bu oldukça can sıkıcı bir durum. tmux.confBaşka bir varsayılan başlık almak için ekleyebileceğim bir seçenek var mı ?

Olmazsa, nasıl yeni bir pencere oluşturan ve daha sonra bana bir isim soran anahtar bir bağlayıcı oluşturabilirim?



Bu, varsayılan adlarla değil, otomatik olarak yeniden adlandırmayı (zaten yaptığım) devre dışı bırakmakla ilgili değil mi?
js kodlayıcı

Sanırım haklısın, üzgünüm!
Fredrik Pihl

Kullanıyorum set-option -g default-command "reattach-to-user-namespace -l zsh"ve çoğu zaman zshistendiği gibi adında bir pencere çıkıyor . Bilinmeyen nedenlerden dolayı, bazen isim değişmez ve pencere çağırılır reattach-to-user-namespace. Bunun ne zaman / niçin olduğu ile ilgili bir model fark etmedim, ancak konfigürasyonumda ince bir böcek veya bir şey olabilir gibi görünüyor.
Jim Stewart

Pencere numarasını isme koymanın en iyi yolu nedir?
DanCat

Yanıtlar:


43

Tüm yeni pencerelere uygulanan genel bir varsayılan pencere adı yoktur; Komutun ilk “sözcüğü” nün (bir kısmı) varsayılandır (veya komut yoksa varsayılan kabuk). Pencereleriniz muhtemelen varsayılan değerlerdir, reattach-to-user-namespaceçünkü bu sizin default-commanddeğerinizin ilk ilginç kısmıdır .

Etrafında biraz olurdu, ama varsayılan komutunuzu bir kabuk betiğine koyabilir ve default-commandbunun yerine o betiği gösterebilirsiniz . Bu yapılandırmada, varsayılan pencere adı (açık bir komut olmadan oluşturulan pencereler için), kabuk komut dosyasını ne adlandırdıysanız, olur.

Aksi takdirde, bir pencereyi manuel olarak adlandırmanın / yeniden adlandırmanın birkaç yolu vardır:

  • Ile oluşturma zamanında -n:

    new-window -n 'some name'
    

    Seçtiğiniz cbir "varsayılan adı" dahil etmek için yeniden bağlayabilirsiniz (bir pencere oluşturmak için kullanılan varsayılan anahtar):

    bind-key c new-window -n 'default name'
    
  • Mevcut bir pencereyi yeniden adlandırın:

    rename-window 'new name'
    

    Ayrıca, ,sizden yeni bir ad isteyecek ve pencereyi yeniden adlandıracak varsayılan bir bağlayıcı (Önek ) vardır.

  • Bir pencereyi bölmenin tty'sine gönderilen “escape dizisi” üzerinden yeniden adlandırın:

    # E.g. in a shell:
    printf '\033kWINDOW_NAME\033\\'
    

“Bana yeni bir pencere için ad sor” komutunu şöyle yapabilirsiniz (pencereyi oluşturmadan önce veya sonra sormak için):

bind-key C command-prompt -p "Name of new window: " "new-window -n '%%'"

bind-key C new-window \; command-prompt -p "Name for this new window: " "rename-window '%%'"

2
Vay, bu gerçekten epik bir cevap, çok teşekkürler! :)
js-kodlayıcı

7
Bir varsayılan başlık ayarlamak için bir yol buldu: set-option -g default-command "tmux rename-window base; reattach-to-user-namespace -l zsh"varsayılan başlık ayarlayan base. Bunu cevabınıza eklemek isteyebilirsiniz. :)
js-coder

Çözümünüz tmuxinator gibi tmux yöneticilerini kırar. Bu durumda, sekmeler yeniden adlandırılmaz
SystematicFrank 13/13

4

tmux, ilk komutu pencere adı olarak seçer.

"İ" nin varsayılan başlık olmasını istediğini söyle, bunu bu şekilde kandırabilirsin.

set-option -g default-command "i > /dev/null 2>&1; reattach-to-user-namespace -l bash"

Bu daha iyi

set-option -g default-command "tmux rename-window i; reattach-to-user-namespace -l bash"

çünkü bir pencere başlığını el ile ayarladıktan sonra bir bölme oluşturursanız, başlık yeniden "i" olarak yeniden adlandırılır.


1

Chris'in kullanarak pencere başlığını ayarlama konusundaki cevabına ek olarak, pencere adı olarak new window -n 'somename'boş bir dize de sağlayabilirsiniz ''. Bu şekilde, varsayılan kısayolu (önek + c) kullanabilirim ve geçici pencereler için bir ad bulmam gerekmez, ancak gerektiğinde bunları yeniden adlandırabilirim:

bind-key c new-window -n ''


1

Bir cevaptan çok bir cevap değil:

İle bir sembolik bağlantı oluşturdum

sudo ln -s /usr/local/bin/reattach-to-user-namespace /usr/local/bin/pbash

Ve şimdi pbashvarsayılan başlık olarak gösteriliyor .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.