Không bao giờ tạo khung trong ediff


14

Nói chung, tôi không thích khung. Ngay bây giờ, tôi đang sử dụng

(setq ediff-window-setup-function #'ediff-setup-windows-plain)

Để đảm bảo rằng ediffkhông tạo ra một khung khi nó bắt đầu.

Tuy nhiên, một số lệnh nhất định, như ediff-show-registryvẫn mở ra các khung mới.

Có cách nào để tôi có thể vô hiệu hóa hoàn toàn việc tạo khung trong ediffkhông?


Làm thế nào về việc sửa đổi ediff-skip-unsuitable-frameshoặc nhận xét rằng ra hoàn toàn trong ediff-show-registry- ví dụ, bình luận ra: (ediff-skip-unsuitable-frames 'ok-unsplittable)?
luật

5
Trong khi bạn đang ở đó, hãy xem xét việc tìm kiếm nguồn gốc của các ediffthư viện (make-framevà bạn sẽ tìm thấy một vài nơi cần sửa chữa cho phù hợp với sở thích của bạn. Yêu cầu của bạn chắc chắn là hợp lý, và theo tôi, sẽ có một yêu cầu tính năng cho tác giả và / hoặc nhóm Emacs - hầu hết mọi người sẽ cho rằng ediff-setup-windows-plainnên áp dụng trên bảng mà không có make-framengoại lệ khác nhau .
luật

Câu trả lời:


3

Có một vị ngữ nội bộ trong ediff-init.el, được gọi là ediff-window-display-p. Khi tôi xác định lại nó (dĩ nhiên sau khi tải ediff), như vậy, mọi thứ đều hoạt động trong một khung duy nhất, bao gồm cả chức năng bạn đề cập như một vấn đề:

(defun ediff-window-display-p () nil)

Tôi đồng ý với @lawlist rằng đây là một yêu cầu tính năng hay - để khắc phục ediff-window-setup-function.


2
Điều này có thể được viết tốt hơn (advice-add 'ediff-window-display-p :override #'ignore), có thể dễ dàng đảo ngược hơn advice-remove(cộng với nó không yêu cầu tải ediff trước).
npostavs

@npostavs thật tuyệt! Cảm ơn mã thông minh hơn!
cyberbisson

Tôi đã thử điều này, nhưng nó không may làm cho ediff ngừng sử dụng chức năng thiết lập cửa sổ tùy chỉnh của tôi.
tboyce12

@ tboyce12 Điều đó thật khó hiểu ... tại sao bạn có chức năng thiết lập cửa sổ tùy chỉnh nếu bạn không muốn các cửa sổ mới (tức là khung) hiển thị? Hàm này làm gì?
cyberbisson

Tôi muốn có cửa sổ mới, nhưng không phải khung mới. Mặc định ediff-setup-windows-plainchiếm toàn bộ khung - Tôi muốn giữ các cửa sổ "ngữ cảnh" của mình mở (ví dụ: ghi chú và các tệp khác). Vì vậy, tôi đã viết một chức năng thiết lập cửa sổ tùy chỉnh (sử dụng bộ đệm hiển thị tùy chỉnh được cung cấp bởi ace-window để chọn nơi có thể chia cửa sổ và hiển thị bộ đệm mới). Có vẻ như khi Ediff khởi động, nó sẽ kiểm tra điều này ediff-window-display-pvà nếu sai, bỏ qua chức năng thiết lập cửa sổ tùy chỉnh và sử dụng ediff-setup-windows-plain. Vì vậy, đối với thiết lập tùy chỉnh của tôi, tôi sẽ tránh ediff-show-registryhoặc viết lệnh tùy chỉnh.
tboyce12
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.