Come modificare la nuova directory di default della finestra dall'interno di tmux


43

Di recente sono passato dallo schermo GNU a tmux .
Lo trovo abbastanza simile ma con un supporto maggiore (sono passato a causa di problemi con il tempo di fuga in neovim - la risoluzione era solo per tmux).

Sfortunatamente in tmux non riesco a trovare un comando simile a questo:

screen -X eval "chdir $(some_dir)"

Il comando sopra ha cambiato la directory predefinita per la nuova finestra / schermo / riquadro dalla schermata GNU, quindi quando ho premuto Ctrl+ a(simile a tmux Ctrl+ b) - si apriva una nuova finestra nella $(some_dir)directory.

C'è qualcosa di simile in tmux?

RISPOSTA:
Ho usato la risposta @Lqueryvg e l'ho combinata con il suggerimento di @Vincent Nivoliers da un commento e questo mi ha dato un nuovo binding per un comando attach -c "#{pane_current_path}"che imposta la mia directory corrente come predefinita.
Grazie.


Potresti usare la seconda risposta a questa domanda
Vincent Nivoliers l'

Grazie, è utile new-window -c "#{pane_current_path}"funziona ma quello di cui ho bisogno è impostare il percorso in modo permanente, ovvero: sto lavorando a un progetto in / aaa / bbb, ma in qualche modo io quando cambio percorso per dire / ccc / ddd e inizio nuovo con Cb e c, voglio atterrare ancora una volta in / aaa / bbb. Riesci a pensare a una soluzione a questo?
lewiatan

Personalmente sto bene con l'aggiunta delle ultime tre righe nella mia .tmux.conf. In questo modo devo solo navigare una volta nella cartella e quindi creare le mie finestre / dividere da lì, ma ammetto che questa non è una soluzione al tuo problema, ecco perché non ho pubblicato una risposta!
Vincent Nivoliers l'

Risposte:


62
  1. Inizia tmuxcome segue:

    (cd /aaa/bbb; tmux)
    

    Ora, qualsiasi nuova finestra (o riquadro) creata verrà avviata nella directory /aaa/bbb, indipendentemente dalla directory corrente del riquadro corrente.

  2. Se si desidera modificare la directory predefinita quando tmuxè attiva e in esecuzione, utilizzare attach-sessioncon -c.

    Citando dalla tmuxpagina man per attach-session:

    -c will set the session working directory (used for new windows)
    to working-directory.
    

    Per esempio:

    • Ctrl+b :

    • attach -c /ddd/eee

    Le nuove finestre (o riquadri) verranno ora avviate nella directory /ddd/eee, indipendentemente dalla directory del riquadro corrente.


7
La seconda opzione è esattamente quello che volevo. Userò attach -c "#{pane_current_path}"quale sarebbe lo stesso di quello che ho avuto sullo schermo. Grazie.
Lewiatan,

Sì! attach -cè esattamente quello che stavo cercando. Grazie
Byron Mansfield il

3

Per coloro che potrebbero cercare un riferimento un po 'più di quello fornito dalla risposta selezionata, c'è stata un'altra buona risposta a questa domanda su StackOverflow:

https://stackoverflow.com/questions/27307815/how-to-change-the-starting-directory-of-a-tmux-session

Il che fornisce modi per farlo senza uscire dalla sessione, e per coloro che usano tmux in modo multi-sessione (come me), la risposta sopra offre un contesto un po 'migliore su come attach/ attach-sessionfunziona.

Vedi entrambe le risposte disponibili per diversi modi in cui possono essere utilizzate. Ho trovato entrambi utili / perspicaci.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.