web-dev-qa-db-ja.com

ターミナルウィンドウのGNU Emacsメニューバーを取り除く

ターミナルウィンドウでEmacsのメニューバーを取り除く方法は?

標準的な答えは置くことです

(when (not (display-graphic-p))
  (menu-bar-mode -1))

init.elで。ただし、この解決策は適切ではありません。事後にメニューバーを削除するだけだからです。あなたはまだ一瞬それを見ることができます。とても迷惑です。

startup.elのソースコードを見ると、この問題の明確な解決策がわかりません。 before-init-hookを使うのが唯一の方法だと思います。多分これはトリックをすることができますか?

(add-hook 'before-init-hook
          (lambda ()
            (setq emacs-basic-display t)))

しかし、このフックはinit.elや他の初期化ファイルが評価される前に実行されるので、どのように使用することになっていますか?

6
Ernest A

これは、すべてのもののターミナルウィンドウのサイズに依存しているように思われることがわかりました。 terminatorxtermでテストしましたが、どちらの場合も、ウィンドウのサイズを大きくすると、emacsの読み込み中にメニューバーが表示されなくなりました。図に行きます。具体的には、端末の幅が88を超えると、メニューバッファが表示されなくなるようです。高さは関係ないようです。したがって、ターミナルウィンドウのデフォルトサイズを変更すると、問題が解決する可能性があります。

これは明らかに理想的なソリューションではなく、ターミナルエミュレータではなくttyから実行している場合は役に立ちませんが、私が想像するemacsソースコードを深く掘り下げずに取得できる最善の方法かもしれません。このような小さな煩わしさを取り除くために努力する価値はありません。

3
terdon

少なくともあなたが言及した瞬間的な出現で、最初にそれを抑制する方法があるとは思えません。 initial-frame-alistをカスタマイズしてみてください。しかし、ここで効果があるかどうかは疑問です。 emacs -nw -f menu-bar-modeを試してみたところ、メニューバーがオフになりましたが、最初は一瞬表示されます。

1
Drew