206_emacs lisp根据文件完整名称获取文件所在目录

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

         https://github.com/GreyZhang/g_lisp

         感觉在实践中学习的这条路线算是走对了,最起码这两天感觉到了有很大的收获了。哪怕是简简单单的一个配置文件中的几行代码,都让我学到了不少东西。今天继续看之前没有分析学习完的配置文件。

         重点关注的功能就是高亮的那一行代码,这里面有一个一直没有学习过的函数file-name-directory。查看一下这个这个函数的说明:

         从介绍看,这个函数的功能是根据文件带有目录信息的完整文件名称获取文件所在的目录信息。如果,获取不到,也就是说文件的全名中并不包含合理的目录信息,返回nil。

         接下来做一下测试。

         第一个测试就是测试一下这里实际的运行传入参数,前面已经通过临时缓存的方式获取到了load-file-name的信息为:C:/Grey/.emacs.d/init.el。正好,接着这个结果做一下测试:

         看得出,上面的代码正确获取到了相应的目录。值得一说的是,文档信息里提示了这个目录以及文件信息的格式是unix的格式。接下来,反其道而行做一个其他的测试看看。

         首先可以确认的是,目录信息至少是判断错误了的。不知道这个字符串信息会不会有转义发生,改一个测试如下:

         看起来,这个的确有转义的意思。如此说来,给一个Windows格式的文件信息,也能够处理出一个unix格式的目录出来。

         最后,测试一下相对目录的处理:

         从上面结果看,这个相对目录的处理也是对的。其实也好理解,相对目录的格式本来也是unix的格式,按照文档的表述这自然是没有问题的。有了这么一个功能,比自己使用正则表达式处理信息确实是简单了不少。

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

         https://github.com/GreyZhang/g_lisp

 

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

猜你喜欢

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