Tmux'da uygulama başlatılamıyor


11

Tmux Sublime Text veya SourceTree başlatmaya çalıştığınızda bu hatayı alıyorum:

$ subl
Unable to launch Sublime Text 2

$ stree
Unable to open SourceTree

Görünüşe göre ben de os x apps açamıyorum:

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

Yosemite OS X 10.10 (14A388a), iTerm 2'yi zsh, tmux 1.0a ile kullanıyorum. Aynı sorunu bash kullanarak da yaşadım. Ne olduğu hakkında bir fikrin var mı?


Benim için sadece bir tmux sorunu değil. Aynı bash ve zsh / oh-my-zsh için de geçerlidir. Çalıştı
JB Rainsberger

Yanıtlar:


15

Güncelleme: Bu işlem tmux> = v2.6 ile gereksizdir

Brendon Rapp tarafından çok fazla takma ad gerektirmeyen bir çözümü açıklayan bir yazı buldum .

$ brew install reattach-to-user-namespace

~ / .Tmux.conf dosyanızın sonuna aşağıdaki satırı ekleyin:

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

Aşağıdaki içeriklerle ~ / .tmux-osx.conf adlı bir dosya oluşturun:

set-option -g default-command "reattach-to-user-namespace -l bash"
  • Yukarıdaki çözüm, aynı .tmux.conf dosyasının hem Linux hem de OS X altında düzgün çalışmasına izin verir. Yalnızca OS X kullanıyorsanız, 'default-command' seçeneğini doğrudan ~ / .tmux.conf dosyasına ekleyebilirsiniz.

  • Eğer bash dışında bir kabuk kullanırsanız, '-l' anahtarından sonra 'bash' yerine kabuğunuzu koyun.


7

Ben tmux ile aynı sorunu vardı ve reattatch-to-user-namespace ve shell aliases ile yamalı .

  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

Zarif değil, ama çalışıyor.


2
Dokümanlara göre, bunu şu ~/.tmux.confset-option -g default-command "reattach-to-user-namespace -l zsh"
adrese

0

Zaten bir tmuxoturumda olmasaydım takma adlarıma eklemenin benim için işe yaramadığını fark ettim (yani, sadece çıplak, çıplak bir tmuxiTerm oturumunda olsaydım bir hata attı ).

Bu takma adı yalnızca bir tmux oturumundayken ayarlamak istiyorsanız, bunun yerine şunu deneyin:

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

Ortam değişkeninizin echo $TERMneye $TERMayarlandığını görmek için bir tmux oturumunun içine girmeniz gerekebilir . Benimki aslında screen-256color, bu yüzden yukarıdaki değeri uygun bir şekilde değiştirdim.

İyi şanslar!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.