So far, this is a collection of bits and pieces about configuring Vim.
Basics
The options can be set and read like variables with the ex command :set
.
A single :set
shows all options that differ from their default value.
An actual setting can be inspected with :set {option}?
.
There are toggle options, string and number values.
Toggle options are set with :set {toggle}
and reset with :set no{toggle}
.
The other options are set with :set {option}={value}
.
Options that are a list of flag characters can be modified
by adding or removing dedicated flags with :set {flags}+=a
or :set {flags}-=b
(to avoid overwriting the whole set of flags).
Many other operations are possible (e.g. inverting a toggle option),
refer to the help page.
With :verbose set {option}?
, vim displays where an option was set.
There are global settings and local settings only for the current buffer
:set
:setlocal
:setglobal
See: :help options
Config files
The main config file is $HOME/.vimrc
.
If the option exrc
is set, vim also reads an existing file .vimrc
in the working directory.
It can be used to override some settings on a per-project base.
See: :help vimrc
Modelines
Modelines are per-file settings. By default, vim checks the first and last 5 lines
for a modeline. It usually begins with a comment sign (depending on the programming
language e.g. //
for C, #
for Bash and Python, %
for LaTeX).
Then follows the marker vim:
.
Only the set
command is supported to avoid hostile text files manipulating your
editor and system.
Two forms are supported:
// vim: sw=3 ts=6
/* vim: set sw=3 ts=6 : */
The first form lists only the options to set separated either by space or colon.
The second form begins with set
and ends with a colon that can be followed by
other text, for example a comment terminator.
See: :help modeline
Further reading
Some packages with default configurations or to manage the config file will be described in an article about plugins.