205_emacs lisp load命令加载文件的信息依据

         完整的common lisp的学习集合整理如下:

         https://github.com/GreyZhang/g_lisp

         继续研究spacemacs配置,看到如下代码:

         这里面,首先判断语言元素。其中,file-name-directory是一个函数,load-file-name应该是一个变量。这个变量是什么地方定义的呢?从代码前后文中没有找到定义,看起来应该是一个emacs内置的变量。

         查看帮助找到信息如下:

         看起来,当前的值为nil。从描述看,这个是在基础的C代码中定义的一个量,存储的信息为load函数所加载的文件的完整的文件名称。那么,这个数值在执行的时候肯定不是nil,应该是在emacs运行的过程中不断变化的一个量。那么,emacs启动加载这个配置文件的时候,这个变量是一个什么值呢?

         为了探索上面的答案,加上一段代码,正好是前面刚刚学到的。

         这样,emacs重新启动之后,查看这个临时的const就可以知道这个动态变化的量在这里到底是一个什么数值了。信息查看如下:

         看起来,这个加载的文件正好是这个emacs的初始化的文件init.el。而这个文件,应该是emacs基础功能中设置的一些默认的行为。

         看起来,很多看似简单的代码,实现的背后还是比较深厚的技术积淀的。如果这个功能让我实现,或许我会直接考虑一个写死的目录或者是通过环境变量找一下home的位置然后做二次判断。相比之下,确实是不如现在的这份代码具有更好的技巧性。

其他的lisp相关的学习笔记汇总,可以参考如下链接:

         https://github.com/GreyZhang/g_lisp

 

发布了812 篇原创文章 · 获赞 163 · 访问量 172万+

猜你喜欢

转载自blog.csdn.net/grey_csdn/article/details/104175380