Tmux में एप्लिकेशन लॉन्च करने में असमर्थ


11

मुझे यह त्रुटि तब मिलती है जब मैं tmux से Sublime Text या SourceTree लॉन्च करने का प्रयास करता हूं:

$ subl
Unable to launch Sublime Text 2

$ stree
Unable to open SourceTree

ऐसा लगता है कि मैं ओएस एक्स एप्लिकेशन भी नहीं खोल सकता:

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

मैं Yosemite OS X 10.10 (14A388a) का उपयोग कर रहा हूं, zsh के साथ iTerm 2, tmux 1.0a। बैश का उपयोग करने में भी यही समस्या थी। किसी भी विचार क्या चल रहा है?


मेरे लिए सिर्फ एक tmux समस्या नहीं है। बैश और zsh / oh-my-zsh में भी। यह काम किया
जेबी रेन्सबर्गर

जवाबों:


15

अद्यतन: यह प्रक्रिया tmux> = v2.6 के साथ अनावश्यक है

मुझे ब्रेंडन रैप द्वारा एक पोस्ट मिला जिसमें एक समाधान का वर्णन किया गया है जिसमें बहुत सारे उपनामों की आवश्यकता नहीं है।

$ 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 फ़ाइल को लिनक्स और OS X दोनों के तहत सही तरीके से काम करने की अनुमति देता है। यदि आप केवल OS X का उपयोग करते हैं, तो आप सीधे अपने ~ / .tmux.conf में 'डिफ़ॉल्ट-कमांड' विकल्प जोड़ सकते हैं।

  • यदि आप बैश के अलावा किसी अन्य शेल का उपयोग करते हैं, तो '-l' स्विच के बाद 'बैश' को अपने शेल से बदलें।


7

मुझे tmux के साथ भी यही समस्या थी और इसे reattatch-to-user-namespace और shell aliases के साथ पैच किया ।

  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.conf: set-option -g default-command "reattach-to-user-namespace -l zsh"
nicerobot

0

मैंने पाया कि अगर मैं पहले से ही एक tmuxसत्र में नहीं था (तो यह एक त्रुटि है, अगर मैं सिर्फ नग्न, tmuxनिर्विवाद iTerm सत्र में था) तो इसे अपने उपनामों में जोड़ना मेरे लिए काम नहीं करता ।

यदि आप केवल एक सत्र में होने पर इस उपनाम को सेट करना चाहते हैं, तो इसके बजाय यह प्रयास करें:

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

echo $TERMआपके $TERMपर्यावरण चर को सेट करने के लिए आपको tmux सत्र के अंदर जाने की आवश्यकता हो सकती है। मेरा वास्तव में था screen-256color, इसलिए मैंने उचित रूप से ऊपर के मूल्य की अदला-बदली की।

सौभाग्य!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.