ideaやpycharmコマンドでちゃんと新しく開くようにする。すでに開いていても。
#IntelliJ系 #IntelliJ #PyCharm #WebStorm #コマンド
追記:
2019.3.3 で修正された版が公式リリースされる予定。
参考:
実際の修正は
Pythonのos.execv()は最初の引数に/usr/bin/openがきて第二引数のリストの先頭がopenきて2回openがくるような感じになる。なぜこうなるのかは要調査。
hr.icon
ideaコマンドやpycharmコマンドで新しく開くようにする。
解決したいこと
以下のようにメニューバー > Tools > Create Command-line Launcher ... しているときの話。
https://gyazo.com/703b9b2951293010d93734992b3cfd4f
IntelliJとかPyCharmとかが立ち上がっていない状態で、以下を実行すると正常に立ち上がる。
$ idea .
だが、すでに立ち上がっている状態だと、idea .してもすでに立ち上がっているウィンドウにフォーカスが当たるだけ。これを解決して、idea .でターミナルから現在いる場所(pwd)をIntelliJで開けるようにする。
解決法
参考になったツイート:
$ vi which idea
とか
$ code which idea
とかとして、ideaコマンドを編集する。
pycharmコマンドとかも同様にwhichを使って出来るはず。
開くと、Pythonで書かれているスクリプトになっている。
以下のように、start_new_instance()という関数内をコメントのように編集するだけで良かった。
code:py
...
def start_new_instance(args):
if sys.platform == 'darwin':
if len(args) > 0:
args.insert(0, '--args')
# 以下2行追加
import subprocess
subprocess.call('/usr/bin/open', '-na', RUN_PATH + args)
# 以下コメントアウト
# os.execv('/usr/bin/open', '-a', RUN_PATH + args)
else:
bin_file = os.path.split(RUN_PATH)1
os.execv(RUN_PATH, bin_file + args)
...
os.execv()ではうまくいかなかったので、subprocess.call()を使っている。どうしてうまくいかないのかちょっと調べる必要もありそう。
出来ればデフォルトのままで編集したくはない。