.vimrc is Vim's configuration file.
After you get used to using Vim, you can start customizing it by
adding lines to
.vimrc file goes in your home directory. The
. at the
beginning will hide the file from a normal
ls UNIX command (so as
not to clutter), but it is still there. You can edit the file from Vim
You can find my
.vimrc file on
It contains most of the settings described here.
To turn on syntax highlighting, add
You can change the colorscheme (replace
desert with any other
Indentation rules for different filetypes can be set:
filetype plugin indent on
The first thing you'll want to do is
This turns off Vi compatibility. This is especially important if you are using Vim on your class account.
"(double-quote) character begins a comment in VimScript.
set noerrorbells " Gets rid of beeping sound
set lines=50 " Vim starts with this many lines set columns=80 " You can change these numbers set textwidth=80 " This sets the 'virtual' line number
textwidth setting is useful when writing paragraphs (such as in
LaTeX), as it automatically forces overflowing text onto a newline. It
can be distracting when writing code, however, so you can always omit
set showcmd " Show (partial) command in status line set showmode " Show the current mode set laststatus=2 " Always show status line
The status line can contain useful information. For a full list of
things you can put there, type the Vim command
Here is the one I use:
set statusline=%.40F%=%m\ %Y\ Line:\ %3l/%L[%3p%%]
The full filepath is displayed on the left, and various things are displayed on the right — whether or not the file has been modified, the filetype, the line number, and the percentage through the file.
set nu " Set line numbering set scrolloff=5 " Keep at least 5 lines above/below cursor set mouse=a " Enable mouse usage in all modes set mousehide " Hide the mouse when typing
I personally like
scrolloff because it allows me to see ahead, but
it can be distracting for some people.
set ignorecase " Do case insensitive matching set smartcase " Unless you explicitly search for upper case set incsearch " Incremental search set hlsearch " Highlight searches set showmatch " Show matching parentheses
set expandtab " Uses spaces instead of tabs set tabstop=4 " Each tab is 4 spaces set shiftwidth=4 " Sets the >> and << width set autoindent
set nobackup " remove backup files set noswapfile " remove swap files
Only set these if you don't want backup files. Some people find them useful.
There are a couple of key-binding commands:
map: a simple map
remap: a "recursive map", which means that mappings are influenced by previous mappings
noremap: a "non-recursive map", which means mappings are not influenced by previous mappings
For mode-specific bindings, add a letter before each command. For
example, normal mode mappings are done with
Normal Mode Key Bindings
nnoremap ; : " Enter command mode faster
nnoremap <C-k> <C-w>k " Move along windows faster nnoremap <C-j> <C-w>j nnoremap <C-h> <C-w>h nnoremap <C-l> <C-w>l
nnoremap j gj " Move along rows, not lines nnoremap k gk " Useful for long lines nnoremap 0 g0 nnoremap $ g$
nnoremap <space> zz " Centers screen around cursor nnoremap n nzz nnoremap N Nzz
Command Mode Key Bindings
The following alias accidental shifts:
cnoremap W<CR> w<CR> cnoremap Q<CR> q<CR> cnoremap X<CR> x<CR> cnoremap Sh<CR> sh<CR> cnoremap sH<CR> sh<CR> cnoremap SH<CR> sh<CR>