1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
|
" MNV :autocmd command
" MNV_TEST_SETUP hi link mnvAutoCmdGroup Todo
" MNV_TEST_SETUP hi link mnvUserAutoEvent Title
" Define
autocmd foogroup BufRead *.txt echo "Foo" | echo "Bar"
autocmd BufRead *.txt echo "Foo" | echo "Bar"
autocmd BufRead,BufNewFile *.txt echo "Foo" | echo "Bar"
autocmd User FooEvent echo "Foo" | echo "Bar"
autocmd foogroup BufRead *.txt ++once echo "Foo" | echo "Bar"
autocmd BufRead *.txt ++once echo "Foo" | echo "Bar"
autocmd BufRead,BufNewFile *.txt ++once echo "Foo" | echo "Bar"
autocmd User FooEvent ++once echo "Foo" | echo "Bar"
autocmd foogroup BufRead *.txt ++nested echo "Foo" | echo "Bar"
autocmd BufRead *.txt ++nested echo "Foo" | echo "Bar"
autocmd BufRead,BufNewFile *.txt ++nested echo "Foo" | echo "Bar"
autocmd User FooEvent ++nested echo "Foo" | echo "Bar"
autocmd foogroup BufRead *.txt ++once ++nested echo "Foo" | echo "Bar"
autocmd BufRead *.txt ++once ++nested echo "Foo" | echo "Bar"
autocmd BufRead,BufNewFile *.txt ++once ++nested echo "Foo" | echo "Bar"
autocmd User FooEvent ++once ++nested echo "Foo" | echo "Bar"
autocmd foogroup BufRead <buffer> ++once ++nested echo "Foo" | echo "Bar"
autocmd foogroup BufRead <buffer=42> ++once ++nested echo "Foo" | echo "Bar"
autocmd foogroup BufRead <buffer=abuf> ++once ++nested echo "Foo" | echo "Bar"
autocmd BufRead <buffer> ++once ++nested echo "Foo" | echo "Bar"
autocmd BufRead <buffer=42> ++once ++nested echo "Foo" | echo "Bar"
autocmd BufRead <buffer=abuf> ++once ++nested echo "Foo" | echo "Bar"
autocmd BufRead,BufNewFile <buffer> ++once ++nested echo "Foo" | echo "Bar"
autocmd BufRead,BufNewFile <buffer=42> ++once ++nested echo "Foo" | echo "Bar"
autocmd BufRead,BufNewFile <buffer=abuf> ++once ++nested echo "Foo" | echo "Bar"
autocmd User FooEvent,BarEvent ++once ++nested echo "Foo" | echo "Bar"
autocmd foogroup BufRead f<buffer>oo ++once ++nested echo "Foo" | echo "Bar"
autocmd BufRead *.txt {
echo "Foo"
echo "Bar"
}
autocmd BufRead,BufNewFile *.txt {
echo "Foo"
echo "Bar"
}
autocmd User FooEvent {
echo "Foo"
echo "Bar"
}
autocmd foogroup BufRead *.txt {
echo "Foo"
echo "Bar"
}
" Multiline {cmd} arg
autocmd BufRead *.txt echo "Foo"
\| echo "Bar"
\| echo "Baz"
autocmd BufRead *.txt echo "Foo" |
\ echo "Bar" |
\ echo "Baz"
autocmd BufRead *.txt
"\ comment
\ echo "Foo" |
"\ comment
\ echo "Bar"
"\ comment
\| echo "Baz"
autocmd BufRead,BufNewFile *.txt
"\ comment
\ echo "Foo" |
"\ comment
\ echo "Bar"
"\ comment
\| echo "Baz"
autocmd User FooEvent
"\ comment
\ echo "Foo" |
"\ comment
\ echo "Bar"
"\ comment
\| echo "Baz"
autocmd foogroup BufRead *.txt
"\ comment
\ echo "Foo" |
"\ comment
\ echo "Bar"
"\ comment
\| echo "Baz"
" Multiple patterns
autocmd BufRead *.txt,*.mnv,*.c echo "Foo" | echo "Bar"
autocmd BufRead <buffer>,*.mnv,*.c echo "Foo" | echo "Bar"
autocmd BufRead *.txt,<buffer>,*.c echo "Foo" | echo "Bar"
autocmd BufRead *.txt,*.mnv,<buffer> echo "Foo" | echo "Bar"
autocmd BufRead <buffer=1>,<buffer=2>,<buffer=3> echo "Foo" | echo "Bar"
" FIXME: "BufRead" and "*" are valid group names, however, :help :augroup
" explicitly directs the user NOT to shadow event names with group names
autocmd BufRead BufRead *.txt ++once ++nested echo "Foo"
autocmd * BufRead *.txt ++once ++nested echo "Foo"
" Remove
autocmd! foogroup BufRead *.txt ++once ++nested echo "Foo" | echo "Bar"
autocmd! BufRead *.txt ++once ++nested echo "Foo" | echo "Bar"
autocmd! foogroup User FooEvent ++once ++nested echo "Foo" | echo "Bar"
autocmd! User FooEvent ++once ++nested echo "Foo" | echo "Bar"
autocmd! foogroup BufRead *.txt
autocmd! BufRead *.txt
autocmd! foogroup User FooEvent
autocmd! User FooEvent
autocmd! foogroup * *.txt
autocmd! * *.txt
autocmd! foogroup BufRead
autocmd! BufRead
autocmd! foogroup User FooEvent
autocmd! User FooEvent
autocmd! foogroup
autocmd!
" command -> bang -> group "!foogroup!"
autocmd!!foogroup!
" command -> bang -> group "foogroup"
autocmd!foogroup
" command -> bang -> event
autocmd!BufRead
" command -> bang -> user event
autocmd!User FooEvent
" FIXME: "*" and "BufRead" are valid group names, however, :help :augroup
" explicitly directs the user NOT to shadow event names
" command -> group "*" -> event glob -> pattern
autocmd!* * *.txt
" command -> group "BufRead" -> event "BufRead" -> pattern
autocmd!BufRead BufRead *.txt
" List
autocmd foogroup BufRead *.txt
autocmd BufRead *.txt
autocmd foogroup * *.txt
autocmd * *.txt
autocmd foogroup BufRead
autocmd BufRead
autocmd foogroup User FooEvent
autocmd User FooEvent
autocmd foogroup
autocmd
" :doautoall
doautoall BufRead
doautoall BufRead *.txt
doautoall foogroup BufRead
doautoall <nomodeline> BufRead
doautoall <nomodeline> foogroup BufRead *.txt
doautoall User FooEvent
doautoall foogroup User FooEvent
doautoall <nomodeline> User FooEvent
doautoall <nomodeline> foogroup User FooEvent
doautoall <nomodeline> foogroup BufRead *.txt | echo "Foo"
doautoall <nomodeline> foogroup BufRead *.txt " comment
" :doautocmd
doautocmd BufRead
doautocmd BufRead *.txt
doautocmd foogroup BufRead
doautocmd <nomodeline> BufRead
doautocmd <nomodeline> foogroup BufRead *.txt
doautocmd User FooEvent
doautocmd User FooEvent,BarEvent
doautocmd foogroup User FooEvent
doautocmd <nomodeline> User FooEvent
doautocmd <nomodeline> foogroup User FooEvent
doautocmd <nomodeline> foogroup BufRead *.txt | echo "Foo"
doautocmd <nomodeline> foogroup BufRead *.txt | " comment
" Patterns
au BufRead */*.txt
au BufRead */*.*
au BufRead */*.???
au BufRead */*.[t][x]t
au BufRead */*.[a-z][a-z]t
au BufRead */*.[[:alpha:][:alpha:]]t
au BufRead */*.[tx]\\\{2\}t
au BufRead */*.[a-z]\\\{2\}t
au BufRead */*.[[:alpha:]]\\\{2\}t
au BufRead */*.[^[:punct:]]\\\{2\}t
au BufRead */*.[]]xt
au BufRead */*.[^]]xt
au BufRead */*.[t\]]xt
au BufRead */*.[^t\]]xt
au BufRead */*.[[]xt
au BufRead */*.[^[]xt
au BufRead */*.[-]xt
au BufRead */*.[^-]xt
au BufRead */*.[-t-]xt
au BufRead */*.[^-t-]xt
au BufRead */*.[\^]xt
au BufRead */*.[^^]xt
au BufRead */*.txt,*/*.mnv
au BufRead */*.{txt,mnv}
au BufRead */*.{t{x,t},v{i,m}}
" literal
au BufRead */*.[]xt
au BufRead */*.[\]xt
au BufRead */*.[^]xt
au BufRead */*.[^\]xt
|