enchanのメモ書き

計算機とフリルとラブライブ!

"なんか適当なエディタ"感覚でVSCodeを使う

皆さんは、「なんかちょっとだけテキストを触りたい!」って時にどんなエディタを使っていますか?
例えばメールの下書きをしたいだとか、Webページから手元の文書ファイルに移す時の一時保管場所だとか…

メモ帳(notepad.exe)? vim? サクラエディタなんてのもありましたね…
戦争になりそうなのでこの辺でやめておきましょう。

私は変態なので、基本的にVSCodeを使っています。sshのコンフィグを触るときはnano等使うこともありますが、文章をいじるときはほとんどVSCodeを使います。

小論文の課題も、メールの下書きも、ちょっとしたテストコードも、全部VSCodeで書いてしまう癖がついています。あんまり良くない気がします(小論文の時は教授がヤベー奴を見る目でこちらを見ていました)。

コマンドラインからVSCodeを起動する

そんなVSCodeですが、実はコマンドラインでcodeと入力することでも起動できます。
(macOSの場合は、事前にインストールが必要なようです)

しかも、実行引数にディレクトリ名・ファイル名を渡すことで、対応するディレクトリ・ファイルを開いてくれるという機能までついています。便利。
code .とすればカレントディレクトリをVSCodeで開くことができます。便利。
(macOS版のVSCodeだと「codeで開く」がFinderに表示されないのですが、この機能とAutomatorを組み合わせることで擬似的に再現できます)

「ちょっとだけ触った」テキストファイルの寿命

正直ここまでのは8割前置きレベルの話で、本題はここから。
こんな前置きの長い話をQiitaに載せでもしたら即刻マサカリ祭りでしょう。おおこわいこわい(偏見

この「ちょっとだけ触った」テキストファイル(群)、どれくらい長く使うでしょうか?

メールの下書きであれば送信後は必要ありませんし、引用元のコピペならなお優先順位は下がるでしょう。
テストコードであれば本流で実装した後は必要なくなりますし、サンプルとして残しておきたい場合は別の場所に保存すると思います。

若干極端ですが、用が済めば急に消えても困らないということです。

そこで…

一時環境を作ってCodeで開くスクリプト

/tmp/以下に一時ディレクトリを生成し、そこを対象にVSCodeを開くスクリプトを書いてみました。

#  
# VSCode用のワークスペースを適当にtmpに作ってcodeで開く  
#  
  
# 適当な一時名を生成 (Linuxの場合はmd5をmd5sumに置き換えてください)  
IDENTIFIER=$(md5 -s "$(date)" | sed -e 's/^.* = //g')  
TMP_DIR_PATH="/tmp/code-workspace-tmp/$IDENTIFIER"  
  
# tmpにディレクトリ作成  
mkdir -p $TMP_DIR_PATH  
  
# codeで開く  
code $TMP_DIR_PATH  

このファイルごと適当な名前で保存し、PATHを通せば完成です。
コマンドひとつで一時ディレクトリが生成され、VSCodeが開きます。

「いや別にディレクトリ生成しなくてもどっかにファイル生成すればよくね?」と思われるかもしれませんが、特にテストコードを書く時なんかは複数ファイルを扱いたくなります。やっぱりディレクトリほしい。

そして最大のメリットは、/tmpに置いておけばどこかのタイミングで消えるということ。 まあ実際編集中に消えてもらっては困りますが、今のところそのような現象は起きていません。
(OS的にtmp配下で色々いじるのはまずいのかもしれませんが、まあ一段ディレクトリ挟んであるし多分大丈夫でしょう。ほんとか?)

おわりに

ちょっとしたシェルスクリプト置いとくだけでめっちゃ便利ィ〜って話でした。なんやねん。
こういう日記レベルの話を置いておける場は大事ですね。

ちなみにこのスクリプトを作って以来、ターミナルのヒストリの2割くらいがこれで埋まっています。もうこのコマンドを実行するだけのGUIを置いておくべきです。Dockに置いとけば便利そうだし…

ではまた。