autocommands for that group. Note: if you use an
undefined group name, Vim gives you an error message.
- After applying the autocommands the modelines are
- processed, so that their settings overrule the
- settings from autocommands, like what happens when
- editing a file.
-
*:doautoa* *:doautoall*
-:doautoa[ll] [group] {event} [fname]
+:doautoa[ll] [<nomodeline>] [group] {event} [fname]
Like ":doautocmd", but apply the autocommands to each
loaded buffer. Note that [fname] is used to select
the autocommands, not the buffers to which they are
This command is intended for autocommands that set
options, change highlighting, and things like that.
+ After applying the autocommands the modelines are
+ processed, so that their settings overrule the
+ settings from autocommands, like what happens when
+ editing a file. This is skipped when the <nomodeline>
+ argument is present.
+
==============================================================================
10. Using autocommands *autocmd-use*
int retval;
aco_save_T aco;
buf_T *buf;
+ char_u *arg = eap->arg;
+ int call_do_modelines = TRUE;
+
+ if (STRNCMP(arg, "<nomodeline>", 12) == 0)
+ {
+ call_do_modelines = FALSE;
+ arg = skipwhite(arg + 12);
+ }
/*
* This is a bit tricky: For some commands curwin->w_buffer needs to be
aucmd_prepbuf(&aco, buf);
/* execute the autocommands for this buffer */
- retval = do_doautocmd(eap->arg, FALSE);
+ retval = do_doautocmd(arg, FALSE);
- /* Execute the modeline settings, but don't set window-local
- * options if we are using the current window for another buffer. */
- do_modelines(curwin == aucmd_win ? OPT_NOWIN : 0);
+ if (call_do_modelines)
+ {
+ /* Execute the modeline settings, but don't set window-local
+ * options if we are using the current window for another
+ * buffer. */
+ do_modelines(curwin == aucmd_win ? OPT_NOWIN : 0);
+ }
/* restore the current window */
aucmd_restbuf(&aco);