Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

最近、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
(例とは名前変えてあるけど気にしない)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away