VSNotesでシェルコマンドを管理したい
目次
はじめに
こんにちは。株式会社じげんの「シェルの魔改造が大好きなエンジニア」です。
比較メディアを複数運営しているパートナーソリューションDiv.で「結婚相談所比較ネット」の要件定義、開発、運用保守を担当しています。
今回はシェルの話を少しだけ絡めつつ、VSCodeの拡張機能の紹介をしていきます。
対象の読者
- VSCode上だけでphpやrubyの動作確認をしたい人
- rcファイルをよく触るけどviやvimで編集するのが苦手な人
対象ではない読者
- vimがあれば編集も動作確認も全て解決してしまう人
今回紹介する拡張機能
- VSNotes
- VSCode上のサイドバーからメモを読み書きできる拡張機能でタグをつけて種類別で分けることも可能です。
- とてもシンプルな拡張機能ですが、使い方次第ではとても便利なものになります。
この記事で得られる知見とメリット、デメリット
- この記事を読むと何ができるか
- VSCode上で実行ファイルの編集、実行が手軽に行えるようになります。
- メモファイルとrcファイルをタグ分けできるようになります。
- メリット
- 簡易的な動作確認が手元ですぐできるようになります。
- よくアクセスするファイルにVSCode上のどこからでもすぐアクセスできるようになります(ワークスペースが別でも可)。
- デメリット
- rcファイルのタグ分けを行います。こちらは少し強引なやり方ですので、お気に召さない方もいるかもしれません。
VSNotes構築手順
セットアップ
- まずはインストール
https://marketplace.visualstudio.com/items?itemName=patricklee.vsnotes
- VSNotesのメモを保管するフォルダが必要になるので好きな場所に作成します。
- VSCodeに戻って
command
+shift
+p
を押してvsnotes run`
と入力してRun setup
を実行します。 - VSNotes用のフォルダを聞かれるので先程 1. で作成したフォルダを選択してください。
- VSCodeを再起動します。
- フォルダとその中身が表示できるようになっているのが確認できたらセットアップ完了です!
phpやrubyのファイルを実行可能にする
VSNotesのフォルダの配下にhoge.php
を作成して 中に<?= aa
等実行可能なコードを書いて保存します。
次はphpのファイルを実行するaliasを登録します。
bashなら.bashrc
に zshなら .zshrc
に
alias phprun=’php -f 【phpのファイルまでのパス】’
を追記します。
追記したaliasを使えるようにするには一度再起動する必要があるので
exec $SHELL -l
を実行してみましょう。
これで phprunを実行するとVSNotesで編集した内容がコマンドライン上で実行できるようになります。
.bashrcや.zshrcもVSNote上で編集したい
VSNotesは隠しファイルが表示されないので .bashrc
や .zshrc
等を入れても見えません。
ですが、シンボリックリンクだと表示してくれてアクセスも可能(権限とか渡してあげる必要はあるかも)なので編集したい隠しファイルのエイリアスをVSNotesのフォルダの中に入れてあげると隠しファイルでも編集が可能になります。
VSNoteのタグ機能を使ってみる
VSNotesのメモにはタグをつけて種類ごとに分けることが可能です。
こんな感じにファイルの先頭に書くと`rc`というタグが生成されて同じタグが付けられたものだけまとめてくれる機能があります。
これを使ってファイルの整理ができるので今回はrcファイルにタグを付けたいと思います。
シェルコマンドファイルにタグをつけたい
つけたかったけど…タグ識別用の文字列はファイルの先頭に書かないと機能しないようでした。
そのまま書くと全てコマンドとして認識されて、---
なんてコマンドないよって怒られます。
でもどうしてもタグをコマンドファイルにつけたいので、お世辞にも綺麗とは言えないけど実現はできたよ!っていう方法を紹介します。
.bash_profileにヒアドキュメントのエイリアスを設定する
.bash_profile
の中で読み込んでいる source .bashrc
より上に
alias -- ---=’<< ---’
を追加してVSNoteのタグ認識の文字列の ---
をヒアドキュメントとして見るように設定します。
こうするとシェルでは先頭の---
から次の---
までがコメント化され、VSNoteでは今まで通りタグの識別用の文字列として認識してくれるようになり、エラーが解消されます。
特定のシェルだけでエラーが出てしまう場合
これについて書きたいのは山々ですが長くなってしまうのでここでは解説しません、コマンドラインシェルとログインシェル、インタラクティブシェルの違いについて調べてみると解決すると思います!
おわりに
VSNotesの魅力は伝わったでしょうか?
普段はvimで編集するようなファイルの編集も手軽にできて、学んだ内容を記録として残すこともでき、さらには、どこからでも呼び出せるシンプルさを持ち合わせた最強拡張機能ですので気に入ったら、ぜひ周りの方にもおすすめしてみてください!
まだ語り足りない気持ちもありますが、今回はこの辺で終わりにします!
最後までお読みいただきありがとうございました!