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