ไม่สามารถเปิดแอปพลิเคชันใน tmux


11

ฉันได้รับข้อผิดพลาดนี้เมื่อฉันพยายามเปิด Sublime Text หรือ SourceTree จาก tmux:

$ 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 มีปัญหาเดียวกันกับการทุบตี ความคิดใด ๆ ที่เกิดขึ้น?


ไม่ใช่แค่ปัญหา tmux สำหรับฉัน เหมือนกันใน bash และ zsh / oh-my-zsh ใช้งานได้
JB Rainsberger

คำตอบ:


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 เพียงคุณสามารถเพิ่มตัวเลือก 'default-command' ลงใน ~ / .tmux.conf

  • หากคุณใช้เชลล์อื่นที่ไม่ใช่ bash ให้แทนที่ 'bash' ด้วยเชลล์ของคุณหลังจากสวิตช์ '-l'


7

ฉันมีปัญหาเดียวกันกับ tmux และแก้ไขด้วยนามแฝง reattatch-to-user-namespaceและเชลล์

  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 -LESS)

หากคุณต้องการตั้งค่านามแฝงนี้เฉพาะเมื่อคุณอยู่ในเซสชั่น tmux ให้ลองทำดังนี้:

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

คุณอาจต้องecho $TERMอยู่ภายในเซสชั่น tmux เพื่อดูว่า$TERMตัวแปรสภาพแวดล้อมของคุณตั้งค่าไว้ที่ใด ของฉันเป็นจริงscreen-256colorดังนั้นฉันจึงสลับค่าข้างบนอย่างเหมาะสม

โชคดี!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.