Enabling and disabling word wrap automatically on

2019-02-13 20:28发布

问题:

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?

回答1:

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



回答2:

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


回答3:

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/