Vim: Difference between revisions
From wikinotes
Line 70: | Line 70: | ||
|- | |- | ||
| [[viml]] | | [[viml]] | ||
|- | |||
| [[vim options]] | |||
|- | |- | ||
| [[vim keybindings]] | | [[vim keybindings]] |
Revision as of 18:06, 17 July 2021
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 options vim keybindings vim plugins
Components
vim commands vim filetypes vim folding vim buffers vim registers vim macros vim ctags
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