Grey
全部学习汇总: GitHub - GreyZhang/editors_skills: Summary for some common editor skills I used.
全部学习内容汇总:
1836_emacs显示空白字符
show-trailing-whitespace是emacs中内置的一个变量,这个变量的值如果设置为nil那么不会显示行尾或者文档末尾的多余空白。在很多编码规范中,有这方面的要求,因此可以通过这个来起到提示作用。
主题由来介绍
早期学习使用spacemacs之后,习惯了里面的空白提示。我还曾经找过是否有专门的emacs内置功能来实现这样的功能,下面是我之前的部分笔记:
087_emacs设置空白显示-CSDN博客
上面笔记中的方法可以提供可用的功能,但是总体的效果还是不如我之前用过的spacemacs。最近找到了下面的一份文档描述:
Useless Whitespace (GNU Emacs Manual)
尝试了一下看了下效果,发现跟我期待的spacemacs的效果基本一致。
资料整理过程说明
由于spacemacs在我装了Windows系统的老机器上表现如同一个老人一般,因此我切换了我自己维护的一个较为轻量级的emacs配置。主要是想实现我自己所需要的功能,并且以“够用”、“简洁”、“轻量化”为原则。或许,从硬性的功能要求上来说,这个多余空白的显示也不是那么刚性的要求。但是之前一直把这个保持的还可以,不想妥协。
我现在的配置中使用了counsel,支持比较好的命令以及变量模糊搜索。我搜索了一下whitespace,之后找到了 show-trailing-whitespace 的变量,体验了一下之后发现比之前我用的 global-whitespace-mode 好用很多。显示的内容也是我期待的。
要点细节分析
show-trailing-whitespace 是一个buffer-local相关的变量。如下是帮助说明:
我尝试了在我自己的配置中加了 setq-default 来设置它的默认值,但是没有成功。后来直接在上面的帮助界面中进入了变量的配置页面,做了默认的配置。配置成功之后,在init.el中是能够看到多出来一部分配置信息的。具体如下:
如果这部分信息出现,说明配置成功了。
实际探索体验以及效果
简单看了几份代码,看到效果跟自己之前使用的spacemacs非常接近了。具体效果例子:
上面截图之中出现的色块就是多余的空白的提示效果。美观度稍微差了一点,比较扎眼,但是我觉得这并不是问题。越是扎眼,反倒是越容易催进我们对编辑内容的改善。
小结
这个功能成功挖掘出来,让自己对现在维护的这个配置的满意度又增加了不少。同时,借助于这种模糊搜索,我还找到了类似spacemacs中的空白删除功能。一个函数: delete-trailing-whitespace ,如下是部分帮助描述信息:
这个函数可以实现对这些多余空白的清除,如果在快捷键上设置成与spacemacs类似,也很容易找回丢失的使用体验。