Hiện tại, tôi sử dụng find-file-hook
để gọi quá trình biên dịch/kiểm tra tệp dài. Do đó, tôi phải đợi một thời gian để xem tệp. Những gì tôi muốn làm thay vào đó là để có thể xem (không chỉnh sửa) các tập tin đã có trong khi kiểm tra đang chạy, do đó tạo ra những ảo ảnh của biên dịch tức thời. Tôi có thể làm cái này như thế nào?Cách hiển thị tệp trong khi vẫn tìm trong tập tin-móc-móc
7
A
Trả lời
1
3
Sử dụng find-file-hook
có nghĩa là mã của bạn sẽ chạy trên mọi tệp bạn mở; bạn có phải là chắc chắn bạn muốn điều này không? Có thể có ý nghĩa hơn khi tạo một chế độ chính hoặc nhỏ mới cho loại tệp bạn muốn chạy xác thực của mình và sau đó sử dụng móc chế độ tương ứng tương ứng. Ví dụ, nếu bạn muốn kiểm tra tất cả các file .chk (với chế độ của bạn mới lớn kế thừa từ prog-mode
):
(define-derived-mode check-mode prog-mode "Checker")
(add-to-list 'auto-mode-alist '("\\.chk\\'" . check-mode))
(add-hook 'check-mode-hook 'check-mode-computation-hook)
Đối với móc thực tế, mã này (đi tắt bình luận Phils') làm việc cho tôi:
;;; -*- lexical-binding: t -*-
(defun slow-computation()
(dotimes (i 10000000)
(+ i 1)))
(defun check-mode-computation-hook()
(let ((cb (current-buffer))
(ro buffer-read-only))
(setq-local buffer-read-only t)
(run-at-time .1 nil
(lambda()
(with-current-buffer cb
(message "Loading...")
(slow-computation)
(setq-local buffer-read-only ro)
(message "Loaded!"))))))
Lưu ý, mặc dù, rằng mặc dù điều này sẽ hiển thị các tập tin, emacs vẫn sẽ được đông lạnh cho đến khi nó kết thúc xử lý của nó, như emacs doesn't actually support multithreading. Để giải quyết vấn đề này, bạn có thể phải sử dụng thư viện như async, deferred hoặc concurrent.
Các vấn đề liên quan
- 1. chức năng nội tuyến vẫn hiển thị trong tệp .prof
- 2. Cách "Hiển thị trong Trình tìm kiếm" hoặc "Hiển thị trong Explorer" với Qt
- 3. Angular2 Cách hiển thị trang lỗi trong khi vẫn giữ đường
- 4. Hiển thị văn bản ẩn trong khi tìm kiếm
- 5. Cách hiển thị tệp .gif trong imageview?
- 6. Làm thế nào để sử dụng IFileDialog với FOS_PICKFOLDER trong khi vẫn hiển thị tên tệp trong hộp thoại
- 7. NerdTree - Hiển thị tập tin trong cây
- 8. iPhone - có thể không hiển thị bàn phím nhưng vẫn hiển thị con trỏ trong UITextField?
- 9. khi cửa sổ bật lên vẫn hiển thị
- 10. ValidationSummary vẫn hiển thị sau khi sửa lỗi?
- 11. Xóa Tệp được hiển thị trong picturebox
- 12. Đoạn được thay thế vẫn hiển thị
- 13. Hiển thị danh sách tệp trong ListView
- 14. Hiển thị tệp trong Windows Explorer
- 15. UIPopovercontroller dealloc đã đạt được trong khi popover vẫn hiển thị
- 16. Flask foreign_keys vẫn hiển thị AmbiguousForeignKeysError
- 17. Làm cách nào để tạo nút có màu nền cho tvOS trong khi vẫn hiển thị tiêu điểm?
- 18. Hiển thị nút menu trên ICS trong khi vẫn giữ android: targetSdkVersion thành 14
- 19. Hiển thị một phần trong tệp js.erb
- 20. Cách hiển thị tên tệp đã chọn trước khi tải lên nhiều tệp trong Struts2?
- 21. Hiển thị các tệp HTML trong Grails
- 22. Cách hiển thị đường dẫn tệp đầy đủ trong PHPStorm?
- 23. Hiển thị tệp PDF trong Silverlight
- 24. Cách hiển thị Div trong khi nạp với Pace.JS
- 25. Cách tìm "Tên hiển thị" của dịch vụ trong .net?
- 26. Hiển thị một tệp trong Eclipse trong Windows explorer
- 27. Vô hiệu hóa một ListView trong C#, nhưng vẫn hiển thị lựa chọn hiện tại
- 28. Hiển thị tệp csv trong mảng
- 29. Nội dung tab vẫn hiển thị sau khi thay đổi tab sau khi thay đổi hướng
- 30. tập tin default.realm không hiển thị trong trình duyệt chrome
Bạn có thể tạo bộ đệm chỉ đọc và đặt bộ hẹn giờ để kích hoạt tác vụ tốn kém (trong đó, sau khi hoàn thành, sẽ làm cho bộ đệm có thể chỉnh sửa). – phils