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
这个动作,实际测试下来,不断解决了报错,也能够达到想要的目的。