annotate runtime/doc/filetype.txt @ 856:8cd729851562 v7.0g

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