Il y a quelques lignes de mon tmux.conf que je voudrais exécuter uniquement si mon système d'exploitation est Mac. Cependant, j'aimerais utiliser mon tmux.conf sur plusieurs systèmes d'exploitation différents. Comment puis-je rendre une commande conditionnelle au système d'exploitation sur lequel tmux est en cours d'exécution?
41
Réponses:
Utilisez la
if-shell
commande:Vous voudrez peut-être placer les commandes spécifiques au système d'exploitation dans des fichiers séparés et les exécuter via la commande "fichier-source".
la source
if-shell
etrun-shell
tmux sont actuellement asynchrones (à partir de tmux 1.7); ils exécutent effectivement leur commande shell en arrière-plan et toute commande tmux qu'ils exécutent ne sera exécutée qu'après toutes les commandes venant après la commandeif-shell
orrun-shell
elle-même ( tmux est à thread unique). En effet, si vous utilisezif-shell
ourun-shell
dans~/.tmux.conf
, la première session (et toutes les séances, les fenêtres ou volets créés explicitement créé par~/tmux.conf
) manquera une tmux configuration organisées parif-shell
ourun-shell
commandes.if-shell
fonctionne comme prévu avec tmux 1.8. Je l'utilise pour définir set-titres-string uniquement pour SSH: github.com/blueyed/dotfiles/commit/…Jimeh https://github.com/jimeh/dotfiles/commit/3838db8 a la réponse. Chris Johnsen mérite également beaucoup de mérite pour aider les gens sur la question GitHub ici: https://Github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/8#issuecomment-4134987
Fondamentalement, vous configurez un script shell appelé
safe-reattach-to-user-namespace
qui vérifie l’existence de la vraie commande Reattach ....la source