Emacs的自学的一些收获

缘起

感谢System Craft的教程,随着学习的深入,感觉自己对elisp的认识更为深入。由于org-roam的出现,使得org-mode现在又成为笔记的工具。相应的org-download也被用到了,奇怪的是之前的org-download配置在我使用use-package重新整理后无法正常运行,总是出现“Wrong type argument: stringp, nil”的报错,结果自己尝试地解决了一下,最后居然解决了,总结学习经验如下。

有用的学习方法

C-h v C-h f 等,特别是使用了 helpful 插件,除了查看说明外,对我来说最有用的就是 view in manual 里面可以直接看到使用的例子。

由于我在查找一个命令的报错,比如 buffer-name 我直接查找后,再根据例子在scatch或新建一个buffer直接测试,最简单的办法就是用 (message) 命令。

如当时报错的命令: (concat "./images/" (file-name-nondirectory (file-name-sans-extension (buffer-file-name))))))) 。问题是在后半段,目的是要取出当前buffer的文件名,我从最里面的开始试 (message (buffer-file-name)) 得到结果是当前buffer的全路径及文件名。再把另两个命令测试, file-name-sans-extension 作用是去掉文件的后缀名。 file-name-nondirectory 的作用是去掉路径部分,只保留文件名。通过一步步测试,就可以找到格式或命令写错的地方。 在这个问题里,在看文档时,偶然看见可以使用 (buffer-name) 直接得到没有路径的文件名,省掉 file-name-nondirectory 这个动作,实际测试下来,不断解决了报错,也能够达到想要的目的。

海上一民工

Related