I've got so used to using visual-line-mode in Emacs that I sometimes need reminding there are other ways of setting out work. Well, that's what the Emacs Work-Out is all about...
visual-line-mode wraps words at the boundaries of the editor, rather like a word processor does. This can sometimes be a nuisance, particularly when embedding source code in documents.
One solution is to go back to using fill-paragraph. I'm going to set the fill column to 50, for no good reason.
**C-x f 50** Set fill column to 50
Now write or copy some text into Emacs. I'm going
to use this paragraph. When I finish typing this
sentence I hit **M-q** right about now...
..and the paragraph is automatically wrapped at the extent of the fill column. You'll notice I didn't hit **M-q** for this paragraph.
What about all those extra carriage returns that get added? Well, if they bother you that much you can [use this function and key definition written by Stefan Monnier to unfill-paragraph_.](http://www.emacswiki.org/emacs/UnfillParagraph)
The chances are, however you won't need it very often. Most of the stuff I write is exported using org-export before it's published (see [My Emacs Writing Setup](http://www.tonyballantyne.com/EmacsWritingTips.html) for more details)
Export ignores single returns so
a
b
c
becomes a b c on export. In other words, filled paragraphs are exported as, well, paragraphs.
If you can't be bothered hitting **M-q** all the time, try setting **auto-fill-mode** or **refill-mode**.
Don't forget you can use **whitespace-mod**e to see non-printing characters and get a better idea of what's going on.
**M-x refill-mode**
**M-x whitespace-mode**
Fill prefixes are an old fashioned method of
;; writing comments in code. I've set a fill
;; prefix of ;; on this paragraph and hit M-q.
;; Note how the first line isn't prefixed
**C-x .** Set fill prefix as text up to the point.
**C-o** Add fill prefix to line
Lastly, you can left, right, fully and centre justify paragraphs, rather like this, if you really see the need.
**M-x set-justification-full**
**M-x set-justification-left**
**M-x set-justification-center**
**M-x set-justification-right**
**M-x set-justification-none**