Secara umum, saya tidak suka bingkai. Saat ini, saya menggunakan
(setq ediff-window-setup-function #'ediff-setup-windows-plain)
Untuk memastikan bahwa ediff
itu tidak membuat bingkai ketika dimulai.
Namun, perintah tertentu, seperti ediff-show-registry
masih membuka frame baru.
Apakah ada cara saya dapat sepenuhnya menonaktifkan pembuatan bingkai ediff
?
ediff-skip-unsuitable-frames
, atau berkomentar bahwa seluruhnya dalamediff-show-registry
- misalnya, komentar keluar:(ediff-skip-unsuitable-frames 'ok-unsplittable)
?ediff
keluarga perpustakaan(make-frame
dan Anda akan menemukan beberapa tempat yang perlu diperbaiki agar sesuai dengan preferensi Anda. Permintaan Anda tentu masuk akal, dan akan pantas (menurut saya) permintaan fitur kepada penulis dan / atau tim Emacs - kebanyakan orang akan menganggapediff-setup-windows-plain
harus berlaku di seluruh papan tanpa berbagaimake-frame
pengecualian.Jawaban:
Ada predikat internal di
ediff-init.el
, disebutediff-window-display-p
. Ketika saya mendefinisikannya kembali (setelah memuat ediff, tentu saja) seperti itu, semuanya bekerja dalam satu bingkai, termasuk fungsi yang Anda sebutkan sebagai masalah:Saya setuju dengan @lawlist bahwa ini adalah permintaan fitur yang bagus - untuk memperbaikinya
ediff-window-setup-function
.sumber
(advice-add 'ediff-window-display-p :override #'ignore)
, yang dapat lebih mudah dibalik denganadvice-remove
(ditambah tidak perlu memuat ediff terlebih dahulu).ediff-setup-windows-plain
mengambil alih seluruh bingkai - Saya ingin tetap membuka "konteks" jendela saya (mis. Catatan dan file lainnya). Jadi saya menulis fungsi pengaturan jendela khusus (menggunakan buffer-tampilan kustom yang didukung oleh jendela-ace untuk memilih di mana mungkin membagi windows dan menampilkan buffer baru). Tampaknya ketika Ediff melakukan booting, ia memeriksa iniediff-window-display-p
dan jika salah, memintas fungsi dan penggunaan pengaturan jendela kustomediff-setup-windows-plain
. Jadi untuk pengaturan khusus saya, saya akan menghindariediff-show-registry
, atau menulis perintah khusus.