'subl -w' doesn't ever un-block when running under tmux on OS X

5

4

On my mac, I have $EDITOR set to 'subl -w'. If I run my shell session under tmux, it opens the editor fine, but the command on the terminal never exits. However, this works fine on a terminal by itself, and also under screen, so it could be a tmux bug.

Ernesto

Posted 2012-12-20T14:40:01.323

Reputation: 241

3Possibly related – Daniel Beck – 2012-12-20T14:56:10.690

thanks Daniel, that solved the problem. I still think it's a bug of tmux, because this plugin is related to copy/paste functionality, and yet it fixes this other thing. Please, post your solution as an answer to this question, so I can vote it as the correct answer. – Ernesto – 2012-12-20T15:39:07.173

1The “plugin” is not actually specific to pasteboard access (despite the repository name I used to publish it). The problem arises due to the way OS X handles a specific bit of novel process-associated state (the “bootstrap namespace”) that is not present on other Unix-y systems. If OS X provided documented, public APIs for managing a process’s bootstrap namespace, then I would not hesitate to recommend (or even write) a patch to osdep-darwin.c. However, since the required function is undocumented and “private”, I have avoided recommending any changes to tmux itself. – Chris Johnsen – 2012-12-21T03:09:17.427

Thanks for clarifying it Chris, I stand corrected. Thanks. – Ernesto – 2012-12-21T13:56:24.073

Answers

9

The solution to this problem lies in installing tmux MacOSX pasteboard, as pointed out by Daniel Beck in a comment above. Most of the explanation about this can be found is the second comment above, which I reproduce here for clarity:

The “plugin” is not actually specific to pasteboard access (despite the repository name I used to publish it). The problem arises due to the way OS X handles a specific bit of novel process-associated state (the “bootstrap namespace”) that is not present on other Unix-y systems. If OS X provided documented, public APIs for managing a process’s bootstrap namespace, then I would not hesitate to recommend (or even write) a patch to osdep-darwin.c. However, since the required function is undocumented and “private”, I have avoided recommending any changes to tmux itself.

Chris Johnsen

So I decided to finally post it as the answer, although I'm not who devise it originally. Kudos for Daniel for pointing it out, and to Chris Johnsen for writing this fix for tmux on Mac OS X.

Ernesto

Posted 2012-12-20T14:40:01.323

Reputation: 241

1I had to install the above package AND add the following to ~/.tmux.conf: set-option -g default-command "reattach-to-user-namespace -l zsh" – Fabian Pedregosa – 2013-05-19T22:14:22.143