tmux配置取决于操作系统


Answers:


51

使用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"

8
if-shellrun-shell TMUX命令是目前异步(作为TMUX 1.7); 它们会在后台有效地运行它们的shell命令,并且它们运行的任何tmux命令都只会在or 命令本身之后的任何命令之后执行(tmux是单线程的)。实际上,如果使用或在,初始会话(和任何会话,窗口或窗格创建明确通过创建)将没有任何TMUX配置通过安排或命令。if-shellrun-shellif-shellrun-shell~/.tmux.conf~/tmux.confif-shellrun-shell
克里斯·约翰森

1
@ChrisJohnsen if-shell使用tmux 1.8达到了我的预期。我用它来设定设定标题字符串只为SSH:github.com/blueyed/dotfiles/commit/...
blueyed

2
这应该被接受;这是正确的方法。
Chev

11

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.