annotate runtime/doc/filetype.txt @ 98:98435a8ddb09

updated for version 7.0038
author vimboss
date Fri, 14 Jan 2005 21:42:54 +0000
parents cc049b00ee70
children 73354c21f1e4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 10
diff changeset
1 *filetype.txt* For Vim version 7.0aa. Last change: 2004 Aug 31
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.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47 To add your own file types, see |new-filetype| below.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 If the file type is not detected automatically, or it finds the wrong type,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50 you can either set the 'filetype' option manually, or add a modeline to your
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 file. Example, for in an IDL file use the command: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52 :set filetype=idl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53 or add this |modeline| to the file: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
54 /* vim: set filetype=idl : */
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56 *:filetype-plugin-on*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57 You can enable loading the plugin files for specific file types with: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58 :filetype plugin on
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 If filetype detection was not switched on yet, it will be as well.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 This actually loads the file "ftplugin.vim" in 'runtimepath'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61 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
62 is one for the detected filetype). |filetype-plugin|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64 *:filetype-plugin-off*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65 You can disable it again with: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 :filetype plugin off
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 The filetype detection is not switched off then. But if you do switch off
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68 filetype detection, the plugins will not be loaded either.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69 This actually loads the file "ftplugof.vim" in 'runtimepath'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71 *:filetype-indent-on*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72 You can enable loading the indent file for specific file types with: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73 :filetype indent on
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74 If filetype detection was not switched on yet, it will be as well.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75 This actually loads the file "indent.vim" in 'runtimepath'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
76 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
77 is one for the detected filetype). |indent-expression|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
78
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79 *:filetype-indent-off*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80 You can disable it again with: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
81 :filetype indent off
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
82 The filetype detection is not switched off then. But if you do switch off
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
83 filetype detection, the indent files will not be loaded either.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
84 This actually loads the file "indoff.vim" in 'runtimepath'.
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 10
diff changeset
85 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
86 already opened files. Reset 'autoindent', 'cindent', 'smartindent' and/or
cc049b00ee70 updated for version 7.0014
vimboss
parents: 10
diff changeset
87 'indentexpr' to disable indenting in an opened file.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
88
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
89 *:filetype-off*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
90 To disable file type detection, use this command: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
91 :filetype off
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92 This will keep the flags for "plugin" and "indent", but since no file types
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
93 are being detected, they won't work until the next ":filetype on".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
94
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
95
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
96 Overview: *:filetype-overview*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
97
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
98 command detection plugin indent ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
99 :filetype on on unchanged unchanged
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
100 :filetype off off unchanged unchanged
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
101 :filetype plugin on on on unchanged
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
102 :filetype plugin off unchanged off unchanged
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
103 :filetype indent on on unchanged on
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
104 :filetype indent off unchanged unchanged off
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
105 :filetype plugin indent on on on on
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
106 :filetype plugin indent off unchanged off off
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
107
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
108 To see the current status, type: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
109 :filetype
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110 The output looks something like this: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
111 filetype detection:ON plugin:ON indent:OFF
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
112
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113 The file types are also used for syntax highlighting. If the ":syntax on"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
114 command is used, the file type detection is installed too. There is no need
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
115 to do ":filetype on" after ":syntax on".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
116
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
117 To disable one of the file types, add a line in the your filetype file, see
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
118 |remove-filetype|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
119
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
120 *filetype-detect*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
121 To detect the file type again: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
122 :filetype detect
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
123 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
124 possible to detect the file type. For example, when you entered this in a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125 shell script: "#!/bin/csh".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
126 When filetype detection was off, it will be enabled first, like the "on"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
127 argument was used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
129 *filetype-overrule*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
130 When the same extension is used for two filetypes, Vim tries to guess what
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131 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
132 can be used to overrule the filetype used for certain extensions:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
133
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
134 file name variable ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
135 *.asa g:filetype_asa |aspvbs-syntax| |aspperl-syntax|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
136 *.asp g:filetype_asp |aspvbs-syntax| |aspperl-syntax|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
137 *.asm g:asmsyntax |asm-syntax|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
138 *.prg g:filetype_prg
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
139 *.pl g:filetype_pl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
140 *.inc g:filetype_inc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
141 *.w g:filetype_w |cweb-syntax|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
142 *.i g:filetype_i |progress-syntax|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
143 *.p g:filetype_p |pascal-syntax|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
144 *.sh g:bash_is_sh |sh-syntax|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
145
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
146 *filetype-ignore*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
147 To avoid that certain files are being inspected, the g:ft_ignore_pat variable
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
148 is used. The default value is set like this: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
149 :let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
150 This means that the contents of compressed files are not inspected.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
151
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
152 *new-filetype*
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 10
diff changeset
153 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
154 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
155 file. It will be overwritten when installing a new version of Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
156
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
157 A. If you want to overrule all default file type checks.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
158 This works by writing one file for each filetype. The disadvantage is that
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
159 means there can be many files. The advantage is that you can simply drop
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
160 this file in the right directory to make it work.
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 10
diff changeset
161 *ftdetect*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
162 1. Create your user runtime directory. You would normally use the first
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
163 item of the 'runtimepath' option. Then create the directory "ftdetect"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
164 inside it. Example for Unix: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
165 :!mkdir ~/.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
166 :!mkdir ~/.vim/ftdetect
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
167 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
168 2. Create a file that contains an autocommand to detect the file type.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
169 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
170 au BufRead,BufNewFile *.mine set filetype=mine
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
171 < Note that there is no "augroup" command, this has already been done
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
172 when sourcing your file. You could also use the pattern "*" and then
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
173 check the contents of the file to recognize it.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
174 Write this file as "mine.vim" in the "ftdetect" directory in your user
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
175 runtime directory. For example, for Unix: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
176 :w ~/.vim/ftdetect/mine.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
177
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
178 < 3. To use the new filetype detection you must restart Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
179
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180 The files in the "ftdetect" directory are used after all the default
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181 checks, thus they can overrule a previously detected file type.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
182
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
183 B. If you want to detect your file after the default file type checks.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
184
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
185 This works like A above, but instead of setting 'filetype' unconditionally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
186 use ":setfiletype". This will only set 'filetype' if no file type was
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
187 detected yet. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
188 au BufRead,BufNewFile *.txt setfiletype text
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
189 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
190 You can also use the already detected file type in your command. For
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
191 example, to use the file type "mypascal" when "pascal" has been detected: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
192 au BufRead,BufNewFile * if &ft == 'pascal' | set ft=mypascal
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
193 | endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
194
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
195 C. If your file type can be detected by the file name.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
196 1. Create your user runtime directory. You would normally use the first
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
197 item of the 'runtimepath' option. Example for Unix: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
198 :!mkdir ~/.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
199 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
200 2. Create a file that contains autocommands to detect the file type.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
201 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
202 " my filetype file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
203 if exists("did_load_filetypes")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
204 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
205 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
206 augroup filetypedetect
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
207 au! BufRead,BufNewFile *.mine setfiletype mine
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
208 au! BufRead,BufNewFile *.xyz setfiletype drawing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
209 augroup END
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
210 < Write this file as "filetype.vim" in your user runtime directory. For
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
211 example, for Unix: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
212 :w ~/.vim/filetype.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
213
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
214 < 3. To use the new filetype detection you must restart Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
215
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
216 Your filetype.vim will be sourced before the default FileType autocommands
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
217 have been installed. Your autocommands will match first, and the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
218 ":setfiletype" command will make sure that no other autocommands will set
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
219 'filetype' after this.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
220 *new-filetype-scripts*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
221 D. If your filetype can only be detected by inspecting the contents of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
222 file.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
223
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
224 1. Create your user runtime directory. You would normally use the first
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
225 item of the 'runtimepath' option. Example for Unix: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
226 :!mkdir ~/.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
227 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
228 2. Create a vim script file for doing this. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
229 if did_filetype() " filetype already set..
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
230 finish " ..don't do these checks
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
231 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
232 if getline(1) =~ '^#!.*\<mine\>'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
233 setfiletype mine
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
234 elseif getline(1) =~? '\<drawing\>'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
235 setfiletype drawing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
236 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
237 < See $VIMRUNTIME/scripts.vim for more examples.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
238 Write this file as "scripts.vim" in your user runtime directory. For
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
239 example, for Unix: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
240 :w ~/.vim/scripts.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
241 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
242 3. The detection will work right away, no need to restart Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
243
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
244 Your scripts.vim is loaded before the default checks for file types, which
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
245 means that your rules override the default rules in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
246 $VIMRUNTIME/scripts.vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
247
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
248 *remove-filetype*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
249 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
250 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
251 name to avoid that it will be set later anyway: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
252 :set filetype=ignored
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
253
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
254 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
255 to add/remove the same filetypes, consider writing the filetype.vim and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
256 scripts.vim files in a runtime directory that is used for everybody. Check
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
257 the 'runtimepath' for a directory to use. If there isn't one, set
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
258 'runtimepath' in the |system-vimrc|. Be careful to keep the default
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
259 directories!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
260
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
261
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
262 *autocmd-osfiletypes*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
263 On operating systems which support storing a file type with the file, you can
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
264 specify that an autocommand should only be executed if the file is of a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
265 certain type.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
266
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
267 The actual type checking depends on which platform you are running Vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
268 on; see your system's documentation for details.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
269
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
270 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
271 match in angle brackets in place of a pattern, like this: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
272
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
273 :au BufRead *.html,<&faf;HTML> runtime! syntax/html.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
274
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
275 This will match:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
276
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
277 - Any file whose name ends in `.html'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
278 - Any file whose type is `&faf' or 'HTML', where the meaning of these types
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
279 depends on which version of Vim you are using.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
280 Unknown types are considered NOT to match.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
281
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
282 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
283 must both match): >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
284
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
285 :au BufRead <&fff>diff*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
286
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
287 This will match files of type `&fff' whose names start with `diff'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
288
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
289 Note that osfiletype checking is skipped if Vim is compiled without the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
290 |+osfiletype| feature.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
291
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
292 *plugin-details*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
293 The "plugin" directory can be in any of the directories in the 'runtimepath'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
294 option. All of these directories will be searched for plugins and they are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
295 all loaded. For example, if this command: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
296
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
297 set runtimepath
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
298
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
299 produces this output: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
300
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
301 runtimepath=/etc/vim,~/.vim,/usr/local/share/vim/vim60
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
302
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
303 then Vim will load all plugins in these directories: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
304
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
305 /etc/vim/plugin/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
306 ~/.vim/plugin/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
307 /usr/local/share/vim/vim60/plugin/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
308
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
309 Note that the last one is the value of $VIMRUNTIME which has been expanded.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
310
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
311 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
312 happens when Vim starts up by using the |-V| argument: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
313 vim -V1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
314 You will see a lot of messages, in between them is a remark about loading the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
315 plugins. It starts with: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
316 Searching for "plugin/*.vim" in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
317 There you can see where Vim looks for your plugin scripts.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
318
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
319 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
320 2. Filetype plugin *filetype-plugins*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
321
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
322 When loading filetype plugins has been enabled |:filetype-plugin-on|, options
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
323 will be set and mappings defined. These are all local to the buffer, they
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
324 will not be used for other files.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
325
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
326 Defining mappings for a filetype may get in the way of the mappings you
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
327 define yourself. There are a few ways to avoid this:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
328 1. Set the "maplocalleader" variable to the key sequence you want the mappings
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
329 to start with. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
330 :let maplocalleader = ","
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
331 < All mappings will then start with a comma instead of the default, which
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
332 is a backslash. Also see |<LocalLeader>|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
333
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
334 2. Define your own mapping. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
335 :map ,p <Plug>MailQuote
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
336 < You need to check the description of the plugin file below for the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
337 functionality it offers and the string to map to.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
338 You need to define your own mapping before the plugin is loaded (before
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
339 editing a file of that type). The plugin will then skip installing the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
340 default mapping.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
341
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
342 3. Disable defining mappings for a specific filetype by setting a variable,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
343 which contains the name of the filetype. For the "mail" filetype this
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
344 would be: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
345 :let no_mail_maps = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
346
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
347 4. Disable defining mappings for all filetypes by setting a variable: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
348 :let no_plugin_maps = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
349 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
350
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
351 *ftplugin-overrule*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
352 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
353 ways to change this:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
354
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
355 1. Add a few settings.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
356 You must create a new filetype plugin in a directory early in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
357 'runtimepath'. For Unix, for example you could use this file: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
358 vim ~/.vim/ftplugin/fortran.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
359 < You can set those settings and mappings that you would like to add. Note
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
360 that the global plugin will be loaded after this, it may overrule the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
361 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
362 following two methods.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
363
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
364 2. Make a copy of the plugin and change it.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
365 You must put the copy in a directory early in 'runtimepath'. For Unix, for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
366 example, you could do this: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
367 cp $VIMRUNTIME/ftplugin/fortran.vim ~/.vim/ftplugin/fortran.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
368 < 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
369 variable will be set, the global plugin will not be loaded.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
370 A disadvantage of this method is that when the distributed plugin gets
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
371 improved, you will have to copy and modify it again.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
372
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
373 3. Overrule the settings after loading the global plugin.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
374 You must create a new filetype plugin in a directory from the end of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
375 'runtimepath'. For Unix, for example, you could use this file: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
376 vim ~/.vim/after/ftplugin/fortran.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
377 < In this file you can change just those settings that you want to change.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
378
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
379 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
380 3. Docs for the default filetype plugins. *ftplugin-docs*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
381
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
382
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
383 CHANGELOG *changelog-plugin*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
384
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
385 Allows for easy entrance of Changelog entries in Changelog files. There are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
386 some commands, mappings, and variables worth exploring:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
387
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
388 Options:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
389 'comments' is made empty to not mess up formatting.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
390 'textwidth' is set to 78, which is standard.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
391 'formatoptions' the 't' flag is added to wrap when inserting text.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
392
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
393 Commands:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
394 NewChangelogEntry Adds a new Changelog entry in an intelligent fashion
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
395 (see below).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
396
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
397 Local mappings:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
398 <Leader>o Starts a new Changelog entry in an equally intelligent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
399 fashion (see below).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
400
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
401 Global mappings:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
402 NOTE: The global mappings are accessed by sourcing the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
403 ftplugin/changelog.vim file first, e.g. with >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
404 runtime ftplugin/man.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
405 < in your |.vimrc|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
406 <Leader>o Switches to the ChangeLog buffer opened for the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
407 current directory, or opens it in a new buffer if it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
408 exists in the current directory. Then it does the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
409 same as the local <Leader>o described above.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
410
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
411 Variables:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
412 g:changelog_timeformat The date (and time) format used in ChangeLog entries.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
413 The format accepted is the same as for the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
414 |strftime()| function.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
415 The default is "%Y-%m-%d" which is the standard format
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
416 for many ChangeLog layouts.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
417 g:changelog_username The name and email address of the user.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
418 The default is deduced from environment variables and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
419 system files. It searches /etc/passwd for the comment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
420 part of the current user, which informally contains
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
421 the real name of the user up to the first separating
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
422 comma. then it checks the $NAME environment variable
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
423 and finally runs `whoami` and `hostname` to build an
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
424 email address. The final form is >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
425 Full Name <user@host>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
426 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
427 g:changelog_new_date_format
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
428 The format to use when creating a new date-entry.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
429 The following table describes special tokens in the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
430 string:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
431 %% insert a single '%' character
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
432 %d insert the date from above
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
433 %u insert the user from above
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
434 %c where to position cursor when done
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
435 The default is "%d %u\n\n\t* %c\n\n", which produces
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
436 something like (| is where cursor will be, unless at
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
437 the start of the line where it denotes the beginning
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
438 of the line) >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
439 |2003-01-14 Full Name <user@host>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
440 |
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
441 | * |
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_entry_format
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
444 The format used when creating a new 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 %c where to position cursor when done
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
448 The default is "\t*%c", which produces something
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
449 similar to >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
450 | * |
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
451 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
452 g:changelog_date_entry_search
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
453 The search pattern to use when searching for a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
454 date-entry.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
455 The same tokens that can be used for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
456 g:changelog_new_date_format can be used here as well.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
457 The default is '^\s*%d\_s*%u' which finds lines
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
458 matching the form >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
459 |2003-01-14 Full Name <user@host>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
460 < and some similar formats.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
461
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
462 The Changelog entries are inserted where they add the least amount of text.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
463 After figuring out the current date and user, the file is searched for an
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
464 entry beginning with the current date and user and if found adds another item
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
465 under it. If not found, a new entry and item is prepended to the beginning of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
466 the Changelog.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
467
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
468
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
469 FORTRAN *fortran-plugin*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
470
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
471 Options:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
472 'expandtab' is switched on to avoid tabs as required by the Fortran
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
473 standards unless the user has set fortran_have_tabs in .vimrc.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
474 'textwidth' is set to 72 for fixed source format as required by the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
475 Fortran standards and to 80 for free source format.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
476 'formatoptions' is set to break code and comment lines and to preserve long
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
477 lines. You can format comments with |gq|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
478 For further discussion of fortran_have_tabs and the method used for the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
479 detection of source format see |fortran-syntax|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
480
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
481
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
482 MAIL *mail-plugin*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
483
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
484 Options:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
485 'modeline' is switched off to avoid the danger of trojan horses, and to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
486 avoid that a Subject line with "Vim:" in it will cause an
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
487 error message.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
488 'textwidth' is set to 72. This is often recommended for e-mail.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
489 'formatoptions' is set to break text lines and to repeat the comment leader
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
490 in new lines, so that a leading ">" for quotes is repeated.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
491 You can also format quoted text with |gq|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
492
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
493 Local mappings:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
494 <LocalLeader>q or \\MailQuote
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
495 Quotes the text selected in Visual mode, or from the cursor position
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
496 to the end of the file in Normal mode. This means "> " is inserted in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
497 each line.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
498
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
499 MAN *man-plugin* *:Man*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
500
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
501 Displays a manual page in a nice way. Also see the user manual
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
502 |find-manpage|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
503
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
504 To start using the ":Man" command before any manual page was loaded, source
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
505 this script from your startup vimrc file: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
506
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
507 runtime ftplugin/man.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
508
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
509 Options:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
510 'iskeyword' the '.' character is added to be able to use CTRL-] on the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
511 manual page name.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
512
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
513 Commands:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
514 Man {name} Display the manual page for {name} in a window.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
515 Man {number} {name}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
516 Display the manual page for {name} in a section {number}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
517
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
518 Global mapping:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
519 <Leader>K Displays the manual page for the word under the cursor.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
520
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
521 Local mappings:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
522 CTRL-] Jump to the manual page for the word under the cursor.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
523 CTRL-T Jump back to the previous manual page.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
524
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
525
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
526 RPM SPEC *spec-plugin*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
527
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
528 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
529 file: |pi_spec.txt|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
530
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
531
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
532 vim:tw=78:ts=8:ft=help:norl: