Let’s look at
another nifty script example. Normally, when editing a new file, the
only clue Vim gets in order to determine and set
filetype is the file’s extension. For example,
.c means the file is C code. Vim
easily determines this and loads the correct behavior to make it easy
to edit a C program.
But not all files require an extension. For example, while it’s become common convention to create shell scripts with a .sh extension, this author doesn’t like or abide by this convention, especially having created thousands of scripts before a notion of this convention arose. Vim is actually sufficiently well-trained to recognize a shell script without the crutch of a file extension, by looking at the text inside the file. However, it can do so only on the second edit, when the file provides some context for determining the type. Vim scripts can fix that!
In our first script example, we relied on Vim’s habit of updating the status line constantly and “hid” our function in the status line to set the color scheme by time of day. Our script to determine the file type dynamically relies on a bit more formal Vim convention, autocommands.
Autocommands include any valid Vim commands. Vim uses events to execute commands. Some examples of Vim events include:
Triggers an associated command when Vim begins editing a new file
Triggers an associated command before Vim moves to a new buffer
Trigger an ...