Automatic commands
Autocommands are a way to automatically execute code when
certain events happen.
-
:au :autocmd
:au[tocmd]
Execute commands automatically on events.
:au[tocmd] event pat cmd
If the -javascript (short name -js)
option is specified, cmd is executed as JavaScript
code, with any supplied arguments available as
variables.
Add cmd to the list of commands Vimperator will execute on event for a URL matching pat:
- :autocmd[!] events pat: list/remove autocommands filtered by events and pat
- :autocmd[!] events: list/remove autocommands matching events
- :autocmd[!] pat: list/remove autocommands matching pat
- :autocmd[!]: list/remove all autocommands
Available events:
- BookmarkAdd
- Triggered after a page is bookmarked
- ColorScheme
- Triggered after a color scheme has been loaded
- DOMLoad
- Triggered when a page's DOM content has fully loaded
- DownloadPost
- Triggered when a download has completed
- Fullscreen
- Triggered when the browser's fullscreen state changes
- LocationChange
- Triggered when changing tabs or when navigating to a new location
- PageLoadPre
- Triggered after a page load is initiated
- PageLoad
- Triggered when a page gets (re)loaded/opened
- PrivateMode
- Triggered when private mode is activated or deactivated
- Sanitize
- Triggered when privata data are sanitized
- ShellCmdPost
- Triggered after executing a shell command with :!cmd
- VimperatorEnter
- Triggered after Firefox starts
- VimperatorLeavePre
- Triggered before exiting Firefox, just before destroying each module
- VimperatorLeave
- Triggered before exiting Firefox
pat is a regular expression, use .* if you want to match all URLs.
This differs from Vim which uses a glob rather than a regex for pat.
The following keywords are available where relevant:
- <url>
- The URL against which the event was selected.
- <title>
- The page, bookmark or download title.
- <doc>
- The document for which the event occurred. Only for DOMLoad, PageLoad and PageLoadPre.
- <tab>
- The tab in which the event occurred. Only for DOMLoad, PageLoad and PageLoadPre.
- <tags>
- The tags applied to <url>. Only for BookmarkAdd.
- <keyword>
- The keywords applied to the bookmark. Only for BookmarkAdd.
- <icon>
- The icon associated with <url>. Only for BookmarkAdd.
- <size>
- The size of a downloaded file. Only for DownloadPost.
- <file>
- The target destination of a download. Only for DownloadPost.
- <state>
- The new state. Only for "Fullscreen" and PrivateMode.
- <name>
- The name of the item. Only for ColorScheme and Sanitize.
-
:doautoa :doautoall
:doautoa[ll] event url
Apply the autocommands matching the specified URL to all buffers. If no
url is specified use the current URL.
-
:do :doautocmd
:do[autocmd] event url
Apply the autocommands matching the specified URL to the current buffer. If no
url is specified use the current URL.
Examples
Enable passthrough mode on all Google sites:
:autocmd LocationChange .* js modes.passAllKeys = /google\.com/.test(buffer.URL)
Enable passthrough mode on *some* Google sites:
:autocmd LocationChange .* js modes.passAllKeys = /(www|mail)\.google\.com/.test(buffer.URL)
Set the filetype to mail when editing email at Gmail:
:autocmd LocationChange .* :set editor=gvim -f
:autocmd LocationChange mail\\.google\\.com :set editor=gvim -f -c 'set ft=mail'