Sebastian Wiesner: Center Buffer Text in Emacs
Does this image look familiar? I always found Emacs’ tendency to stuck buffer text on the far left of a window particularly annoying, particularly on large screens where it doesn’t just look ugly but also forces you to keep your head twisted to the left in order to follow the buffer text.
Luckily Visual Fill Column Mode comes to the rescue. The purpose of this mode is actually to make buffer text wrap on the fill-column even in buffers that don’t use hard wrapping and typically have Visual Line Mode active―hence the name of this mode. By default it inherits Emacs’ left-wing tendency―which I’d absolutely agree, politically, but it just doesn’t make for a nice UI.
However there’s a tiny flag that makes Visual Fill Column Mode center text. My use package configuration looks as follows:(use-package visual-fill-column :ensure t :defer t :bind (("C-c t v" . visual-fill-column-mode)) :init (dolist (hook '(visual-line-mode-hook prog-mode-hook text-mode-hook)) (add-hook hook #'visual-fill-column-mode)) :config (setq-default visual-fill-column-center-text t))
The key is visual-fill-column-center-text which does, well, exactly what the name says and beautifully centers buffer text:
Of course, as with many things UI-related in Emacs, the implementation is a dirty hack: It extends the window margins to cover the empty area of the buffer. As hacks are hacks there are a couple of issues:The fringe still sticks far to the or right, keeping nice icons from Flycheck or diff-hl far away from the actual text. Text scale adjustments go unnoticed at first: Visual Fill Column has no chance to intercept text-scale-adjust or similar functions to recompute the margins so the alignment will be somewhat off after changing the text scale until the next redisplay.
But other than these Visual Fill Column Mode works perfect, and is now the default for all buffers in my Emacs, even if they don’t use visual-line-mode .
By the way, Visual Fill is a by-product of Writeroom Mode which is a very nice mode for distracting-free writing where the whole UI of the buffer is reduced, even more than Emacs’ normal UI. Take a look at it, too, if you like the idea.
本文系统（linux）相关术语:linux系统 鸟哥的linux私房菜 linux命令大全 linux操作系统