views:

171

answers:

3

I usually have to read .txt files with long lines, and at the same time edit some source file, and I like to see word wrap on the .txt files, and not in the ones that aren't.

Of course I can :set wrap and :set linebreak, but is there any way to make it automatucally, and dependent of the file extension?

+2  A: 

I guess :autocmd BufNewFile,BufRead *.txt set wrap should do the trick

Tassos
+4  A: 

There are two options that I can think of. Firstly, you can use an autocmd as suggested by Tassos:

:au BufNewFile,BufRead *.txt set wrap

See:

:help autocmd

An alternative (that is probably more applicable if you've got multiple settings as you have suggested): create a file in the after/ftplugin directory of your vim configuration folder (see below) called txt.vim and it will be sourced whenever you open a .txt file. You can put it in the plain ftplugin directory (rather than after/ftplugin), but it any built-in settings for .txt files will then not be loaded.

Put any commands you want in this file:

" This is txt.vim in the ftplugin directory
set wrap
set linebreak

See:

:help after-directory
:help ftplugin

Vim Configuration Folder

On Windows this would typically be something like:

C:\Documents and Settings\%USERNAME%\vimfiles\after\ftplugin\txt.vim

(I think), or

C:\Program Files\Vim\vimfiles\after\ftplugin\txt.vim

or even:

C:\vim\vimfiles\after\ftplugin\txt.vim

On Linux, it is:

~/.vim/after/ftplugin/txt.vim

For more info, see:

:help runtimepath
Al
"set nowrap" to achieve the opposite also
dysmsyd
For the ftplugin route, I also needed to add `au! BufNewFile,BufRead *.txt setf txt` to my `filetype.vim` file.
sirlancelot
A: 

you can do lot more with autocommand, refer here: http://www.thegeekstuff.com/2008/12/vi-and-vim-autocommand-3-steps-to-add-custom-header-to-your-file/

thegeek