気付いたらEmacsのバージョンも次は29というところまで進んできました。 最近あまりいじれていなかったのですが、NEWSを見てみるといろいろとこんな機能が入ったのかと思うのが多々あったのでご紹介します。
現時点では、Emacs 29がリリースされる日はわかりませんが、楽しみに待ちたいと思います。
というわけで、本稿はHEADのetc/NEWSからピックアップしてのご紹介となります。
https://emba.gnu.org/emacs/emacs/-/blob/master/etc/NEWS
フォントサイズの変更(グローバル反映)
C-x C-M-+
、 C-x C-M--
で全てのバッファのフォントサイズが変更できるようになりました。
これまで、 C-x C-+
C-x C--
でカレントバッファのフォントサイズは変更できましたが、
それのグローバル版になります。
使い道が思いつくようなつかないようなという感じですが、プレゼンする時などにはよさそうですね。
コマンド実行 M-xとM-X
これまであったインタラクティブなコマンドを実行する M-x (executive-extended-command)
がありましたが、
類似のコマンドとして M-X
が追加されました。
これは M-x
が全てのコマンドを実行できるのに対して、 M-X
はカレントバッファに関係あるコマンドだけが候補になります。
Scratchバッファでそれぞれ実行してみると、 M-X
のほうがコマンドの候補がはじめから絞られてることがわかります。
正直、絞り込みだったらIvyなりVerticoなり、その他絞り込みインタフェースが充実してるのでそちらを使うかな。 絞りこむには多少はコマンドを覚えてないといけないので、どうしても思いだせないときは役に立つかも。
行の複製 duplicate-line/duplicate-dwim
duplicate-line
duplicate-dwim
が追加されます。
その名の通り行の複製や、選択箇所をいいかんじに複製してくれます。
emacs lispの手習いで書いたりすると思いますが、まさか公式採用されるとは思わなかったですね。 あまり頭を使わずに編集する場合に複製して差分だけいじりたいって思うことはありつつ、 自分はコマンドを自作してこなかったので結構うれしいです。
Emacsの再起動 restart-emacs
restart-emacs
は、その名の通りEmacsを再起動するコマンドです。
再起動時は同じコマンドライン引数で起動してくれるようです。
パッケージいじってるときは結構再起動させて反映チェックすることが多いので、 嬉しいといえば嬉しいのかな……?
パッケージの更新 package-update
(追記) こちらリリース前にコマンドが修正されて、 package-upgrade
になったようです。(追記ここまで)
これまでpackage.elでインストールしたパッケージを更新したい場合は、 M-x list-packages
して
アップデートしたいものを選んで実行する必要がありました。
これが package-update
コマンドで実現できるようになります。
M-x package-update
すると、アップデートできるパッケージが候補に出てくるので、
そこから更新したいものを選んで実行すると簡単に更新できます。
すべての更新可能なパッケージを更新する package-update-all
もあります。
これまでパッケージの更新は、 package-refresh-contents
して、 list-packages
して
U
で一括選択して x
で実行となんだかんだ面倒だったので、
これが package-refresh-contents
package-update-all
で済むのは多少楽になりそうです。
未確認なのは、list-packagesだとparadoxが使えて並列アップデートができているはずなので
package-update-all
でもそれが利くのかどうか。
モードラインにはその表示がでなかったので数が多いと、もしかしたらlist-packagesの方が良いってこともありそうです。
(追記) 何度でも蘇えるさ scratch-buffer
Emacs起動時に生成され、Lispのちょっとした動作確認などにも使える *scratch*
バッファですが、
誤って消してしまって途方にくれたことある方もいるのではないでしょうか? 私はあります。
なんとそんな場合でも安心。 scratchバッファを再生成してくれる scratch-buffer
コマンドが追加されました。
そもそもバッファ名が重要なので、 *scratch*
という名前でバッファを作ればよいということが
Emacs-JP Slackで流れててそれ自体も目が点だったのですが、これで気軽にスクラッチできますね。
まとめ
今回は、Emacs 29の新機能から、本筋ではないちょっと面白系の更新をご紹介しました。 実はEmacs 29は、linumが撤廃されるとか結構アグレッシブな変更もあるようなので、 その辺も別途確認していきたいと思います。
関連記事
- init.elの大掃除
- Corfuでispellのエラーが出たので対処
- Emacsサマーフェスで登壇してきた
- Emacs 30で導入される予定のおもしろい機能の紹介
- EmacsのNative Compilationの性能を測定する
Share