whitespace-mode 当 tab 占用一个空格宽度时对不齐的问题怎么解决?

whitespace-mode 只是简单的将 ?\t[?» ?\t] 做了映射。也就是说,屏幕上的每个 \t 都被替换成 »\t 显示。因为 \t 宽度是动态的,所以只要原始占用宽度大等于 2 就没问题。

例如当 tab-width 为 4 的时候,以下字符串占用的宽度是相同的:

Original Whitespace mode
\t »\t
\s\t \s»\t
\s\s\t \s\s»\t

一旦 \t 原始占用宽度小于 2,必然放不下 »\t,自然而然后面这个 \t 就被推到下一个位置。

这可能要该底层的 c 代码,当原始占用宽度等于 1 的时候只插入»

我暂时没找到在哪里修改。