2012-04-23 22 views
9

Tôi cần một lệnh để chạy bất cứ khi nào một khung hình mới được tạo trong Emacs. Cho đến nay tôi đã sử dụng after-make-frame-functions, nhưng móc này chỉ được gọi trên khung được tạo bởi make-frame. Tôi thực sự cần một cái gì đó chạy bất cứ khi nào lệnh emacsclient -c tạo một cửa sổ mới.Móc Emacs cho các khung hình mới

Có cách nào để đạt được điều đó không?

Trả lời

9

Tôi đang gặp khó khăn trong việc hiểu câu hỏi của bạn. Máy chủ Emacs gọi make-frame khi cần tạo khung mới, vì vậy, after-make-frame-functions cũng nên hoạt động trong trường hợp đó. Vậy vấn đề thực tế của bạn là gì?

Có phải bạn muốn chức năng của mình chạy ngay cả khi máy chủ Emacs không tạo khung mới? Nếu vậy, hãy thử thêm hàm của bạn vào server-switch-hook cũng như after-make-frame-functions.

server-switch-hook là một biến được xác định trong server.el.

Tài liệu: Móc chạy khi chuyển sang bộ đệm cho máy chủ Emacs .

+3

Có, đoạn đầu tiên của bạn là chính xác. Lệnh tôi muốn chạy hoạt động hoàn hảo khi tôi thực hiện 'make-frame', nhưng nó không hoạt động khi một khung mới được tạo bằng' emacsclient -c'. Vì vậy, tôi chỉ giả định rằng móc không được gọi bởi máy chủ khi tôi chạy 'emacsclient -c'. Bây giờ tôi đã thử nghiệm nhiều hơn một chút, và hóa ra chỉ có điều gì đó sai trái với lệnh của tôi. Xin lỗi vì câu hỏi vô nghĩa. – Malabarba

+3

Không sao cả. [Gỡ lỗi vịt cao su] (http://en.wikipedia.org/wiki/Rubber_duck_debugging) đang hoạt động! –

+2

Tuyệt vời! Tôi giới thiệu cho bạn khái niệm về gỡ lỗi vịt cao su meta bằng proxy, trong đó một người nào đó - ví dụ: bản thân mình - tìm một người có cùng vấn đề trên SO và phát hiện ra vấn đề không thực sự tồn tại. Tôi mắc nợ cả hai người. – leoger

Các vấn đề liên quan