emacs上久缺的满行指示器:hl-fill-column

fill column,就是满行,期望代码行的最大宽度。
太宽的代码影响可读性,
尤其是别人在读你的代码时,
如果他的界面宽度更窄,整个代码就乱掉了。

GNU的代码规范要求:一行不超过79个字符。
这个规范延伸自上古时代,彼时字符终端的宽度只有80个字符。

Vim上自带 fill column 指示,但是emacs上一直没有这个。以前的第三方工具,比如 fci 等等,特别慢不说,而且bug很多,经常把文档搞得乱七八糟。丑就更不用说了,到处都是小竖杠。

我刚从vim迁移到emacs时,实在受不了,于是自己写了这个包,后来被doom集成了。

下面是效果:

2 个赞

一般都是直接开auto-fill-mode或者visual-fill-column-mode了。。

27 新增了一个 display-fill-column-indicator-mode

6 个赞

一般都是直接开auto-fill-mode或者visual-fill-column-mode了。。

我也开了这两个,但是还是需要一个指示器:

  • 前者有时候并不会wrap,比如你把后面一行拼接到前面一行的时候。
  • 后者嘛,只是一个wrap了的视图,并不会改变文档本身。

还不知道呢,瞧瞧去。27的正式版应该也不远了吧。

前者光标移到行尾按一下空格就自动wrap了

后者主要是写org-mode的时候用,这样移动设备上不会难看

是的,我也是这么操作的。 所以有个指示器,发现超长了,就去处理一下。

我是完全依赖formatter了,保存的时候自动format下,提交代码git hook format下,CI还会查一下。。。

1 个赞

细细的一条很符合我的审美,比vi的大杠子舒服多了……

hl-fill-columndisplay-fill-column-indicator-mode 要更好,后者在终端下先打开文件,再开启 mode 会导致文件字符错误和自身的 column 线错位。

但是作者你这个插件如果能有参数绘制一条连贯的列就更好了,现在只能在有文字的行才绘制线,在行长短不一的文件中会导致出现多段线条,看起来比较花。

Emacs端的对齐很难做对齐, 有一个技巧就是, 在Emacs窗口蒙一层透明Gtk或者Qt窗口(或者图层), 这样才能实现像素级对齐线。