🍎
Atomをコマンドから起動したときに別プロセスにしない方法(Mac向け)
最近Atomを使い出したけど、atom
コマンドから起動する場合と、SpotlightやFinderから起動する場合とでプロセスが別になる現象があって困ってた。ググったら解決したので記録。
atomコマンドを使わない
$ atom .
これだと別プロセスになるけど、
$ open -a Atom .
これなら同一プロセスの別ウィンドウになる。
というわけで、.bashrc
なり.zshrc
なりに
alias atom="open -a Atom"
を登録しておけばOK。
tmuxを使っている場合
tmux内でopen -a Atom
するとLSOpenURLsWithRole()
エラーになってしまう模様。
.tmux.conf
に以下を追記すればこのエラーは回避できる。
# Fix LSOpenURLsWithRole() error on OS X. Requires reattach-to-user-namespace
# to be installed.
set-option -g default-command "which reattach-to-user-namespace > /dev/null && reattach-to-user-namespace -l $SHELL || $SHELL"
追記
.tmux.conf
でこれを設定してあっても、時々以下のような変な動作をしていた。
- すでにAtomのプロセスが存在している状態で
-
atom .
などしてウィンドウを立ち上げようとすると、別プロセスで起動してしまう - 一度、新しい方のプロセスを殺して再度
atom .
しようとすると - それ以降何度やっても
LSOpenURLsWithRole()
になる
理屈は全く理解してないけど、
https://github.com/atom/atom/issues/3093#issuecomment-263667546
これを参考に
- alias atom="open -a Atom"
+ alias atom="open -a /Applications/Atom.app/Contents/MacOS/Atom"
としたら、どうやらこの現象も回避されたっぽい。
Discussion