Estou tentando .tmux.conf
condicionar partes do meu arquivo dependendo do tipo de sistema em que estou. Para começar, quero que uma parte seja processada apenas no MacOS.
A página man diz que posso usar a #(COMMAND)
sintaxe para substituir a saída de COMMAND
formatos in, portanto, em particular, em condições. Então estou tentando isso:
%if "#{==:#(/usr/bin/uname -s),Darwin}"
CONF-COMMANDS
%endif
Mas sem sorte, CONF-COMMANDS
são ignorados no Mac. Eu verifiquei, é claro, que "Darwin" é de fato a saída do uname -s
. Como você pode ver, estou usando o nome absoluto do arquivo para eliminar quaisquer PATH
problemas. Também verifiquei que a condição trivial %if "#{==:Darwin,Darwin}"
de fato funciona. Então devo estar fazendo algo errado em relação à sintaxe. O que é isso?
Tenho a sensação de que você está se deparando com uma situação descrita na página man:
Você pode demonstrar isso em uma sessão do Tmux com:
Que deve retornar
<'uname -s' not ready>
.Considere usar
if-shell
como alternativa%if
para isso:No Tmux 3.2a, a sintaxe é um pouco mais limpa:
Não testado no Mac, mas confirmado para funcionar com WSL/Ubuntu/Bash. Eu acho que deve funcionar como está com Mac/Zsh.