Saya terkadang ingin menampilkan informasi dalam gaya buffer Bantuan, jadi saya telah menggunakan kode seperti ini:
(with-help-window (help-buffer)
(princ "Type q to exit this help buffer.\n\n")
(princ result))
Ini berfungsi dengan baik, tetapi jendela bantuan hanya menggunakan setengah dari bingkai saya. Saya biasanya membagi bingkai saya secara horizontal, untuk memberikan dua jendela tinggi. Buffer bantuan yang ditampilkan menggunakan salah satu dari dua jendela.
Saya lebih suka menggunakan seluruh frame dalam beberapa kasus, untuk menampilkan lebih banyak informasi dan untuk mengurangi berapa kali saya perlu menelusuri informasi yang ditampilkan. Masalah yang harus dipecahkan adalah bagaimana untuk sementara waktu menggunakan seluruh frame untuk with-help-window
panggilan, dan untuk secara otomatis mengembalikan buffer / ukuran jendela ketika saya mengetik "q" di jendela bantuan.
Bagaimana cara terbaik untuk mencapai tujuan ini? Saya pikir saya sedang mencari sesuatu seperti ini:
(with-FULL-FRAME-help-window (help-buffer)
...)
Saya telah melihat mode pemenang, bookmark, menyimpan tata letak ke register, berbagai metode (dan kuat, tetapi kompleks) (display-buffer ...)
. Sebagian besar dari mereka tampaknya sedikit tidak sesuai dengan maksud yang saya inginkan karena mereka cenderung untuk memperbaiki / mengembalikan tata letak setelah operasi tampilan bingkai penuh. Dan menurut saya banyak dari mereka mengharuskan saya untuk secara manual mengembalikan tata letak jendela saya (yang saya lebih suka tidak melakukannya).
Saya bertanya-tanya apakah ada yang pernah mendengar cara untuk menyelesaikan ini dengan mudah. Saya berharap sesuatu yang sederhana seperti pendekatan yang mungkin ini, di mana saya dapat menimpa sesuatu dengan bingkai let ...
(let ((help-window-width-display-option fullwidth))
(with-help-window (help-buffer)
...))
Atau pendekatan semacam ini, yang saya belum tahu bagaimana melakukannya, dan yang terlihat agak sulit / rumit untuk tingkat keterampilan saya saat ini.
(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
)
Menurut saya masalah utama yang harus saya selesaikan adalah bagaimana mengembalikan secara otomatis konfigurasi jendela asli ketika saya mengetik "q" di buffer mode bantuan sementara. Terima kasih
display-buffer-pop-up-frame
, karena cukup dekat dengan apa yang saya cari. Tapi ... frame muncul di tempat lain (bukan frame saya saat ini), dan saya harus mengirimnya dengan cmd-w, bukan "q" dengan gaya bantuan. Menyimpan / mengembalikan konfigurasi jendela bukanlah masalah yang mendasarinya. Saat ini saya condong ke arah kloning dan memodifikasi sumber dengan-bantuan-jendela untuk memberikan opsi yang saya bisa ikat, atau bungkus dengan defmacro atau sesuatu. Saya tersenyum melihat betapa pemilih kami emacs orang pada keinginan persis apa yang kita inginkan dari Emacs.
help-return-method
, quit-window
, yang quit-restore
parameter jendela, dan mungkin beberapa kode kustom untuk set / menggunakan semua hal-hal untuk menciptakan efek yang diinginkan.
display-buffer-pop-up-frame
: gnu.org/software/emacs/manual/html_node/elisp/... Gagasan ide lainnya adalah mengeluarkanmake-frame
sementara menggunakandisplay-buffer
fungsi khusus untuk menargetkan frame baru itu. Jika Anda tertarik untuk mencari dan menargetkan bingkai yang ada, maka lihat contoh ini: stackoverflow.com/questions/18346785/…