git clone 'git://github.com/joostkremers/visual-fill-column.git'
visual-fill-column-mode is a small Emacs minor mode that mimics the effect of
visual-line-mode. Instead of wrapping lines at the window edge, which is the standard behaviour of
visual-line-mode, it wraps lines at
fill-column is too large for the window, the text is wrapped at the window edge.
visual-fill-column via Melpa, or put
visual-fill-column-mode.el in your load path, (optionally) byte-compile it, and add
(require ’visual-fill-column) to your
visual-fill-column-mode is primarily intended to be used alongside
visual-line-mode. If you’ve set the option
global-visual-line-mode, or if you activate
visual-line-mode in major mode hooks, you can customise the option
global-visual-fill-column-mode or add the command
(global-visual-fill-column-mode) to your init file.
visual-fill-column-mode will then be activated in every buffer that uses
If you don’t use either of these methods to start
visual-line-mode, and instead prefer to call
visual-line-mode interactively (i.e.,
M-x visual-line-mode), you can add
visual-line-mode-hook in order to activate it automatically when you call
visual-fill-column-mode is not tied to
visual-line-mode: it is perfectly possible to use it on its own, in buffers that use some other word-wrapping method (e.g.,
auto-fill-mode), or in buffers that do not wrap at all. You can activate it interactively with
visual-fill-column-mode or you can add the command
visual-fill-column-mode in mode hooks.
visual-fill-column-mode works by widening the right window margin. This reduces the area that is available for text display, creating the appearance that the text is wrapped at
fill-column. The amount by which the right margin is widened depends on the window width and is automatically adjusted when the window’s width changes (e.g., when the window is split in two side-by-side windows).
In buffers that are explicitly right-to-left (i.e., those where
bidi-paragraph-direction is set to
right-to-left), the left margin is expanded, so that the text appears at the window’s right side.
Widening the margin causes the fringe to be pushed inward. For this reason, the fringes are placed outside the margins by setting the variable
visual-fill-column-width: column at which to wrap lines. If set to
nil (the default), use the value of
visual-fill-column-center-text: if set to
t, centre the text area in the window. By default, the text is displayed at the window’s (left) edge, mimicking the effect of
visual-fill-column-fringes-outside-margins: if set to
t, put the fringes outside the margins.
All three options are buffer-local, so the values you set through Customize are default values. They can also be set in mode hooks or directory or file local variables in order to customise particular files or file types.