Vim

From wikinotes

A fast, customizable, cross platform mode based text editor that usually runs in a console.

Vim is uniqe in that it is modal:

  • text is written in insert mode
  • navigation is performed in normal mode
  • selections made in visual mode
  • commands entered in command mode

Each has it's own keybindings.


Documentation

:help https://vimhelp.org/

Locations

Unix
~/.vimrc user config
~/.vim user libraries, syntax, help, plugins, ...
${PREFIX}/share/vim/vim82 official config
${PREFIX}/share/vim/vimfiles distro config
Windows
%HOMEDRIVE%%HOMEPATH%/_vimrc user config
%HOMEDRIVE%%HOMEPATH%/vimfiles user libraries, syntax, help, plugins, ...

Basics

vim intro
vim install

Usage

vim cli
vim diff

Configuration

viml
vim keybindings
vim plugins

Components

vim commands
vim filetypes
vim folding
vim buffers
vim registers
vim macros
vim ctags


vim tips/tricks


Behaviour

Buffers

Buffers are any text that vim stores. It is typically associated with a file

Filetypes

sometimes you want to use syntax highlighting for files that aren't really programs. sometimes you want certain programs to be recognized as their proper filetype while using a different extension.

set filetype=python       #sets current filetype to python
set filetype=?            #query current filetype

au BufRead,BufNewFile *.cpy set filetype=python   #auto associate filetypes with extensions (in your .vimrc)

Macros

q<letter>    # start recording macro bound to <letter>
q            # stop recording

@<letter>    # play-back recording