za pomocą zmiennych środowiskowych w plikach tmux.conf

12

Czy można użyć zmiennej środowiskowej w pliku tmux.conf? Próbuję ustawić domyślną ścieżkę do zmiennej środowiskowej. Obecnie próbuję:

set -g default-path $MYVAR

dalej chciałbym sprawdzić, czy $ MYVAR jest już ustawiony, aby móc:

if($MYVAR == "") set-environment -g MYVAR /somepath/

Jakieś pomysły?

Cyfrowe moce
źródło

Odpowiedzi:

12

Tak, wygląda na to, że można rozszerzyć zmienne powłoki w .tmux.confpliku. Wygląda na to, że nie jest to wymagane, ale warto je zacytować, szczególnie. Udało mi się to teraz zrobić z opcjami paska stanu.

# In ~/.tmux.conf:
set -g status_left "$MYVAR etc: "

$ export MYVAR="Shell stuff"
$ tmux

Nie znam żadnych konfiguracji „if” ani innych struktur kontrolnych w konfiguracji, ale mogą być.

Caleb
źródło
Nie mogę tego uruchomić w pliku skryptu tmux. Jestem pewien, że $ MYVAR jest ustawiony, a ja uruchamiam skrypt i kończy się niepowodzeniem. set -g default-path "$ MYVAR" split-window -h dzieli okno, ale domyślna ścieżka nie jest ustawiona na $ MYVAR
Digital Powers
2
ok, znalazłem, gdzie wszystko się psuje, jeśli ustawię zmienną środowiskową przed uruchomieniem tmux, to mogę użyć jej w moim pliku tmux.conf. Jeśli ustawię zmienną środowiskową, albo w tmux.conf za pomocą set-environment lub po tym, jak jestem w tmux, a następnie ponownie załaduję tmux.conf, nie użyję moich nowych zmiennych, które ustawiłem. Masz pomysł, dlaczego?
Digital Powers
Powłoki uruchamiane w tmux są potomnymi procesami tmux. Zmienianie rzeczy wewnątrz tych środowiskach nie ma propogate tyłu w górę linii do procesu macierzystego tmux. Działa to tylko w drugą stronę, ponieważ tmux staje się dzieckiem powłoki, z której został uruchomiony. Zakładam, że przeładowanie konfiguracji jest podobne, ponieważ uruchamia nowe dziecko procesu nadrzędnego.
Caleb