Bạn đang tìm kiếm chức năng locate-dominating-file. Dưới đây là tài liệu emacs cho chức năng này:
(locate-dominating-file FILE NAME)
Tra cứu hệ thống phân cấp thư mục từ FILEcho một thư mục chứa
NAME. Dừng lại ở thư mục cha đầu tiên chứa một tệp NAMEvà trả về thư mục. Trả lại nilnếu không tìm thấy. Thay vì một chuỗi,
NAMEcũng có thể là một vị từ lấy một đối số (một thư mục) và trả về một giá trị không phải là không nếu thư mục đó là đối số mà chúng ta đang tìm kiếm.
Sử dụng điều này, câu trả lời của abo-abo có thể được rút ngắn thành
(defun desperately-compile ()
"Traveling up the path, find a Makefile and `compile'."
(interactive)
(when (locate-dominating-file default-directory "Makefile")
(with-temp-buffer
(cd (locate-dominating-file default-directory "Makefile"))
(compile "make -k"))))
projectilecó nhiều cách để biên dịchprojectile-project-root. Chẳng hạn, github.com/abo-abo/mus-make