emacs and tab
Table of Contents
Last modified: 20241015T1642+0900
2020年8月にリリースされたemacs27.1から、emacsはタブエディターに進化していたのに、つい最近まで知らなかった。(2024-10-15現在)
くやしいので紹介記事を書こうと思う。
Thunderbirdというメーラーがあり、重たいのに一定の人気があるのは、タブが使えるからだという説があるし、自分もそうだと思う。複数のメールを参照しながらメールを作成するようなときにとても便利だ。複数のWebページを「タブ」で切り替えて閲覧するタブブラウザーの仕組みがもとになっていると思われる。
emacsで複数の文書を読み込んで切り替えるのには、次の三つの方法がある。
- window
- frame
- tab
順番に見ていこう。
1. window
おなじみのやつで、フレームを横分割(C-x 2
)、または縦分割(C-x 3
)する。二つの文書を見比べるのには便利だが、三つ以上になると苦しい。
2. frame
22 Frames and Graphical Displays
一般的には「ウインドウ」と呼ぶが、emacsでは、「ウインドウ」が前の意味で使われるので、「フレーム」と呼んで区別する。やはり、たくさんのフレームを開いて作業するのは煩雑だ。MS Wordで複数の文書を選択して起動すると、この状態になる。
emacsで、新しいフレームを開くコマンドは C-x 5 2
。作業スペースとは違うところに何かを表示させておきたいときに使えるが、時間がたつとぐだぐだになってしまうことが多い。
3. tab
タブブラウザのように、一つのフレームの中に、複数の文書が「タブ」で切り替えられていく。文書間の行き来が簡単で、しかもタブに文書名が表示されているので、どの文書が開いているかが一目でわかる。
いわゆる「テキストエディター」と呼ばれるソフトウエアにはこの機能を備えているものが多い。
新しいタブを開くコマンドは、 C-x t 2
。
3.1. key bindings
キーストロークがちょとだけ長いので、使いやすいものに割り当てている。
(use-package emacs :bind ( ("s-<right>" . tab-next) ("s-<left>" . tab-previous) ("s-<up>" . tab-new) ("s-<down>" . tab-close) ("s-b" . switch-to-buffer-other-tab) ("s-n" . tab-new) ("s-o" . tab-next) ("s-w" . tab-close) ("s-<return>" . tab-switch) ) )
Macだと、 s-
は command
キーを押しながらを意味するので、矢印キーのそれぞれに、左右タブへの移動、タブの開閉を割り当ててみた。他には、 command
キーを使ったMacの標準的なキー操作を真似た動作を割り当てたが、最後の、 command-<return>
は便利。その時に開いているタブのリストが表示され、そこから選んで飛べる。