这一次看的几个功能其实是emacs内置的功能,虽然涉及到lisp,但是主要还是围绕emacs来的,暂且把这部分的小结放到编辑器的学习归档当中。

       这一次主要是看几个字符串的处理函数。

       string-blank-p

       string-empty-p

       string-join

       string-reverse

       string-trim-left

       string-trim-right

       string-trim

       string-remove-prefix

       string-remove-suffix

       函数的功能其实根据名称基本就能看懂的,最后两个可能是需要查一下具体的文档。接下来,针对每一个功能都做一个简单的测试。在调用这些函数之前,需要引用subr-x这个模块。这在我之前使用spacemacs的时候是遇到过,有一个问题的解决根据网络经验就是需要引入这一个模块。

       通过测试,总结几个函数的功能。

       string-blank-p 如果字符串是空的或者全都是空白,那么返回0,否则返回nil。

       string-empty-p 如果字符串是空,返回t,否则返回nil。

927_emacs中的几个字符串的处理功能_后缀

       这是string-join的处理效果,把一个字符串列表的元素通过分隔符拼接起来。这个函数的内置的文档说明写的太简单了,让我在测试的时候遇到了一点疑惑。说明如下:

927_emacs中的几个字符串的处理功能_后缀_02

       接下来看一下string-reverse。

927_emacs中的几个字符串的处理功能_字符串_03

927_emacs中的几个字符串的处理功能_后缀_04

       从描述看,这个后面基本被废弃了。

927_emacs中的几个字符串的处理功能_emacs_05

       测试了一下替代的功能,工作效果一样。

       string-trim-left、string-trim-right

927_emacs中的几个字符串的处理功能_emacs_06

927_emacs中的几个字符串的处理功能_字符串_07

       另一个函数应该就是用来清空右边空白的,类似的效果,这里不再做演示。

927_emacs中的几个字符串的处理功能_后缀_08

       这个算是我熟悉的一个类似的处理方式了,但是我所熟悉的并不是emacs lisp的处理。其实,这个功能类似perl中的chomp和python中strip。

       String-remove-prefix

927_emacs中的几个字符串的处理功能_emacs_09

927_emacs中的几个字符串的处理功能_字符串_10

       这里误加了一个回车,但是也看到了这个效果。

927_emacs中的几个字符串的处理功能_字符串_11

       这个功能是一个严格的字符串匹配,还有一个后缀的移除,应该与之类似,我觉得对于移除扩展名什么的那将会是一个很好用的功能。

       我估计这一组函数用的人不多,理由如下:

927_emacs中的几个字符串的处理功能_后缀_12

       首先,没有良好的文档,本来就不是往这个方向去发展的。

927_emacs中的几个字符串的处理功能_emacs_13

       其次,几个函数的实现看起来都很简短,估计很多人直接用现成的方式甚至是与之类似的代码来实现自己的需求。