Emacs 29.1 の What's New ピックアップ

Emacs 29.1のWhat'sの紹介記事を見て、自分的に気になったものを並べる。

split-root-window-below と split-root-window-right

ウィンドウ分割は C-x 2 で今のウィンドウを上下に分割、 C-x 3 で左右に分割なんだけど、例えばすでに左右に分割された状態で、その2つのウィンドウの下にウィンドウを入れようとしたときのコマンドがなかった。この例の場合についていえば、右のウィンドウを一度消してからc-x 2(上下分割), c-x 3(左右分割) とかなんとかしたりして、面倒だなと思っていた。必要になるのはたまにだけど。

そういうときに、今回追加された split-root-window-below (C-x w 2) とか split-root-window-right (C-x w 3) が使える。便利。

Emoji

emoji-list とか emoji-search とかで絵文字を挿入できるようになった。たぶん使わないけど、ためしておーとなった。

tree-sitter

使ってみたい。あとで時間あるときにためす。

pixel-scroll-precision-mode

普通のアプリケーションのように?なめらかなスクロールができるようになる。ためしてみたけどちょっとスクロール重くなったり固まったりして、そもそもマウスでスクロールする習慣ないからデフォルトで有効にはしないかな。

キーバインド、キーマップ設定関数

Use 'keymap-set' instead of 'define-key'.
Use 'keymap-global-set' instead of 'global-set-key'.
Use 'keymap-local-set' instead of 'local-set-key'.
Use 'keymap-global-unset' instead of 'global-unset-key'.
Use 'keymap-local-unset' instead of 'local-unset-key'.
Use 'keymap-substitute' instead of 'substitute-key-definition'.
Use 'keymap-set-after' instead of 'define-key-after'.
Use 'keymap-lookup' instead of 'lookup-key' and 'key-binding'.
Use 'keymap-local-lookup' instead of 'local-key-binding'.
Use 'keymap-global-lookup' instead of 'global-key-binding'.

define-keyglobal-set-key などに対応するあたらしい関数。今までの関数は使えなくなる訳ではないけれど、新しい方を推奨していくとのこと。参照記事にもあるけど、古い名前に馴染んでしまっているよなあ。まあleafとかuse-packageとか使っているとあまり気にする必要ないか。

Proced

proced-modeというのがあるのを今回知った。ためしてみてpsっぽい一覧が見えておーとなったけど、使わないかな..

Tramp

/docker:<コンテナ名> で動いているコンテナの中のファイルにアクセスできるようになった。コンテナ内のファイルをemacsでじっくり編集したくなることはあまりないけど、覚えておいてもいいかな。

Project

project-find-fileproject-kill-buffers など。project-find-file は Emacs 25のころからあったらしい。projectile を入れて projectile-find-file とか projectile-kill-buffers をよく使っているけど、それの代わりになるのかな。ivyとかその他パッケージがprojectile利用していそうなのでprojectileは消せないかな。それなら今のままでいいかな?

scratch-buffer

scratch buffer がなければ作るコマンド。これ欲しかった。たまにscratch buffer消しちゃったときに、やっぱり手頃なバッファーが欲しくなって scratchバッファーの作りかたを何度か検索した(そしてない事に驚いた)。Lisp評価できる必要ないし、適当な名前でバッファー作ればいいんだけども。initial-major-mode でscratch bufferのモード指定できたのか。fundamentalとかにしておくかな。

package-upgrade-all

大抵 list-package -> U -> x -> y と流れでやっているのを、ショートカットできる。何がアップデートされるのか分からないのはちょっと微妙。

M-SPC (cycle-spacing)

知らなかった。たくさんのスペースを1つにしたいときは多々あるので、覚えよう。記事にある M-^ (delete-indentation) も知らなかったけど、これも覚えよう。

restart-emacs

あるなら使うかもしれない。パッケージアップデートしたときとかゴミみたいなバッファーたくさんあって掃除したいときとか、再起動はたまにする。

duplicate-lineduplicate-dwim

C-a C-SPC C-n M-w C-yが染みついているのでいまさらという感じもあるが、よく使うものでもあるのでどこかに割り当てようかな。kill-ringが汚れないのもよい。

Global font size change (C-M + スクロールもしくは C-x C-M-=, C-x C-M--)

フォントサイズを変えたいときは大抵バッファーごとではなくてすべてのバッファーで変えたいのでうれしい。

ctrl + スクロール もしくは C-x C-=, C-x C-- でバッファー単位のフォントサイズ変更をしたときに、行番号とかtab-barのタブとかmode-lineとかの大きさが変わらなくて気持ち悪かったんだけど、こっちのフォントサイズ変更だと全部変わるのもうれしい。

Emacs is now capable of editing files with very long lines

たまにながーい行のあるファイルを扱うときにEmacsがおっっっそくなって心を無にすることがあるので、改善はうれしい。