コードスニペットの管理方法や命名規則について

この記事の要約
- 先頭に「
js」や「html」「css」などの接頭辞をつけて検索しやすくする - 最後に「
;;」や「]\」「jj」など接尾辞を付けて終了だと分かるようにする - 単語の区切りは「
_」か「-」かあらかじめ決めて統一する
このブログでは過去にスニペットに関して何度か取り上げてきました。
今回はスニペットの中でも、コーディング時に使用する「コードスニペット」にフォーカスして、自分なりのルールや使い方を改めて整理します。
スニペットの種類
テキストスニペット
「メールのテンプレート」「課題展開時に使う文章」など、ある程度決まったフォーマットをスニペットとして保存しておきつつ、必要に応じて呼び出して使います。
- 毎回考えたり、入力する時間が削減できる
- 手入力によるタイプミス・抜け漏れが減る
- 決まったフォーマットで来た方が受け取る側もラク
コードスニペット
コーディングに必要なコードを保存しておきつつ、コーディング時に必要に応じて呼び出して使います。
- 毎回考えたり、入力する時間が削減できる
- 同じような内容を何度も手入力したり、前の内容を探して毎回コピペする手間と時間が減る
- スニペットアプリでの呼び出し方法さえ覚えていれば、その内容は覚えてなくてもよくなる
- ド忘れしたときも、断片的に覚えていれば呼び出せる
- Googleで検索し直すムダがなくなる
- 1度作り込んでテストもしたコードであれば、バグも生み出しにくい
短文の入力
おまけですが「単語登録」も入力を補助してくれる強力な機能です。
いまはATOKを使っていて、ドンドン単語を登録していっているのと、ちょっとした短文レベルの入力であれば変換で出てくるようにしています。
よく使う短文を組み合わせていって骨組みを作り、あとは状況に合わせて入力(会社名やサービス名も単語登録で間違いのないように変換)すると早く・キレイに文章が作れます。
スニペットアプリの選定
自分の場合、コードスニペットはDashを使用しています。
ちなみにテキストスニペットはAlfredという風に使い分けています。
Alfredはスニペットの追加がしやすく、クリップボード履歴でcommand + Sを押せば、すぐにスニペット登録画面が起ち上がります。
「そういえばこれ、何度もコピペしてるな」と気づいたタイミングですぐ登録ができます。
呼び出しに関してもAlfredは使い慣れていて使い勝手も良いです。
ただ、一方でコードハイライトに対応していなかったりなど、コードスニペットとしては万能ではありません。
そこで、コードスニペットに関してはドキュメント検索もできるDashに任せることにしました。
また、スニペット検索時にテキストスニペット用に接頭辞を付けたりするのが面倒ですし、そこからのカテゴリ分けも面倒です。
テキストはAlfredでコードはDashとしておけば、トリガー用のショートカットキーを押す時点でフィルタになるので便利です。
コードスニペットのルール
Dash 5はいくつもスニペットを登録していくのがラクだったのですが、Dash 6からは一気に登録していくのが面倒なので最初は苦労しそうです。
(タグを選択して新規スニペット追加をすると、自動でタグも付いていた)
いっぱい登録したあとに修正するのは面倒なので、最初にある程度しっかりルールを決めておきましょう。
接頭辞
最初にどの言語なのか分かるように接頭辞を入れておくと、検索するときに絞り込みがしやすくなります。
- js_:JavaScript
- html_:HTML
- css_:CSS
- php_:PHP
接尾辞
接尾辞を入れておくと、スニペット入力の終了を明示的に表せます。
下記のような2つのスニペットを登録する場合、2つ目のスニペットは発火できなくなってしまいます。
「js_foreach」を発火させようとしても、js_forと途中まで入力したタイミングで「js_for」の方が発火してしまうからです。
- 「js_for」
- 「js_foreach」
接尾辞を入れておくとこのような問題が起こらなくなります。
- 「js_for;;」
- 「js_foreach;;」
「js_for」を発火させたい場合は入力後に「;;」を入力すれば発火しますし、「js_foreach」に干渉しません。
接尾辞はいろいろありますが、下記のポイントに注意して決めましょう
- 干渉しないような文字にする
- 2文字以上が理想(1文字だと意図しない発火の可能性がある)
- できればホームポジションからあまり動かさないで入力できる文字
一時期、US配列のenter上の「]\」にしていましたが、ホームポジションから離れているので現在は;;にしています。
他にもホームポジションで常に人差し指がある「jj」も候補でしたが、やはり文字より記号の方が分かりやすいです。
Dash公式のオススメは「``」みたいですが、チルダもUS配列の左上端なので「;;」にしました。
ホームポジションから動かさずに、右手薬指で入力します。
単語の区切り
単語の区切りは完全に好みですが「-(ハイフン)」か「_(アンダースコア)」で統一するようにしましょう。
ちなみに、ハイフンの場合はダブルクリックで単語が選択できますが、アンダースコアの場合はダブルクリックで全選択になるので、この辺りも考慮しておきましょう。
自分の場合は単語の区切りはアンダースコアの方が多いので、慣れているアンダースコアを使うようにしています。




効率的なマークアップが出来るようになるEmmetでHTMLを書く時の基本
Sassのマップ機能を使った変数の管理方法
WebPに対応して画像サイズを最適化する方法
CSSやJavaScriptでスクロールバーの横幅を取得する方法
SourceTreeでマージ時に「fatal: You have not concluded your merge (MERGE_HEAD exists).」と表示される場合の対処法
Nuxt.jsでaxios-moduleを使ってAPIからデータを取得・表示する|Nuxt.jsの基本
mac環境にnodebrew経由でNode.jsをインストールしてバージョンを管理する方法
Visual Studio Codeの設定を複数の端末間で同期する「Settings Sync」機能の使い方
CSSのz-indexの確認や管理を便利にする方法
iOS Safariで文章の最後の1文字だけ改行されてしまう現象の対処法
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Eagleで実現するクリエイティブ素材の簡単管理
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする
超軽量なコードエディタ 「Zed」をサブエディタとして活用する
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する
Googleカレンダーを便利に活用するための小技集(祝日だけを表示・月末の繰り返しイベントを追加)
Obsidianを使った「自己流PKM」で行う知識トレーニング
テキストエディタ・ノートアプリ関連のショートカットキーをKeyboard Maestroで統一する
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)
macOSのコマンドパレット比較!SpotlightとAlfred、Raycastどれを使えばいい?