#+TITLE: Valign.el

这个包能对齐 Org Mode、Markdown和table.el 的表格。它能对齐包含不等宽字体、中日韩字符、图片的表格。valign 不会影响 Org Mode（或 Markdown mode）基于等宽字符的对齐。

想要用 valign.el 的话，先加载 valign.el，然后把 ~valign-mode~ 加到 ~org-mode-hook~ 或 ~markdown-mode-hook~ 里即可。
#+begin_src emacs-lisp
(add-hook 'org-mode-hook #'valign-mode)
#+end_src

[[./default.png]]

[[./table.el.png]]

*已知问题:*

- Markdown Mode 里的隐藏链接依然会占用整个链接的宽度，因为隐藏链接用了 valign 还不支持的 character composition。
- 渲染大型表格（≥100行）速度较慢。

*注意:*

如果想要 valign 对齐 table.el 表格，表格里每个单元格的左侧不能有空格，右侧至少要有一个空格。可以用 [[https://github.com/casouri/ftable][ftable.el]] 自动布局表格成这样。

* 安装

键入如下内容，从 GNU ELPA 获取 valign.el:
#+begin_src 
M-x package-install RET valign RET
#+end_src

* 自定义

设置 ~valign-fancy-bar~ 为 ~non-nil~ 的效果如下:

[[./fancy-bar.png]]

仅影响 Org Mode和Markdown 的表格。

默认情况下，valign 不会在普通编辑命令之后对齐表格，例如 ~self-insert-command~ 和 ~backward-kill-word~​。如果你不想在某些命令后对齐表格，可以把命令加入 ~valign-not-align-after-list~ 中。

因为 valign 性能一般，所以我们不会对齐大于四千个字的表格。你可以修改 ~valign-max-table-size~ 改变这个限制。valign 会把 ~valign-table-fallback~ face 置于这些没有对齐的表格上。

其他自定义选项：
- ~valign-signal-parse-error~: 设为 non-nil，valign 遇到语法分析错误（parse error）时会报错提示。
- ~valign-lighter~: mode-line 里显示的标识。
- ~valign-box-charset-alist~: 用来定义 table.el 表格，比如 Unicode/ASCII 表格.

* 如果函数 advice 让你浑身发痒

~valign-mode~ 会加一些 advice，即使你关闭了 ~valign-mode~​，这些 advice 也不会消失 ，因为函数advice是全局起效，而 ~valign-mode~ 是局部起效。 如果你想删掉这些 advice，请用 ~valign-remove-advice~ 。 这时候如果有 buffer 里还开着 ~valign-mode~​，这些 buffer 里的 valign 将无法正常工作。
