В моем tmux.conf есть несколько строк, которые я хотел бы выполнить, только если моей ОС является Mac. Тем не менее, я хотел бы использовать мой tmux.conf на нескольких разных ОС. Как я могу сделать команду условной для ОС, в которой в настоящее время работает tmux?
41
Ответы:
Используйте
if-shell
команду:Возможно, вы захотите поместить специфичные для ОС команды в отдельные файлы и выполнить их с помощью команды «исходный файл».
источник
if-shell
иrun-shell
tmux команды в настоящее время асинхронные (по состоянию на tmux 1.7); они эффективно запускают свои команды оболочки в фоновом режиме, и любые команды tmux, которые они запускают, будут выполняться только после любых команд, которые идут после самой командыif-shell
илиrun-shell
( tmux однопоточный). Фактически, если вы используетеif-shell
илиrun-shell
в~/.tmux.conf
начальном сеансе (и в любых сеансах, окнах или панелях, созданных явно через~/tmux.conf
), будет отсутствовать любая конфигурация tmux, упорядоченная с помощью командif-shell
илиrun-shell
.if-shell
работает как я ожидал с tmux 1.8. Я использую его для установки набора заголовков только для SSH: github.com/blueyed/dotfiles/commit/…Jimeh https://github.com/jimeh/dotfiles/commit/3838db8 имеет ответ. Также Крис Джонсен заслуживает большой похвалы за помощь людям по проблеме GitHub здесь: https://Github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/8#issuecomment-4134987
По сути, вы устанавливаете скрипт оболочки,
safe-reattach-to-user-namespace
который проверяет существование настоящей команды reattach ....источник