This is something I use all the time. I don’t have it in my ~/.vimrc yet - partially because I haven’t got around to it, partially because I sometimes want to use different line lenghts, and partially because I don’t want to bikeshed myself trying to decide on what line length I want for different file formats.

Vim supports soft wrapping, which is something a bit different - it only affects the display of the line, not the actual line length. Softwrap is great for scripting or programming, where a line break in the wrong place might have a negative impact on your ability to actually compile and/or run the file!

Hard wrapping actually adds line break characters when the line exceeds a number of characters, and is therefore great for git commit messages, emails, blog posts, letters, and any other contexts where actual content is being written.

To set a hard wrap at a particular character length, simply run set tw= within a vim window. Don’t forget to use the ‘:’ character to enter into the appropriate mode (I think this is called ‘command mode’?) before running this. I usually use one of the following settings:

  • set tw=80
  • set tw=100
  • set tw=120

  • trending towards shorter lines for things like git commit messages, and longer lines for longform content like a blog post. When the line character count reaches the wrap limit you have set, it will automatically drop onto a new line, increasing the line count in the gutter on the left.

    tw demo