はじめに
そろそろリリースが予定されているEmacs27では、待望(?)のネイティブ実装のタブ機能が追加されます。
Emacs26で追加された行番号表示のネイティブ実装といい、最近はユーザ作成のパッケージをネイティブ実装する流れが多いですね。
Emacs27では2種類のタブ機能が追加されるので、それを今回はご紹介したいと思います。
Emacs27で追加される2つのタブ機能
Emacs27では、以下の2つが追加されます。
- tab-bar-mode
- tab-line-mode
それぞれ詳細にご紹介します。
tab-bar-mode (frameに設定されるタブ)
tab-bar-modeでは、frameに対してタブが設定されます。 M-x tab-bar-mode
でモードを有効化する他、 C-x t 2
でタブをあたらしく作ることができます。
frameに対してタブが設定されるので、タブを切り替えるとwindow一式が切り替わります。
プリフィックスはデフォルトでは、 C-x t
で、windowの切り替えに似た感じで、 C-x t o
でタブを切り替えることができます。
また、タブ名はデフォルトではフォーカスされたwindowのバッファ名ですが、 C-x t r
で、タブ名を設定することができます。上のGIFでは、それを使ってひとつめのタブを、 tab-1と命名しています。
tab-bar-modeはelscreenとかescreenとかの、screen系パッケージの挙動に似ていますね。
tab-line-mode (windowに対して設定されるタブ)
tab-line-modeは、windowに対してタブが設定されます。 M-x tab-line-mode
でカレントwindowに対してタブが設定される他、M-x global-tab-line-mode
ですべてのwindowに対してタブが設定されます。
デフォルトではキーバインドは特に設定されていないみたい。
windowに対して設定されるタブなので、バッファの一覧が追加されていき、それらを切り替えることが可能です。
まとめ
簡単ですが、emacs27で追加されるタブ機能について紹介しました。
これまでタブパッケージだと、tabbar.elをはじめ、tab-line-modeに近いバッファを切り替えるタブが多く、それってあまり意味ないなあと思って使ってなかったのですが、tab-bar-modeはおもしろいですね。
結構日々新しいメソッドなりfaceなりがコミットされている状況なので、HEAD民としては実際使ってみて、おもしろい機能があればまたご紹介したいと思っています。