xref: /vim-8.2.3635/runtime/doc/filetype.txt (revision 12ee7ff0)
1*filetype.txt*  For Vim version 8.1.  Last change: 2019 May 05
2
3
4		  VIM REFERENCE MANUAL    by Bram Moolenaar
5
6
7Filetypes						*filetype* *file-type*
8
91. Filetypes					|filetypes|
102. Filetype plugin				|filetype-plugins|
113. Docs for the default filetype plugins.	|ftplugin-docs|
12
13Also see |autocmd.txt|.
14
15
16==============================================================================
171. Filetypes					*filetypes* *file-types*
18
19Vim can detect the type of file that is edited.  This is done by checking the
20file name and sometimes by inspecting the contents of the file for specific
21text.
22
23							*:filetype* *:filet*
24To enable file type detection, use this command in your vimrc: >
25	:filetype on
26Each time a new or existing file is edited, Vim will try to recognize the type
27of the file and set the 'filetype' option.  This will trigger the FileType
28event, which can be used to set the syntax highlighting, set options, etc.
29
30NOTE: Filetypes and 'compatible' don't work together well, since being Vi
31compatible means options are global.  Resetting 'compatible' is recommended,
32if you didn't do that already.
33
34Detail: The ":filetype on" command will load one of these files:
35		Amiga	    $VIMRUNTIME/filetype.vim
36		Mac	    $VIMRUNTIME:filetype.vim
37		MS-DOS	    $VIMRUNTIME\filetype.vim
38		RiscOS	    Vim:Filetype
39		Unix	    $VIMRUNTIME/filetype.vim
40		VMS	    $VIMRUNTIME/filetype.vim
41	This file is a Vim script that defines autocommands for the
42	BufNewFile and BufRead events.  If the file type is not found by the
43	name, the file $VIMRUNTIME/scripts.vim is used to detect it from the
44	contents of the file.
45	When the GUI is running or will start soon, the |menu.vim| script is
46	also sourced.  See |'go-M'| about avoiding that.
47
48To add your own file types, see |new-filetype| below.  To search for help on a
49filetype prepend "ft-" and optionally append "-syntax", "-indent" or
50"-plugin".  For example: >
51	:help ft-vim-indent
52	:help ft-vim-syntax
53	:help ft-man-plugin
54
55If the file type is not detected automatically, or it finds the wrong type,
56you can either set the 'filetype' option manually, or add a modeline to your
57file.  Example, for an IDL file use the command: >
58	:set filetype=idl
59
60or add this |modeline| to the file:
61	/* vim: set filetype=idl : */ ~
62
63						*:filetype-plugin-on*
64You can enable loading the plugin files for specific file types with: >
65	:filetype plugin on
66If filetype detection was not switched on yet, it will be as well.
67This actually loads the file "ftplugin.vim" in 'runtimepath'.
68The result is that when a file is edited its plugin file is loaded (if there
69is one for the detected filetype). |filetype-plugin|
70
71						*:filetype-plugin-off*
72You can disable it again with: >
73	:filetype plugin off
74The filetype detection is not switched off then.  But if you do switch off
75filetype detection, the plugins will not be loaded either.
76This actually loads the file "ftplugof.vim" in 'runtimepath'.
77
78						*:filetype-indent-on*
79You can enable loading the indent file for specific file types with: >
80	:filetype indent on
81If filetype detection was not switched on yet, it will be as well.
82This actually loads the file "indent.vim" in 'runtimepath'.
83The result is that when a file is edited its indent file is loaded (if there
84is one for the detected filetype). |indent-expression|
85
86						*:filetype-indent-off*
87You can disable it again with: >
88	:filetype indent off
89The filetype detection is not switched off then.  But if you do switch off
90filetype detection, the indent files will not be loaded either.
91This actually loads the file "indoff.vim" in 'runtimepath'.
92This disables auto-indenting for files you will open.  It will keep working in
93already opened files.  Reset 'autoindent', 'cindent', 'smartindent' and/or
94'indentexpr' to disable indenting in an opened file.
95
96						*:filetype-off*
97To disable file type detection, use this command: >
98	:filetype off
99This will keep the flags for "plugin" and "indent", but since no file types
100are being detected, they won't work until the next ":filetype on".
101
102
103Overview:					*:filetype-overview*
104
105command				detection	plugin		indent ~
106:filetype on			on		unchanged	unchanged
107:filetype off			off		unchanged	unchanged
108:filetype plugin on		on		on		unchanged
109:filetype plugin off		unchanged	off		unchanged
110:filetype indent on		on		unchanged	on
111:filetype indent off		unchanged	unchanged	off
112:filetype plugin indent on	on		on		on
113:filetype plugin indent off	unchanged	off		off
114
115To see the current status, type: >
116	:filetype
117The output looks something like this: >
118	filetype detection:ON  plugin:ON  indent:OFF
119
120The file types are also used for syntax highlighting.  If the ":syntax on"
121command is used, the file type detection is installed too.  There is no need
122to do ":filetype on" after ":syntax on".
123
124To disable one of the file types, add a line in your filetype file, see
125|remove-filetype|.
126
127							*filetype-detect*
128To detect the file type again: >
129	:filetype detect
130Use this if you started with an empty file and typed text that makes it
131possible to detect the file type.  For example, when you entered this in a
132shell script: "#!/bin/csh".
133   When filetype detection was off, it will be enabled first, like the "on"
134argument was used.
135
136							*filetype-overrule*
137When the same extension is used for two filetypes, Vim tries to guess what
138kind of file it is.  This doesn't always work.  A number of global variables
139can be used to overrule the filetype used for certain extensions:
140
141	file name	variable ~
142	*.asa		g:filetype_asa	|ft-aspvbs-syntax| |ft-aspperl-syntax|
143	*.asp		g:filetype_asp	|ft-aspvbs-syntax| |ft-aspperl-syntax|
144	*.asm		g:asmsyntax	|ft-asm-syntax|
145	*.prg		g:filetype_prg
146	*.pl		g:filetype_pl
147	*.inc		g:filetype_inc
148	*.w		g:filetype_w	|ft-cweb-syntax|
149	*.i		g:filetype_i	|ft-progress-syntax|
150	*.p		g:filetype_p	|ft-pascal-syntax|
151	*.sh		g:bash_is_sh	|ft-sh-syntax|
152	*.tex		g:tex_flavor	|ft-tex-plugin|
153
154							*filetype-ignore*
155To avoid that certain files are being inspected, the g:ft_ignore_pat variable
156is used.  The default value is set like this: >
157	:let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$'
158This means that the contents of compressed files are not inspected.
159
160							*new-filetype*
161If a file type that you want to use is not detected yet, there are four ways
162to add it.  In any way, it's better not to modify the $VIMRUNTIME/filetype.vim
163file.  It will be overwritten when installing a new version of Vim.
164
165A. If you want to overrule all default file type checks.
166   This works by writing one file for each filetype.  The disadvantage is that
167   means there can be many files.  The advantage is that you can simply drop
168   this file in the right directory to make it work.
169							*ftdetect*
170   1. Create your user runtime directory.  You would normally use the first
171      item of the 'runtimepath' option.  Then create the directory "ftdetect"
172      inside it.  Example for Unix: >
173	:!mkdir ~/.vim
174	:!mkdir ~/.vim/ftdetect
175<
176   2. Create a file that contains an autocommand to detect the file type.
177      Example: >
178	au BufRead,BufNewFile *.mine		set filetype=mine
179<     Note that there is no "augroup" command, this has already been done
180      when sourcing your file.  You could also use the pattern "*" and then
181      check the contents of the file to recognize it.
182      Write this file as "mine.vim" in the "ftdetect" directory in your user
183      runtime directory.  For example, for Unix: >
184	:w ~/.vim/ftdetect/mine.vim
185
186<  3. To use the new filetype detection you must restart Vim.
187
188   The files in the "ftdetect" directory are used after all the default
189   checks, thus they can overrule a previously detected file type.  But you
190   can also use |:setfiletype| to keep a previously detected filetype.
191
192B. If you want to detect your file after the default file type checks.
193
194   This works like A above, but instead of setting 'filetype' unconditionally
195   use ":setfiletype".  This will only set 'filetype' if no file type was
196   detected yet.  Example: >
197	au BufRead,BufNewFile *.txt		setfiletype text
198<
199   You can also use the already detected file type in your command.  For
200   example, to use the file type "mypascal" when "pascal" has been detected: >
201	au BufRead,BufNewFile *		if &ft == 'pascal' | set ft=mypascal
202								       | endif
203
204C. If your file type can be detected by the file name.
205   1. Create your user runtime directory.  You would normally use the first
206      item of the 'runtimepath' option.  Example for Unix: >
207	:!mkdir ~/.vim
208<
209   2. Create a file that contains autocommands to detect the file type.
210      Example: >
211	" my filetype file
212	if exists("did_load_filetypes")
213	  finish
214	endif
215	augroup filetypedetect
216	  au! BufRead,BufNewFile *.mine		setfiletype mine
217	  au! BufRead,BufNewFile *.xyz		setfiletype drawing
218	augroup END
219<     Write this file as "filetype.vim" in your user runtime directory.  For
220      example, for Unix: >
221	:w ~/.vim/filetype.vim
222
223<  3. To use the new filetype detection you must restart Vim.
224
225   Your filetype.vim will be sourced before the default FileType autocommands
226   have been installed.  Your autocommands will match first, and the
227   ":setfiletype" command will make sure that no other autocommands will set
228   'filetype' after this.
229							*new-filetype-scripts*
230D. If your filetype can only be detected by inspecting the contents of the
231   file.
232
233   1. Create your user runtime directory.  You would normally use the first
234      item of the 'runtimepath' option.  Example for Unix: >
235	:!mkdir ~/.vim
236<
237   2. Create a vim script file for doing this.  Example: >
238	if did_filetype()	" filetype already set..
239	  finish		" ..don't do these checks
240	endif
241	if getline(1) =~ '^#!.*\<mine\>'
242	  setfiletype mine
243	elseif getline(1) =~? '\<drawing\>'
244	  setfiletype drawing
245	endif
246<     See $VIMRUNTIME/scripts.vim for more examples.
247      Write this file as "scripts.vim" in your user runtime directory.  For
248      example, for Unix: >
249	:w ~/.vim/scripts.vim
250<
251   3. The detection will work right away, no need to restart Vim.
252
253   Your scripts.vim is loaded before the default checks for file types, which
254   means that your rules override the default rules in
255   $VIMRUNTIME/scripts.vim.
256
257						*remove-filetype*
258If a file type is detected that is wrong for you, install a filetype.vim or
259scripts.vim to catch it (see above).  You can set 'filetype' to a non-existing
260name to avoid that it will be set later anyway: >
261	:set filetype=ignored
262
263If you are setting up a system with many users, and you don't want each user
264to add/remove the same filetypes, consider writing the filetype.vim and
265scripts.vim files in a runtime directory that is used for everybody.  Check
266the 'runtimepath' for a directory to use.  If there isn't one, set
267'runtimepath' in the |system-vimrc|.  Be careful to keep the default
268directories!
269
270
271						*autocmd-osfiletypes*
272NOTE: this code is currently disabled, as the RISC OS implementation was
273removed.  In the future this will use the 'filetype' option.
274
275On operating systems which support storing a file type with the file, you can
276specify that an autocommand should only be executed if the file is of a
277certain type.
278
279The actual type checking depends on which platform you are running Vim
280on; see your system's documentation for details.
281
282To use osfiletype checking in an autocommand you should put a list of types to
283match in angle brackets in place of a pattern, like this: >
284
285	:au BufRead *.html,<&faf;HTML>  runtime! syntax/html.vim
286
287This will match:
288
289- Any file whose name ends in ".html"
290- Any file whose type is "&faf" or "HTML", where the meaning of these types
291  depends on which version of Vim you are using.
292  Unknown types are considered NOT to match.
293
294You can also specify a type and a pattern at the same time (in which case they
295must both match): >
296
297	:au BufRead <&fff>diff*
298
299This will match files of type "&fff" whose names start with "diff".
300
301
302							*plugin-details*
303The "plugin" directory can be in any of the directories in the 'runtimepath'
304option.  All of these directories will be searched for plugins and they are
305all loaded.  For example, if this command: >
306
307	set runtimepath
308
309produces this output:
310
311	runtimepath=/etc/vim,~/.vim,/usr/local/share/vim/vim60 ~
312
313then Vim will load all plugins in these directories and below:
314
315	/etc/vim/plugin/  ~
316	~/.vim/plugin/  ~
317	/usr/local/share/vim/vim60/plugin/  ~
318
319Note that the last one is the value of $VIMRUNTIME which has been expanded.
320
321Note that when using a plugin manager or |packages| many directories will be
322added to 'runtimepath'.  These plugins each require their own directory, don't
323put them directly in ~/.vim/plugin.
324
325What if it looks like your plugin is not being loaded?  You can find out what
326happens when Vim starts up by using the |-V| argument: >
327
328	vim -V2
329
330You will see a lot of messages, in between them is a remark about loading the
331plugins.  It starts with:
332
333	Searching for "plugin/**/*.vim" in ~
334
335There you can see where Vim looks for your plugin scripts.
336
337==============================================================================
3382. Filetype plugin					*filetype-plugins*
339
340When loading filetype plugins has been enabled |:filetype-plugin-on|, options
341will be set and mappings defined.  These are all local to the buffer, they
342will not be used for other files.
343
344Defining mappings for a filetype may get in the way of the mappings you
345define yourself.  There are a few ways to avoid this:
3461. Set the "maplocalleader" variable to the key sequence you want the mappings
347   to start with.  Example: >
348	:let maplocalleader = ","
349<  All mappings will then start with a comma instead of the default, which
350   is a backslash.  Also see |<LocalLeader>|.
351
3522. Define your own mapping.  Example: >
353	:map ,p <Plug>MailQuote
354<  You need to check the description of the plugin file below for the
355   functionality it offers and the string to map to.
356   You need to define your own mapping before the plugin is loaded (before
357   editing a file of that type).  The plugin will then skip installing the
358   default mapping.
359						*no_mail_maps*
3603. Disable defining mappings for a specific filetype by setting a variable,
361   which contains the name of the filetype.  For the "mail" filetype this
362   would be: >
363	:let no_mail_maps = 1
364<						*no_plugin_maps*
3654. Disable defining mappings for all filetypes by setting a variable: >
366	:let no_plugin_maps = 1
367<
368
369							*ftplugin-overrule*
370If a global filetype plugin does not do exactly what you want, there are three
371ways to change this:
372
3731. Add a few settings.
374   You must create a new filetype plugin in a directory early in
375   'runtimepath'.  For Unix, for example you could use this file: >
376	vim ~/.vim/ftplugin/fortran.vim
377<  You can set those settings and mappings that you would like to add.  Note
378   that the global plugin will be loaded after this, it may overrule the
379   settings that you do here.  If this is the case, you need to use one of the
380   following two methods.
381
3822. Make a copy of the plugin and change it.
383   You must put the copy in a directory early in 'runtimepath'.  For Unix, for
384   example, you could do this: >
385	cp $VIMRUNTIME/ftplugin/fortran.vim ~/.vim/ftplugin/fortran.vim
386<  Then you can edit the copied file to your liking.  Since the b:did_ftplugin
387   variable will be set, the global plugin will not be loaded.
388   A disadvantage of this method is that when the distributed plugin gets
389   improved, you will have to copy and modify it again.
390
3913. Overrule the settings after loading the global plugin.
392   You must create a new filetype plugin in a directory from the end of
393   'runtimepath'.  For Unix, for example, you could use this file: >
394	vim ~/.vim/after/ftplugin/fortran.vim
395<  In this file you can change just those settings that you want to change.
396
397==============================================================================
3983.  Docs for the default filetype plugins.		*ftplugin-docs*
399
400
401CHANGELOG						*ft-changelog-plugin*
402
403Allows for easy entrance of Changelog entries in Changelog files.  There are
404some commands, mappings, and variables worth exploring:
405
406Options:
407'comments'		is made empty to not mess up formatting.
408'textwidth'		is set to 78, which is standard.
409'formatoptions'		the 't' flag is added to wrap when inserting text.
410
411Commands:
412NewChangelogEntry	Adds a new Changelog entry in an intelligent fashion
413			(see below).
414
415Local mappings:
416<Leader>o		Starts a new Changelog entry in an equally intelligent
417			fashion (see below).
418
419Global mappings:
420			NOTE: The global mappings are accessed by sourcing the
421			ftplugin/changelog.vim file first, e.g. with >
422				runtime ftplugin/changelog.vim
423<			in your |.vimrc|.
424<Leader>o		Switches to the ChangeLog buffer opened for the
425			current directory, or opens it in a new buffer if it
426			exists in the current directory.  Then it does the
427			same as the local <Leader>o described above.
428
429Variables:
430g:changelog_timeformat  Deprecated; use g:changelog_dateformat instead.
431g:changelog_dateformat	The date (and time) format used in ChangeLog entries.
432			The format accepted is the same as for the
433			|strftime()| function.
434			The default is "%Y-%m-%d" which is the standard format
435			for many ChangeLog layouts.
436g:changelog_username	The name and email address of the user.
437			The default is deduced from environment variables and
438			system files.  It searches /etc/passwd for the comment
439			part of the current user, which informally contains
440			the real name of the user up to the first separating
441			comma.  then it checks the $NAME environment variable
442			and finally runs `whoami` and `hostname` to build an
443			email address.  The final form is >
444				Full Name  <user@host>
445<
446g:changelog_new_date_format
447			The format to use when creating a new date-entry.
448			The following table describes special tokens in the
449			string:
450				%%	insert a single '%' character
451				%d	insert the date from above
452				%u	insert the user from above
453                                %p	insert result of b:changelog_entry_prefix
454				%c	where to position cursor when done
455			The default is "%d  %u\n\n\t* %p%c\n\n", which produces
456			something like (| is where cursor will be, unless at
457			the start of the line where it denotes the beginning
458			of the line) >
459				|2003-01-14  Full Name  <user@host>
460				|
461				|        * prefix|
462<
463g:changelog_new_entry_format
464			The format used when creating a new entry.
465			The following table describes special tokens in the
466			string:
467                                %p	insert result of b:changelog_entry_prefix
468				%c	where to position cursor when done
469			The default is "\t*%c", which produces something
470			similar to >
471				|        * prefix|
472<
473g:changelog_date_entry_search
474			The search pattern to use when searching for a
475			date-entry.
476			The same tokens that can be used for
477			g:changelog_new_date_format can be used here as well.
478			The default is '^\s*%d\_s*%u' which finds lines
479			matching the form >
480				|2003-01-14  Full Name  <user@host>
481<			and some similar formats.
482
483g:changelog_date_end_entry_search
484			The search pattern to use when searching for the end
485			of a date-entry.
486			The same tokens that can be used for
487			g:changelog_new_date_format can be used here as well.
488			The default is '^\s*$' which finds lines that contain
489			only whitespace or are completely empty.
490
491b:changelog_name					*b:changelog_name*
492			Name of the ChangeLog file to look for.
493			The default is 'ChangeLog'.
494
495b:changelog_path
496			Path of the ChangeLog to use for the current buffer.
497			The default is empty, thus looking for a file named
498			|b:changelog_name| in the same directory as the
499			current buffer.  If not found, the parent directory of
500			the current buffer is searched.  This continues
501			recursively until a file is found or there are no more
502			parent directories to search.
503
504b:changelog_entry_prefix
505			Name of a function to call to generate a prefix to a
506			new entry.  This function takes no arguments and
507			should return a string containing the prefix.
508			Returning an empty prefix is fine.
509			The default generates the shortest path between the
510			ChangeLog's pathname and the current buffers pathname.
511			In the future, it will also be possible to use other
512			variable contexts for this variable, for example, g:.
513
514The Changelog entries are inserted where they add the least amount of text.
515After figuring out the current date and user, the file is searched for an
516entry beginning with the current date and user and if found adds another item
517under it.  If not found, a new entry and item is prepended to the beginning of
518the Changelog.
519
520
521FORTRAN							*ft-fortran-plugin*
522
523Options:
524'expandtab'	is switched on to avoid tabs as required by the Fortran
525		standards unless the user has set fortran_have_tabs in .vimrc.
526'textwidth'	is set to 72 for fixed source format as required by the
527		Fortran standards and to 80 for free source format.
528'formatoptions' is set to break code and comment lines and to preserve long
529		lines.  You can format comments with |gq|.
530For further discussion of fortran_have_tabs and the method used for the
531detection of source format see |ft-fortran-syntax|.
532
533
534GIT COMMIT                                              *ft-gitcommit-plugin*
535
536One command, :DiffGitCached, is provided to show a diff of the current commit
537in the preview window.  It is equivalent to calling "git diff --cached" plus
538any arguments given to the command.
539
540
541MAIL							*ft-mail-plugin*
542
543Options:
544'modeline'	is switched off to avoid the danger of trojan horses, and to
545		avoid that a Subject line with "Vim:" in it will cause an
546		error message.
547'textwidth'	is set to 72.  This is often recommended for e-mail.
548'formatoptions'  is set to break text lines and to repeat the comment leader
549		in new lines, so that a leading ">" for quotes is repeated.
550		You can also format quoted text with |gq|.
551
552Local mappings:
553<LocalLeader>q   or   \\MailQuote
554	Quotes the text selected in Visual mode, or from the cursor position
555	to the end of the file in Normal mode.  This means "> " is inserted in
556	each line.
557
558MAN					*ft-man-plugin* *:Man* *man.vim*
559
560Displays a manual page in a nice way.  Also see the user manual
561|find-manpage|.
562
563To start using the ":Man" command before any manual page was loaded, source
564this script from your startup vimrc file: >
565
566	runtime ftplugin/man.vim
567
568Options:
569'iskeyword'	the '.' character is added to be able to use CTRL-] on the
570		manual page name.
571
572Commands:
573Man {name}	Display the manual page for {name} in a window.
574Man {number} {name}
575		Display the manual page for {name} in a section {number}.
576
577Global mapping:
578<Leader>K	Displays the manual page for the word under the cursor.
579<Plug>ManPreGetPage  idem, allows for using a mapping: >
580			nmap <F1> <Plug>ManPreGetPage<CR>
581
582Local mappings:
583CTRL-]		Jump to the manual page for the word under the cursor.
584CTRL-T		Jump back to the previous manual page.
585q		Same as ":quit"
586
587To use a vertical split instead of horizontal: >
588	let g:ft_man_open_mode = 'vert'
589To use a new tab: >
590	let g:ft_man_open_mode = 'tab'
591
592To enable folding use this: >
593  	let g:ft_man_folding_enable = 1
594If you do not like the default folding, use an autocommand to add your desired
595folding style instead.  For example: >
596        autocmd FileType man setlocal foldmethod=indent foldenable
597
598You may also want to set 'keywordprg' to make the |K| command open a manual
599page in a Vim window: >
600	set keywordprg=:Man
601
602
603MANPAGER				      *manpager.vim*
604
605The :Man command allows you to turn Vim into a manpager (that syntax highlights
606manpages and follows linked manpages on hitting CTRL-]).
607
608For bash,zsh,ksh or dash, add to the config file (.bashrc,.zshrc, ...)
609
610	export MANPAGER="vim -M +MANPAGER -"
611
612For (t)csh, add to the config file
613
614	setenv MANPAGER "vim -M +MANPAGER -"
615
616For fish, add to the config file
617
618	set -x MANPAGER "vim -M +MANPAGER -"
619
620PDF							*ft-pdf-plugin*
621
622Two maps, <C-]> and <C-T>, are provided to simulate a tag stack for navigating
623the PDF.  The following are treated as tags:
624
625- The byte offset after "startxref" to the xref table
626- The byte offset after the /Prev key in the trailer to an earlier xref table
627- A line of the form "0123456789 00000 n" in the xref table
628- An object reference like "1 0 R" anywhere in the PDF
629
630These maps can be disabled with >
631	:let g:no_pdf_maps = 1
632<
633
634PYTHON						*ft-python-plugin* *PEP8*
635
636By default the following options are set, in accordance with PEP8: >
637
638	setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
639
640To disable this behavior, set the following variable in your vimrc: >
641
642	let g:python_recommended_style = 0
643
644
645R MARKDOWN						*ft-rmd-plugin*
646
647By default ftplugin/html.vim is not sourced. If you want it sourced, add to
648your |vimrc|: >
649	let rmd_include_html = 1
650
651The 'formatexpr' option is set dynamically with different values for R code
652and for Markdown code. If you prefer that 'formatexpr' is not set, add to your
653|vimrc|: >
654	let rmd_dynamic_comments = 0
655
656
657R RESTRUCTURED TEXT					*ft-rrst-plugin*
658
659The 'formatexpr' option is set dynamically with different values for R code
660and for ReStructured text. If you prefer that 'formatexpr' is not set, add to
661your |vimrc|: >
662	let rrst_dynamic_comments = 0
663
664
665RESTRUCTUREDTEXT					*ft-rst-plugin*
666
667The following formatting setting are optionally available: >
668	setlocal expandtab shiftwidth=3 softtabstop=3 tabstop=8
669
670To enable this behavior, set the following variable in your vimrc: >
671	let g:rst_style = 1
672
673
674RPM SPEC						*ft-spec-plugin*
675
676Since the text for this plugin is rather long it has been put in a separate
677file: |pi_spec.txt|.
678
679
680RUST							*ft-rust*
681
682Since the text for this plugin is rather long it has been put in a separate
683file: |ft_rust.txt|.
684
685
686SQL							*ft-sql*
687
688Since the text for this plugin is rather long it has been put in a separate
689file: |ft_sql.txt|.
690
691
692TEX						*ft-tex-plugin* *g:tex_flavor*
693
694If the first line of a *.tex file has the form >
695	%&<format>
696then this determined the file type:  plaintex (for plain TeX), context (for
697ConTeXt), or tex (for LaTeX).  Otherwise, the file is searched for keywords to
698choose context or tex.  If no keywords are found, it defaults to plaintex.
699You can change the default by defining the variable g:tex_flavor to the format
700(not the file type) you use most.  Use one of these: >
701	let g:tex_flavor = "plain"
702	let g:tex_flavor = "context"
703	let g:tex_flavor = "latex"
704Currently no other formats are recognized.
705
706
707VIM							*ft-vim-plugin*
708
709The Vim filetype plugin defines mappings to move to the start and end of
710functions with [[ and ]].  Move around comments with ]" and [".
711
712The mappings can be disabled with: >
713	let g:no_vim_maps = 1
714
715
716ZIMBU							*ft-zimbu-plugin*
717
718The Zimbu filetype plugin defines mappings to move to the start and end of
719functions with [[ and ]].
720
721The mappings can be disabled with: >
722	let g:no_zimbu_maps = 1
723<
724
725
726 vim:tw=78:ts=8:noet:ft=help:norl:
727