すべてのウィンドウの単一モード行


9

すべてのウィンドウに対して1つのモード行(「ステータスバー」と呼ばれることもある)のみを設定することは可能ですか?

この単一モードの行に、現在選択されているバッファーに関する情報を表示させたいのですが。


2
おそらく、添付されたスレッドのコンセプトを借りて、各フレームの下部に専用のウィンドウを作成し、カスタムモードラインのみを表示することができますか? emacs.stackexchange.com/questions/7697/...
lawlist

確かに、フレームではなくウィンドウを意味しますか?
abo-abo 2015

良いキャッチ。はい、私は窓を意味します。
rgtk 2015

回答:


8

単一のモードラインの解決策はありませんが、次の2つの可能な解決策があります。

1.アクティブウィンドウでのみモードラインをレンダリングします。

powerlineを使用する場合、mode-line-formatを次のようにラップできます。

((:eval (when (powerline-selected-window-active) ...)))

次に、mode-line-inactive顔を変更して背景とブレンドしますが、バッファは次のように分離します。

(set-face-attribute 'mode-line-inactive nil
                    :underline t
                    :background (face-background 'default))

これは次のようになります。

ここに画像の説明を入力してください

2.を使用 frame-title-format

あなたのframe-title-formatGUIで実行しているとき、あなたのフレームの最上部に表示されるかを決定します。

設定しframe-title-format' like you would yourたモードラインformat`をし、それらは空白っぽい何かにあなたのモードライン形式を設定します。


4

私はついにこれをemacsをハッキングすることで達成しました。 デモ

ソースコードはhttps://github.com/amosbird/emacs/tree/onemodelineから入手できます。基本的には、ミニウィンドウのヘッダー行を使用して、現在のバッファーのモードラインをレンダリングします。


これはまだemacs 26.1で動作しますか?
rien333

@ rien333する必要があります。しかし、この方法は確かに非常に壊れやすいものです。ミニウィンドウが1行であることを必要とするハードコードされたロジックはまだあります。しかし、私はそれらすべてを見つけることができませんでした。
Amos
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.