这个是指的要在emacs中从根本上所有核心mode中都解决这个问题吗?这个应该是没希望,但我觉得只要在org-mode中能解决就不错了,org-mode也是emacs中最需要这个的。
还是说我的理解又有问题,仅仅只是org-mode解决这个问题和emacs所有核心mode都解决这个问题难度是差不多的?
这个是指的要在emacs中从根本上所有核心mode中都解决这个问题吗?这个应该是没希望,但我觉得只要在org-mode中能解决就不错了,org-mode也是emacs中最需要这个的。
还是说我的理解又有问题,仅仅只是org-mode解决这个问题和emacs所有核心mode都解决这个问题难度是差不多的?
这个和 mode 关系应该不大,如果 org-mode 能完美解决,那么相同方法用在其他 mode 也可以。
并不是,org-mode的表格有明显的分界字符,所以org-mode的解决方法未必可以适用其他没有分界字符的情形。
你别说,这两天 emacs 大牛正在搞 min-width display 属性,我刚才试了试,也可以用来做中英文对齐,下面是测试代码,需要 emacs git
(defun eh-align-chinese ()
(interactive)
(dolist (window (window-list))
(save-window-excursion
(with-selected-window window
(let* ((inhibit-read-only t)
(buffer (window-buffer window))
(n1 (window-start window))
(n2 (window-end window))
(flag t))
(with-current-buffer buffer
(while flag
(let ((str (ignore-errors (buffer-substring n1 (+ n1 1)))))
(when (and str (stringp str) (string-match-p "\\cc" str))
(add-display-text-property n1 (+ n1 1) 'min-width (list 2.0))))
(setq n1 (+ n1 1))
(when (> n1 n2)
(setq flag nil)))))))))
(add-hook 'post-command-hook #'eh-align-chinese)
看起来有扔掉 sarasa 的可能?(好不容易才习惯了他这个瘦长的英文字体)
汉字两边加空白是相对最佳方案
现在主要问题不是行高吗?对齐的话,cn-fonts 已经满足一般需要了。
截图看起来不错? 。
我把这个代码放到 cnfonts 里面了,如果有人使用 emacs 29,就可以试试,使用 post-command-hook 来更新,感觉稍微有点影响性能,也可能是我的电脑太low
大佬,是不是很开心?
哈哈,确实有点,不过如何优化这个命令的性能,确实还需要考虑
哇,可以从sarasa解放了!
大佬,我来挖一下坟。 我简单测试了一下你的代码。能够很好的中英文对齐。非常有用。
但我看这个代码你始终没有合并到正式的分支。是在实际使用过程中有什么坑吗?
时间太长了,早忘记啥情况了
后来有了不需要调字体的对齐方案 GitHub - casouri/valign: Pixel-perfect visual alignment for Org and Markdown tables.
嗯,我目前使用的就是 valign 对齐。
只是偶然看到这个通过 ‘min-width 的方案,感觉比较简单,如果好用的话,又可以省去一个包了。
我现在还在用 cnfonts, 主要我熟悉它的代码,一般不会出现让人摸不着头脑的事情。