jul*_*ien 45 emacs configuration elisp
我决定从头开始重写我的.emacs,我想设置一些模块化的东西,以避免一个可怕的1k + LoC init.el文件......
我认为每个配置都需要解决一些基本问题:
虽然我仍然想要通过结构,我正在寻找一些如何实现这一点的指针.
我在github等上看了一些.emacs,似乎有不同的方法,没有首选的方法,这有点令人困惑.
我有兴趣阅读有关如何构建这样的设置的一些想法,特别是一些相关的elisp代码.
编辑:已经赶上了事情,并没有太多时间玩这个.将在几天内尝试提出的方法,并看看什么是最好的,同时感谢所有的建议!
edit2:我一直在使用带有org-mode的文字初始化文件,这绝对太棒了!
我还没有设置一个特定的加载机制,我一直在使用这个代码,递归加载我的elisp目录,然后要求或任何设置说明说.
(if (fboundp 'normal-top-level-add-subdirs-to-load-path)
(let* ((my-lisp-dir "~/.emacs.d/elisp/")
(default-directory my-lisp-dir))
(setq load-path (cons my-lisp-dir load-path))
(normal-top-level-add-subdirs-to-load-path)))
Run Code Online (Sandbox Code Playgroud)
我仍然需要对此进行修改,可能使用自动加载,以及一些字节重新编译,如果修改了技巧; 我很乐意听到有关这方面的建议.
seh*_*seh 44
我的.emacs文件加载〜/ .emacs.d/init.el,它定义了以下函数,首先为XEmacs编写,但这些日子对Emacs运行良好:
(defconst user-init-dir
(cond ((boundp 'user-emacs-directory)
user-emacs-directory)
((boundp 'user-init-directory)
user-init-directory)
(t "~/.emacs.d/")))
(defun load-user-file (file)
(interactive "f")
"Load a file in current user's configuration directory"
(load-file (expand-file-name file user-init-dir)))
Run Code Online (Sandbox Code Playgroud)
然后文件的其余部分将加载大量单个文件,其形式如下:
(load-user-file "personal.el")
Run Code Online (Sandbox Code Playgroud)
我目前的文件集如下:
正如名字所暗示的,其中一些在意图上比其他一些更具体.文件越精细,在重新安装软件包或库时,就越容易禁用表单集群.当"移入"新系统时,这会非常有用,您可以在其中拖动配置文件但尚未安装所有支持包.
你可以(require 'foo)这样做,这将加载 elisp 在你的加载路径中找到的第一个“foo.el”,或者(require 'foo "/home/user/experimental/foo.el")加载路径之外的东西。如果“foo.el”不包含表达式,则会报告错误(provide 'foo)。在不正常的情况下,你可以这样做(require 'foo "bar.el"),只要“bar.el”有一个(provide 'foo)子句,这就会起作用。