Existem algumas linhas do meu tmux.conf que eu gostaria de executar apenas se meu sistema operacional for Mac. No entanto, eu gostaria de usar o meu tmux.conf em vários sistemas operacionais diferentes. Como posso condicionar um comando ao sistema operacional no qual o tmux está sendo executado atualmente?
41
Respostas:
Use o
if-shell
comando:Você pode colocar comandos específicos do SO em arquivos separados e executá-los através do comando "arquivo-fonte".
fonte
if-shell
erun-shell
tmux são atualmente assíncronos (a partir do tmux 1.7); eles efetivamente executam seu comando shell em segundo plano, e quaisquer comandos tmux que eles executam serão executados somente após quaisquer comandos que vierem após o próprio comandoif-shell
ourun-shell
(o tmux é de thread único). Efetivamente, se você usarif-shell
ourun-shell
em~/.tmux.conf
, a sessão inicial (e todas as sessões, janelas ou painéis criados explicitamente criada através~/tmux.conf
) faltará qualquer tmux configuração organizadas atravésif-shell
ourun-shell
comandos.if-shell
funciona como esperado para mim com o tmux 1.8. Estou usando-o para definir set- titleJimeh https://github.com/jimeh/dotfiles/commit/3838db8 tem a resposta. Também Chris Johnsen merece muito crédito por ajudar as pessoas na questão do GitHub aqui: https://Github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/8#issuecomment-4134987
Basicamente, você configura um script de shell chamado
safe-reattach-to-user-namespace
que verifica a existência do real realtach ... comando.fonte