Tmux e ZSH prompt personalizzati: bug con nome window

Ho personalizzato il mio prompt ZSH con oh-my-zsh per renderlo più leggibile e aggiungere informazioni su git se sono in un repository.

Esempio :
[email protected] [~/docs] %
[email protected] [~/src/nicest] master % (in un repository di git)

Funziona bene ma ho alcuni bug con tmux e il nome della window. Ancora visualizza un valore non sensibile e non posso distriggersrlo con automatic-rename off (non funziona, il nome della window cambia dopo each command), per il primo esempio tmux usa ~/docs per il nome della window.

Non sono sicuro di come posso risolverlo, vorrei mantenere il mio prompt zsh come lo è, se può cambiare, ma vorrei capire where è il problema?

Un'altra soluzione potrebbe essere quella di ridefinire il command settile (da questa risposta ), ma non sono sicuro di come farlo nel modo giusto.

Ho preso una occhiata a oh-my-zsh e ho trovato un sospetto probabile .

Quando il valore della variabile di ambiente TERM inizia con la screen (che dovrebbe essere sotto sia schermo che tmux ), utilizza una sequenza di controllo del terminal dello schermo per impostare il nome della window

  • (poco prima di visualizzare un prompt di shell)
    la parte più sinistra del "tilde compressed" path della directory di lavoro corrente ( .. seguita dagli ultimi 13 caratteri o l'integer path se less di 15 caratteri) e
  • (poco prima di avviare un command)
    la prima "parola" del command circa-da-eseguire (non contando ssh , sudo e pochi altri).

Sembra che sta lavorando in questo modo per te (hai detto che la tua window denominata cambiata in ~/docs quando si trovava in quella directory). Se si desidera distriggersre questa ridenominazione automatica, è ansible distriggersrlo completamente impostando il parametro shell shell DISABLE_AUTO_TITLE su true nel proprio .zshrc :

 DISABLE_AUTO_TITLE=true 

Se l'hai appena impostato in una shell intertriggers, finirà con una string vuota per il nome della window corrente, ma oh-my-zsh smette di aggiornare la window prima di each prompt e di command in quella shell shell (deve essere in il tuo .zshrc per influenzare tutte le nuove istanze shell).

So che la risposta di cui sopra ti offre una soluzione, ma un'altra è semplicemente aggiungere questa opzione il tuo ~ /. Tmux.conf

 set-option -g allow-rename off 

Ho incontrato lo stesso problema, che è il nome della window di tmux è stato modificato anche impostando in. Tmux.conf:

 set-window-option -g automatic-rename off 

Grazie alla risposta di Chris. Il mio nome della window di tmux non è stato rinominato automaticamente dopo che ho cambiato:

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

a:

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

Se si desidera distriggersre la ridenominazione automatica solo per determinate windows, è ansible utilizzare:

  set -t [WINDOW_NUMBER] automatic-rename off 

Disabilita la ridenominazione automatica in una window specifica in un'altra session:

  set -t [SESSION]:[WINDOW_NUMBER] automatic-rename off