2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Case-Sensitive な環境でも Visual Studio Code が使いたい!

Posted at

最近、Markdown で文章を作成したりする機会が増えてきました。

そこで普段使ってるエディタを Markdown プレビューなどの機能が豊富な Visual Studio Code (VS Code) にしようと決心。

しかし、インストールしてアイコンをダブルクリックしても起動せずにコケてしまうという事態に(Docs でピコンと跳ねたあと、スンと消える)。

色々試した結果、VS Code のシステムファイルを case-insensitive なシステムにおいたら起動できることがわかった。

現象の確認と改善後の動作

case-sensitive な環境では(一部省略)

$ /Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron

> [main 20:15:32] Error: listen ENOTSUP ...

とエラーを吐いて起動せず。

case-insensitive な環境にシステムファイルをおいたら

$ /Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron --user-data-dir=/Volumes/MacHD2/Library/Application\ Support/Code

> [main 20:44:13] update#setState idle

と起動できることを確認。

改善法

case-insensitive なディスクを作成する。

Mac であればディスクユーティリティから現在のディスクに別パーティションを作ってしまうのが手っ取り早い。
結局 case-sensitive な環境では動作していないが、case-sensitive な環境をそのままに動作可能なので、個人的には許容範囲。

part.png

このように、ここで新たなパーティションのディスクシステムを case-insensitive にする。

ここにシステムファイルを置くようにすれば VS Code を起動できるようになる。

VS Code 起動用の .app 作成

毎回ターミナルからコマンドで実行するのは不便なので、起動用のシェルスクリプトを作成して、.app にバンドルしてしまおう。

.app を作るのは結構簡単で、
以下のような構成でディレクトリとファイルを用意するだけである。
アイコンは各自好きに用意すること。

MyVSC.app
└── Contents
    ├── Info.plist
    ├── MacOS
    │   └── startup.sh
    └── Resources
        └── icon.icns

起動用シェルスクリプトは上で打ったコマンドを書くだけ。

startup.sh
#!/bin/sh
/Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron --user-data-dir=/Volumes/MacHD2/Library/Application\ Support/Code

以下のような XML を Info.plist として保存。
最初を大文字にしなければならない。

Info.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
 <dict>
  <key>CFBundleExecutable</key>
  <string>startup.sh</string>
  <key>CFBundleIconFile</key>
  <string>icon.icns</string>
  <key>CFBundlePackageType</key>
  <string>APPL</string>
  <key>CFBundleSignature</key>
  <string>????</string>
 </dict>
</plist>

あとはこの MyVSC.app/Applications に配置すればOK。

icon.png
(例とは名前変えてあるけど気にしない)

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?