Я искал вас и нашел это: C # окно формы для всех размеров экрана С изменением размера элементов управления и позиционирования Надеется, что это поможет вам
(let ((base "~/Projects/emacs"))
(add-to-list 'load-path base)
(dolist (f (directory-files base))
(let ((name (concat base "/" f)))
(when (and (file-directory-p name)
(not (equal f ".."))
(not (equal f ".")))
(add-to-list 'load-path name)))))
Вот что-то, что я использую в своем .emacs:
(let* ((my-lisp-dir "~/.elisp/")
(default-directory my-lisp-dir)
(orig-load-path load-path))
(setq load-path (cons my-lisp-dir nil))
(normal-top-level-add-subdirs-to-load-path)
(nconc load-path orig-load-path))
При рассмотрении описания для normal-top-level-add-subdirs-to-load-path это несколько умно о выборе который каталоги исключить.
Это моя взломанная версия: P
(defun add-to-list-with-subdirs (base exclude-list include-list)
(dolist (f (directory-files base))
(let ((name (concat base "/" f)))
(when (and (file-directory-p name)
(not (member f exclude-list)))
(add-to-list 'load-path name)
(when (member f include-list)
(add-to-list-with-subdirs name exclude-list include-list)))))
(add-to-list 'load-path base))
Это добавит все каталоги первого уровня из базы и исключит те из списка exclude, в то время как для каталогов в списке include он будет также добавьте все каталоги первого уровня этого каталога.
(add-to-list-with-subdirs "~/.emacs.d" '("." ".." "backup") '("vendor" "my-lisp"))