Answers:
使用if-shell
命令:
if-shell "uname | grep -q Darwin" "tmux-cmd1; tmux-cmd2;" "tmux-cmd3; tmux-cmd4"
您可能需要将特定于OS的命令放在单独的文件中,然后通过“ source-file”命令执行它们。
if-shell "uname | grep -q Darwin" "source-file .tmux-macosx" "source-file .tmux-linux"
if-shell
和run-shell
TMUX命令是目前异步(作为TMUX 1.7); 它们会在后台有效地运行它们的shell命令,并且它们运行的任何tmux命令都只会在or 命令本身之后的任何命令之后执行(tmux是单线程的)。实际上,如果使用或在,初始会话(和任何会话,窗口或窗格创建明确通过创建)将没有任何TMUX配置通过安排或命令。if-shell
run-shell
if-shell
run-shell
~/.tmux.conf
~/tmux.conf
if-shell
run-shell
if-shell
使用tmux 1.8达到了我的预期。我用它来设定设定标题字符串只为SSH:github.com/blueyed/dotfiles/commit/...
Jimeh https://github.com/jimeh/dotfiles/commit/3838db8有答案。克里斯·约翰森(Chris Johnsen)也因在此帮助人们解决GitHub问题而获得许多荣誉:https : //Github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/8#issuecomment-4134987
基本上,您设置了一个名为shell脚本safe-reattach-to-user-namespace
,用于检查是否存在真正的reattach ...命令。
#! /usr/bin/env bash
# If reattach-to-user-namespace is not available, just run the command.
if [ -n "$(command -v reattach-to-user-namespace)" ]; then
reattach-to-user-namespace $@
else
exec "$@"
fi