Tmux ve ZSH özel istemi: pencere adında hata


43

ZSH komut istemimi oh-my-zsh ile daha kolay okunur hale getirmek ve bir havuzdayken git hakkında bilgi eklemek için özelleştirdim .

Örnek:
bob@inf [~/docs] %
bob@inf [~/src/nicest] master %(git deposunda)

İyi çalışıyor ama bazı hatalar tmuxve pencere adı var. Yine de anlamsız bir değer gösterir ve bunu devre dışı bırakamıyorum automatic-rename off(sadece çalışmaz, her komuttan sonra pencere adı değişir), ~/docspencere adı için ilk tmux kullanımı .

Nasıl düzeltebileceğime emin değilim, zsh komutumu olduğu gibi tutmak isterim, değişiklik yapabilir ancak sorunun nerede olduğunu anlamak ister misiniz?

Başka bir çözüm de komutu yeniden tanımlamak olabilir settile( bu cevaptan ) ancak nasıl doğru şekilde yapılacağından emin değilim.

Yanıtlar:


76

Oh-my-zsh'a bir göz attım ve olası bir şüpheli buldum .

TERM çevre değişkeninin değeri ile başlatıldığında screen(her ikisi altında olan gerektiği ekran ve tmux ), bir kullanan ekran için pencere adı için terminal kontrol sekansı

  • (bir kabuk bilgi istemi görüntülemeden hemen önce)
    geçerli çalışma dizininin "tilde sıkıştırılmış" yolunun en solundaki bölümü ( ..ardından en son 13 karakter veya 15 karakterden azsa tüm yol)
  • (sadece bir komut başlamadan önce)
    hakkında-hedefli olacak komutunun ilk “kelime” (saymazsak ssh, sudove birkaç diğerleri).

Sizin için bu şekilde çalışıyor gibi gözüküyor (pencerenizin ~/docsbu dizinde bulunduğunuz tarihte değiştiğini söylediniz). Bu otomatik yeniden adlandırmayı devre dışı bırakmak istiyorsanız, DISABLE_AUTO_TITLE kabuk parametresini aşağıdaki truegibi ayarlayarak tamamen devre dışı bırakabilirsiniz .zshrc:

DISABLE_AUTO_TITLE=true

Bunu yalnızca etkileşimli bir kabukta ayarlarsanız, geçerli pencerenin adı için boş bir dize ile sonuçlanırsınız, ancak oh-my-zsh, bu kabuk örneğinde her komut isteminden ve komuttan önce pencereyi güncellemeyi durduracaktır (içinde olması gerekir) senin .zshrc) tüm yeni kabuk örneklerini etkileyecek.


4
Bu mükemmel bir cevap. Doğru, bilgilendirici, özlü ve noktaya. Üstelik, asıl sorunun cevabına ek olarak bir çözüm de sunar (“sorunun nerede olduğunu anlamak”). Sormak için zaman ayıran kimsenin bunu cevap olarak işaretlememesi rahatsız edici.
dmondark

Teşekkür ederim teşekkür ederim teşekkür ederim teşekkür ederim teşekkür ederim
Jezen Thomas

.zshrctüm kullanıcılar için bir dosya nerede ?
andilabs

29

Yukarıdaki cevabın size bir çözüm sağladığını biliyorum, fakat bir diğeri ~ / .tmux.conf

set-option -g allow-rename off

Bu sadece tmux'u etkilediği için daha iyi bir çözüm.
Paul Oliver,

Bu ayarda bile, birleştirme bölmesi ve ardından bölme bölmesi pencere adını sıfırlar :(
djsadinoff

6

Aynı sorunla tanıştım, ki.

set-window-option -g automatic-rename off

Teşekkürler Chris'in cevabı. Değiştirildikten sonra tmux pencere ismim otomatik olarak yeniden adlandırılmadı:

set -g default-terminal "screen-256color"

için:

set -g default-terminal "xterm-256color"

0

Otomatik yeniden adlandırmayı yalnızca belirli bir pencere için devre dışı bırakmak istiyorsanız, aşağıdakileri kullanabilirsiniz:

 set -t [WINDOW_NUMBER] automatic-rename off

Otomatik yeniden adlandırma, belirli bir pencerede başka bir oturumda devre dışı bırakın:

 set -t [SESSION]:[WINDOW_NUMBER] automatic-rename off
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.