无法在tmux中启动应用程序


11

当我尝试从tmux启动Sublime Text或SourceTree时出现此错误:

$ subl
Unable to launch Sublime Text 2

$ stree
Unable to open SourceTree

似乎我无法打开os x应用程序:

$ open MPlayerX.app
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/MPlayerX.app.

我正在使用Yosemite OS X 10.10(14A388a),iTerm 2和zsh,tmux 1.0a。使用bash有同样的问题。知道发生了什么事吗?


对我来说不仅仅是一个tmux问题。在bash和zsh / oh-my-zsh中也一样。有效
J. B. Rainsberger

Answers:


15

更新: 这是tmux> =不需要的程序 V2.6

我发现了一个 由Brendon Rapp发布 描述不需要大量别名的解决方案。

$ brew install reattach-to-user-namespace

将以下行添加到〜/ .tmux.conf的末尾:

if-shell 'test "$(uname)" = "Darwin"' 'source ~/.tmux-osx.conf'

使用以下内容创建名为〜/ .tmux-osx.conf的文件:

set-option -g default-command "reattach-to-user-namespace -l bash"
  • 上述解决方案允许相同的.tmux.conf文件在Linux和OS X下正常工作。如果只使用OS X,则可以直接在〜/ .tmux.conf中添加'default-command'选项。

  • 如果你使用bash以外的shell,请在'-l'开关后用shell替换'bash'。


7

我有同样的问题与tmux并修补它 重新连接到用户的命名空间 和shell别名。

  1. $ brew install reattach-to-user-namespace
  2. $ vi ~/.bash_aliases

    alias subl='reattach-to-user-namespace subl'
    alias stree='reattach-to-user-namespace stree'
    alias open='reattach-to-user-namespace open'
    
  3. $ source ~/.bash_aliases

不优雅,但有效。


2
根据文档,只需将此添加到您的 ~/.tmux.confset-option -g default-command "reattach-to-user-namespace -l zsh"
nicerobot

0

我发现如果我还没有这个,那么将它添加到我的别名中并不适用于我 tmux 会话(即如果我只是赤身裸体,它会引发错误, tmux 没有iTerm会议)。

如果您只想在tmux会话中设置此别名,请尝试以下方法:

if [ "$TERM" = "screen" ] && [ -n "$TMUX" ]; then
  alias stree="reattach-to-user-namespace stree"
fi

你可能需要 echo $TERM 在tmux会话里面看看你的 $TERM 环境变量设置为。实际上是我的 screen-256color,所以我适当地换出了上面的值。

祝好运!

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.