ヘルプバッファスタイルで情報を表示したい場合があるため、次のようなコードを使用しています。
(with-help-window (help-buffer)
(princ "Type q to exit this help buffer.\n\n")
(princ result))
これは正常に機能しますが、ヘルプウィンドウはフレームの半分しか使用しません。私は通常、フレームを水平に分割して、2つの高い窓を作ります。表示されるヘルプバッファーは、2つのウィンドウのいずれかを使用します。
場合によっては、フレーム全体を使用して、より多くの情報を表示し、表示された情報をページ送りする必要がある回数を減らします。解決する問題は、with-help-window
呼び出しにフレーム全体を一時的に使用する方法と、ヘルプウィンドウで「q」を入力したときに、元のバッファー/ウィンドウサイズを自動的に復元する方法です。
この目標を達成するにはどうすればよいですか?私はこのようなものを探していると思います:
(with-FULL-FRAME-help-window (help-buffer)
...)
私は、勝者モード、ブックマーク、レイアウトをレジスターに保存すること、さまざまな(そして強力ですが複雑な)(display-buffer ...)
メソッドを見てきました。それらのほとんどは、フルフレームの表示操作後にレイアウトを修正/復元する傾向があるため、私の意図する意図から少しずれているように見えます。そして、それらの多くは手動でウィンドウレイアウトを復元する必要があるように思えます(私はこれを行いたくありません)。
誰かがこれを簡単に解決する方法を聞いたのではないかと思います。私はこれらの可能なアプローチのような単純な何かを望んでいます、そこで私は何かをletフレームで上書きすることができます...
(let ((help-window-width-display-option fullwidth))
(with-help-window (help-buffer)
...))
または、この方法はまだ方法がわからないので、現在のスキルレベルではやや難しい/トリッキーに見えます。
(let ((save original configuration somehow)
(delete-other-windows)
(with-help-window (help-buffer)
...)
;; somehow, when I type "q" in the help buffer
;; - catch that action in code after the buffer is killed
;; - and restore the original window configuration
)
一時的なヘルプモードバッファに「q」と入力したときに、元のウィンドウ構成を自動的に復元する方法が、解決すべき重要な問題のようです。ありがとう
display-buffer-pop-up-frame
探しているものにかなり近いので、私はすでに試しました。しかし...フレームが別の場所(現在のフレームではない)にポップアップし、ヘルプスタイルの "q"ではなく、cmd-wでそれをディスパッチする必要があります。ウィンドウ構成の保存/復元は根本的な問題ではありません。現在私はwith-help-windowのソースを複製して変更することに傾倒しており、バインドするか、defmacroなどでラップできるオプションを提供しています。私は、人々が私たちがEmacsに正確に欲しいものを望んでいるのをいかにうるさくするかを微笑んでいます。
help-return-method
、これらすべてを設定/使用して目的の効果を作成します。quit-window
quit-restore
display-buffer-pop-up-frame
/ software / emacs / manual / html_node / elisp / …を使用することです 。 別のアイデアは、新しいフレームをターゲットにするカスタム関数を使用してmake-frame
しばらく発行するdisplay-buffer
ことです。あなたが見つけると、既存の枠をターゲットに興味を持っている場合、この例を見てみましょう: stackoverflow.com/questions/18346785/...