LoginSignup
17
14

More than 3 years have passed since last update.

Emacs で(コードを汚さず)自分用コメントを残したい

Last updated at Posted at 2019-03-07

コードを読み書きするとき、自分用のちょっとしたコメントを残したい時ありますよね。しかし、直にコメントを書いてしまうとコードが汚れてしまって面倒です。

そこで、コードを変更することなしに、インラインでコメントを追加できる package を作ってみました!
本体は GitHub/phantom-inline-comment に置いておきます。

追記(2019/05/05): コメントの永続化について

これは何?

ソースコードに変更を加えることなく、コメントを残せます。
(コメントを書いたとしても、ソースコード自体には diff が発生しません)

Image from Gyazo

何が嬉しいの?

この package はコードを汚すことなくコメントを残せるので、例えばコードをガッと書くときやレビューをするとき、複雑なコードを読むときなどに自分用コメントを気軽に残せます。
また、コード上に直接書き込めるので、直感的にコメントの内容を再確認できます。

  • 「TODO: Rename this function!!」
    Screen Shot 2019-03-08 at 1.18.54.png

  • 「NOTE: Maybe this code will create a critical bug...」
    Screen Shot 2019-03-08 at 1.22.06.png

セットアップ

git clone して init.el に以下を記述するだけです。

(add-to-list 'load-path "YOUR PATH")
(require 'phantom-inline-comment)

使い方

コメントの追加/編集

M-x phantom-inline-comment
カーソルの一行下にコメントを追加/編集します。
コマンド実行後、編集用の buffer がポップアップするので、そこにコメントを入力します。そして、 C-c C-c で変更を適用、C-g で変更をキャンセルします。

コメントの削除

M-x phantom-inline-comment-delete
カーソルの一行下にあるコメントを削除します。

コメントの全削除

M-x phantom-inline-comment-delete-all
全ての buffer のコメントを削除します。

コメントの一覧表示

M-x phantom-inline-comment-show-all
全てのコメントを表示します。
表示されたファイル名/コメントにカーソルを当てて Enter を打つと、該当箇所にジャンプします。

コメントの折りたたみ

M-x phantom-inline-comment-toggle-all
全てのコメントを一行に折りたたみます。
再度実行すると折りたたみを解除します。

注意事項

overlay を使用しており、コメントは buffer に紐付きます(cf. Overlays)。
そのためコメントは永続化されず、 Emacs を終了するとコメントは消えちゃいます。なので、あくまで簡単なメモ書き用途で使うのがベストだと思います。

これについては以下のコメントの永続化に回避方法を記載しました。

コメントの永続化

あくまで実験的な機能ですが、Emacsを終了してもコメントを永続化させることができます。

;; phantom-inline-comments を Emacs 終了時に保存します
(phantom-inline-comment-auto-save-mode t)

;; 保存した phantom-inline-comments をリストアします
(add-hook 'SOME-MODE-hook 'phantom-inline-comment-auto-restore-mode)

この設定により、Emacs が終了する際にコメントはデータファイル(デフォルトは ~/.phantom-inline-comment)に保存されます。そして、コメントが書かれていたファイルを再度開くと、コメントが復活します。

17
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
14