unix - textwidth - vim truncate long lines
VIM textwidth has no effect (4)
This feels like a dumb question, but I can't find an answer on the Internet (or in VIM help). I'm using VIM 7.2 on Mac OS X. All I want to do is wrap my lines at 72 characters, but doing
has no effect. The textwidth is being set correctly (I can see that when I just query ":set textwidth"), but neither existing lines nor new lines that I type after setting textwidth get wrapped. If I start a new line, still doesn't wrap. Open and close the file, no change. I've also tried :set wrapmargin=72 (with textwidth=0), with no effect.
What am I missing here?
I had this exact same issue and found the following solved the issue well enough for me:
autocmd FileType python setlocal textwidth=79 formatoptions+=t
Feel free to change
python to be your file type of choice (e.g.
* or comma separated list
:h fo-tablefor details of
I was looking for an answer to the same question and had to scramble around a bit before I found the solution in the VIM docs. So, i thought i will update the thread and save others the time.
The problem in my case was that the default ftplugin was disabling textwidth.
Just updating your .vimrc with (
:set tw=79 && :set formatoptions+=t) won't work since the fplugins are sourced after vimrc.
Here are the steps that i followed:
1) find out what your current formatoptions (inside vim)
:set formatoptions? formatoptions=croql (note no 't')
2) create a filetype.vim file as suggested by vimdocs (http://vimdoc.sourceforge.net/htmldoc/filetype.html#ftplugin-overrule)
Overrule the settings after loading the global plugin. You must create a new filetype plugin in a directory from the end of 'runtimepath'. For Unix, for example, you could use this file: vim ~/.vim/after/ftplugin/fortran.vim In this file you can change just those settings that you want to change.
3) add the line
:set formatoptions+=t &&
:set textwidth=79 in that file.
Voila! next time when you open the file it will set the textwidth to your desired characters.
As a debugging aid you can always check which file is overriding your vimrc setting by prepending your command with verbose. So for e.g. if i want to check who updated the formatoptions last, i would type
:verbose set formatoptions? formatoptions=croqlt Last set from ~/.vim/after/ftplugin/fortan.vim
Vim won't do anything unless requested.
textwidth will have an effect for currently edited lines if you either have
t (for non-comments only),
c (for comments only) or both in
a is not present there, then it will autowrap only when you reach the margin set by
textwidth), or if you use
gq to reformat your text. If I am not mistaking, you can set such
formatprg so that
textwidth will be ignored.
:set formatexpr? :set indentexpr? :set cindent? :set filetype? :set paste? :filetype
At least one of those (and I think all of them) will override the setting for
For example, if you're editing a C source file, the C indent rules override