- shut-up 20150423.522(in MELPA)
- Shut up would you!
概要
Emacsはたまに饒舌が過ぎることがあります。
message 関数や write-region 関数、 load 関数は
エコーエリア にメッセージを出力します。
しかし、メッセージを抑制したいときがあります。
たとえば一時ファイルの読み書きでは
黙っててほしいものです。
そこで shut-up というマクロを使います。
使い方は簡単で黙らせたいコードを (shut-up 〜 ) で囲むだけです。
すると、開発版Emacsで導入された inhibit-message = t に設定され、
message、write-region、load関数がメッセージを表示しなくなります。
また、 standard-output への出力もなくなります。
実際はメッセージを消しているのではなくて、
特定のバッファにリダイレクトしているだけですが、
shut-up-current-output 関数で蓄えられたメッセージを得られます。
;;; 何も表示しない (require 'shut-up) (shut-up (message "test") ;このメッセージが蓄積される (with-temp-buffer (insert "a silent message") (write-region nil nil "/tmp/silent-message.txt") ;黙って保存 (shut-up-current-output))) ; => "test\n"
shut-up.el は短いものの 一時的な関数再定義 をする
巧妙なテクニックを使っているのでコードを読んでみると
elispの勉強になるかと思います。
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてshut-upを使う方は
以下のコマンドを実行します。
M-x package-install shut-up
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name shut-up
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。