Một câu hỏi thú vị. Tôi lưu trữ tất cả các dấu chấm của tôi trong kho lưu trữ và có một loạt các liên kết tượng trưng nằm rải rác trên toàn bộ hệ thống tệp, vì vậy đây là một vấn đề đã biết đối với tôi.
Đầu tiên, một nửa giải pháp:
(defalias 'yes-or-no-p 'y-or-n-p)
Bây giờ thay vì gõ đầy đủ yes
+ Nhập bạn có thể chỉ loại một đơn y hay n thư trong mọi tình huống nơi yes-or-no
được yêu cầu trong Emacs
.
Bây giờ, một giải pháp thực tế:
(defun vc-mode-hook()
(message buffer-file-name)
(when
(and
(file-exists-p (buffer-file-name))
(stringp buffer-file-name)
(or (string-equal "/home/ja/.fluxbox/keys" buffer-file-name)
(string-equal "<PATH_TO_ANOTHER_FILE>" buffer-file-name))
(setq-local vc-follow-symlinks t)
)))
(add-hook 'find-file-hook 'vc-mode-hook)
Ở đây chúng ta tạo ra một cái móc mới được gọi mỗi khi find-file
là gọi, ví dụ với C - x C - f hoặc e trong Dired
. Đầu tiên nó kiểm tra nếu tệp được truy cập thực sự tồn tại trên hệ thống tệp bằng cách sử dụng file-exists-p
vì không có ý nghĩa khi chạy tệp trên các tệp mà chưa được tạo. Tiếp theo, nó sẽ kiểm tra xem tên tệp có được biết đến bằng cách sử dụng stringp
- nó sẽ trả lại t
khi một tệp thông thường được mở nhưng nil
trong bộ đệm Dired
chẳng hạn. Và cuối cùng nó sẽ kiểm tra xem tên tệp có bằng một trong các chuỗi được cung cấp sử dụng string-equal
hay không. Nếu số điện thoại là, địa phương đặt vc-follow-symlinks
thành t
. Bạn có thể thêm bao nhiêu dòng string-equal
như bạn muốn.Trong ví dụ trên tôi đã thêm /home/ja/.fluxbox/keys
và trình giữ chỗ cho tên tệp khác trong dòng tiếp theo.
Nguồn
2017-05-02 14:51:20