コードスニペット(小さなコード断片)を管理する便利なアプリ10選(随時追加)

プログラムでよく使うコードは、どこかにまとめておいて、すぐに呼び出したいものです。

そのような小さなコードのまとまりを「スニペット(断片)」と呼んだりもします。

今回はコードスニペットをまとめておけるソフトを紹介します!

1. massCode(おすすめ!)

まず僕もよく使っているmassCode。オープンソース、完全無償のソフトです。Windows、Mac、Linuxに対応。(筆者も開発に参加中!)

massCode
A free and open source code snippets manager for developers

 

動きが非常に軽く、エディタに”Ace”を使っているので、本格的なエディタと同様の編集感覚です。200近い言語のコードカラーリングに対応しています。

カテゴリ分け、フォルダ分け、タグ付け、お気に入りなど、仕分けも細かくできます。データはGoogle DriveやOne Driveなどを使えば、複数台のPCで共有できるのもうれしい。データ形式は単なるJSONなので、他のエディタでも編集できる。

日本語も問題なく扱え、フォントや全体のカラーも変更可能です。ただ、日本語の変換時に少し文字がずれる現象あり。確定すれば問題なく入ります。

・とても軽い
・多数の言語をサポートする本格的なエディタ
・検索が早い
・カテゴリ分けが柔軟
・オートセーブあり
・複数のPCで同期できる(クラウドストレージ必要)
・データ形式が単純
・完全無償
・Windows版は「×」を押すとタスクトレイに入らず終了してしまう
ソフトの日本語表示がない(僕が翻訳しました!現在は日本語も完全対応)
・コードの説明部分にURLリンクが使えない(クリックできない)

2. Evernote(おすすめ!)

 

最高のメモアプリ - Evernote で大切なノートを整理
Evernote ではアイデア、プロジェクト、ToDo などを記録したり、忘れないように優先順位を付けたりすることが可能です。無料トライアルを是非お試しください...

文字、画像、ファイルなどマルチなドキュメントをまとめることができるEvernote

僕は10年近く有料で使っているほどのヘビーユーザーです。Windows、Mac、Linuxに対応。

コードだけではなく、参考資料やページリンク、画像やPDFなど、何でも1つのページにまとめておけるのがとにかく強い!1つのページに時系列でコードを書いておけば、自分がどうやってコードを洗練したか、過程を記録することもできます。

コードの設計、コードの試行錯誤などをまとめておくと、説明書の作成にも使えそうです。

ただ、マルチデバイスで自由に使うには有料サブスクリプションが必要。また、多数のデータを入れると検索が少し遅いなど、瞬発力が足りないのがわずかなマイナス点。

massCodeよりも広範な、「第二の脳」という扱いができる万能ソフトです。

・どんなデータでも取り込める、超柔軟なエディタ
・1ページでリンクや解説画像を貼り込め、理解がしやすい
・検索が柔軟
・カテゴリ分けが柔軟
・オートセーブあり
・複数のPCで同期できる(2台以上はサブスクリプション必要)
・歴史が長い安心感
・プログラム以外にも非常に使える
・コードのカラーリングはない
・2台以上のデバイスで使うにはサブスクリプションが必要

3. Copyq(おすすめ!)

CopyQ
CopyQ : Clipboard Manager with Advanced Features

コードスニペットというよりはクリップボードマネージャ。いわゆるクリップボードの履歴を記憶してくれるソフトです。Windows、Mac、Linuxに対応。

記憶したクリップの固定や検索呼び出しができるため、スニペットマネージャとしてはもちろん、コピペ作業が多くなるアプリケーションのメンテナンスでも威力を発揮します。

同様のソフトでは「ditto」が有名ですが、dittoよりもCopyqのほうが細かな設定ができ(表示画像のサイズや行数など)、1年ほど前にCopyqをメインに乗り換えました。

スニペットマネージャとは毛色が違うため記事公開時には入れていませんでしたが、自分としては非常に有用なので追加しました。

Copyqの動作画面

・クリップボード履歴を多数記憶でき、何度もコピペを繰り返す作業に強い
・画像などメディアオブジェクトも履歴が取れる
・カテゴリ分けが可能
・完全無償
・プログラム以外にも非常に使える
・コードカラーリングはできない

4. espanso

Espanso - A Privacy-first, Cross-platform Text Expander
コメント欄にて、sansan hoihoiさんより情報をいただきました!😀

テンプレートを記憶させておき、キーとなる文字列(トリガー)を打ち込むと、その部分を「置換」してくれるスニペットマネージャ。Windows、Mac、Linuxに対応。

たとえばデフォルトのサンプルでは、「:espanso」と打つとその部分が「Hi there!」と変換されます。これは対象アプリケーションを問わず動作しました。

トリガーには通常文字列、正規表現、さらに入力フォームの表示が使えます。変換される文字列には通常文字列、変数の差しこみ、日付変換、選択肢フォームの出現など、非常に柔軟な変換ができます。トリガーの検索は「Alt + Space(変更可能)」で可能なので、たくさん登録しても大丈夫そう。

またこの手の強制変換ソフトにありがちな、入力時のフリーズ、相手ソフトの強制終了などは見られませんでした。(※JetBrainsのIDE、Delphi、ウェブのGMail、各種エディタで短時間の使用。)

ただ、「選択肢フォーム」を使うと、EmEditorでは正常に変換されませんでした。

テンプレートの登録はYAML形式の設定ファイルをエディタで書き換える方式のため、ザクザク切り取ってどんどん貼り付けていく、という使い方ではありません。(※マニュアルを読むと、クリップボード履歴の方法もあるようです。確認中です。)

テンプレートを育て上げれば、非常に強力なコード支援になりそうです!

Espanso コンボボックスでの選択

・トリガー文字列で呼び出すという、プログラマにはなじみやすい使い方
・呼び出し、変換とも非常に柔軟
・定型文字列だけではなく、フォーム呼び出しや出力文字列の選択なども行える
・完全無償
・プログラム以外にも非常に使える
・設定はYAMLファイルを書き換える方式のため、登録するまで若干の手間がある

5. Snibox

Snibox

Snibox
A self-hosted snippet manager

ブラウザで使うタイプのスニペットマネージャ。オープンソース、完全無償のソフトです。ただしRailsアプリのため、Ruby対応サーバーへインストールが必要。手軽に始めるならHerokuになるが、サーバー設定と管理は必要になってしまう。

デモもあるのでまずは見てみると良いでしょう。

ラベルで柔軟に仕分けでき、エディタも多数のコードカラーリングを備えた本格的なエディタ。チームでテンプレートをまとめるような使い方がベストでしょうか。

サーバーへのインストールという点がかなり重荷です。Herokuなどウェブサーバの設定ができなければ使うこともできません。チームで同じコードを使うなら検討の価値があります。

Snibox(デモサイト)

・インストールせず、ブラウザからすぐに見れる
・多数の言語をサポートする本格的なエディタ
・検索が早い
・ラベル仕分けが柔軟
・オートセーブあり
・複数のPCで同時に見られる
・完全無償
・ウェブサーバへのインストールが必要
・ブラウザで見るので、大きさがジャマになるときも
・検索 → コピー → ペーストとなるので、煩雑

6. Leption

GitHub - hackjutsu/Lepton: 💻 Democratizing Snippet Management (macOS/Win/Linux)
💻 Democratizing Snippet Management (macOS/Win/Linux) - hackjutsu/Lepton

GithubのGistと同期できるスニペットマネージャ。Gistをメインで使っている人にはかなり有用です。

GitHubでホスティングされるので、複数のPCで同期できます。ただしGitHubのアカウントが必要・・・というか開発者でGitHubアカウントを持っていない人はほぼいないと思うので、ここは問題ないでしょう。

ただ、スニペット登録時になぜかタイトルとファイル名を入れなければならないことがめんどう。さらに「secret」にチェックを付け忘れると、GitHubでパブリック公開されてしまうのが怖い。

機密契約のある企業では、扱いに慎重を要するでしょう。

・動きは軽い
・Gistと同期できる
・多数の言語をサポートする本格的なエディタ
・仕分けはタグのみ
・複数のPCで同期できる(GitHubアカウント必要)
・完全無償
・登録時にSecretのチェックを付け忘れると大変!
・ソフトの日本語表示がない(それほど困らない程度の英語)
・微妙に分かりづらいUI

7. Snip

Snip

Snip - Free macOS code snippets manager
Snip is a lightweight and elegant notes and code snippets manager for macOS.

macOS専用のスニペットマネージャ。オープンソースで完全無償のソフトです。

コードカラーリング、柔軟な仕分けは一通り揃っており、カラーリングは120以上の言語に対応。HTMLやMarkdownのプレビューも可能。

OSが限定されてしまうのが問題。MacやiOSソフトの開発だけなら使える。

・軽い
・多数の言語をサポートする本格的なエディタ
・検索が早い
・カテゴリ分けが柔軟
・完全無償
・macOS用のみ
・ソフトの日本語表示がない(それほど困らない程度の英語)

8. Snippet Store

Snippet Store

すっきりした画面のスニペットマネージャ。オープンソース、完全無償のソフトです。Windows、Mac、Linuxに対応。

多くの言語に対応していますが、Z80など組み込み系、各種DB専用のSQLなど、massCodeとは守備範囲がだいぶ違います。massCodeで対応していない言語をメインにしているなら、こちらを見てみると良いでしょう。

ただ、リストの状態でコードがほとんど見えないこと、編集ボタンを押さなければ編集できないこと、言語を選ばないと保存できないことなど、いくつか使いづらい点があります。

・軽い動作
・多数の言語をサポートする本格的なエディタ
・検索が早い
・タグや言語でのカテゴリ分けが可能
・完全無償
・UIが大きい
・コード部分が狭く、一目でわからない
・一覧もUIが大きすぎ、見づらい
・言語を指定しないと保存できない(未指定時に、自動でPlainTextなどにしてくれない)
・ソフトの日本語表示がない(それほど困らない程度の英語)

9. Snippet Manager

Snippet Manager
Snippet Manager for managing code snippets in any language such as C#, C++, VB, ...

Windows XP的な、ちょっとなつかしいUIのスニペットマネージャ。Windows専用。フリーウェアです。

対応言語は数がありますが、新しい言語はあまり入っていません。その代わり、SmallTalkやOracle SQLなど、ちょっと古めで特殊な環境のコードカラーリングが可能です。

FTPサーバーへのアップロード/ダウンロードで同期もできそう。(未確認)

スニペットはツリー構造でまとめられますが、ドラッグドロップで動かせないなど、全体的に古さを感じるソフト。

・フリーウェア
・他にはない特殊な言語をサポートするエディタ
・フォルダ分けが可能
・Windows専用
・全体的に古さを感じるUI
・ツリー構造はわかりづらく、ドラッグドロップもできない
・ソフトの日本語表示がない(それほど困らない程度の英語)

10. Trilium Notes

GitHub - zadam/trilium: Build your personal knowledge base with Trilium Notes
Build your personal knowledge base with Trilium Notes - zadam/trilium

コードの他に画像やリレーションマップなども書くことができるスニペットマネージャ。オープンソースの完全無償のソフトです。

説明で「personal knowledge bases」と名乗っているとおり、スニペットマネージャというより、Evernoteのような雑記帳に近い。

カラーリング対応言語は最近のウェブ系がメインで、それほど多くはない。

ノートを作るとデフォルトで日付階層(2022 > 06-June > 23-Thersday)で格納されるため、たくさん入れるとわかりづらくなりそう。しかも初期階層は設定項目もない。

・完全無償
・画像やリレーションマップなども格納できる
・フォルダ分けが可能
・デフォルトで日付階層にされてしまうため、整頓がめんどう
・カラーリング対応言語は多くない
・UIが大きめ
・ソフトの日本語表示がない(それほど困らない程度の英語)

WTS的まとめ

各種IDEにはスニペット機能を持つソフトも多いですが、常に同じソフトにまとめておくと検索性、利便性ともにアップすると思います。

スニペットマネージャを利用することで、生産性はかなりアップさせることができます。

お気に入りを見つける手助けになれば幸いです!

コメント

  1. sansan hoihoi より:

    espansoもいいですよ

  2. 太田アベル より:

    sansan hoihoiさん >
    コメントありがとうございます!
    まったく知らないソフトでした。さっそくチェックしてみます!