annotate runtime/doc/filetype.txt @ 9842:f8396c6e5709 v7.4.2196

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