====== VIM configuration ====== ===== Make VI default editor ===== In order to make vi the standard global default editor to edit crontab for example use this command for debian: update-alternatives --config editor and select vim.basic follow it by select-editor or\\ change the symlink to the default editor manually: rm /etc/alternatives/editor ln -s /usr/bin/vi /etc/alternatives/editor or\\ In order to make vi the global default editor in debian to edit crontab for example, either vi /etc/bash.bashrc and add this line at the end of the file: export EDITOR=vi export VISUAL=vi To make this change only for an individual user (whereby ~ is the home directory of the current user or change it to the home directory of the user this should be changed for): vi ~/.bashrc and add this line at the end of the file: export VISUAL=vi export EDITOR=vi ===== Debian 9 VIM Mouse issues ===== In Debian 9, vi/vim has mouse support enabled by default. While this makes it easy to go to a different area of the file via mouse clicks, it causes copy&paste to fail and/or to behave weirdly. To revert to the old behaviour, a local .vimrc file needs to be created. It can be empty (just containing a double quote sign which is a comment). When this file exists, the default config with mouse support (''/usr/share/vim/vim80/defaults.vim'') is not being loaded. Editing the defaults.vim file directly is discouraged as this will be overwritten by updates. vi ~/.vimrc add something to it. In the very least one double quoted line as a comment: "placeholder as /usr/share/vim/vim80/defaults.vim is loaded if no ~/.vimrc exists ===== Debian vim colour syntax highlighting ===== By default Debian installs vim-tiny which does not support syntax highlighting. To install all required modules for console use apt-get install vim then edit /etc/vim/vimrc vi /etc/vim/vimrc and enable syntax, dark backgrounds and remembering the previous cursor position by removing the double-quotes in front of the relevant lines like this: " Vim5 and later versions support syntax highlighting. Uncommenting the next " line enables syntax highlighting by default. syntax on " If using a dark background within the editing area and syntax highlighting " turn on this option as well set background=dark ===== Good default configuration ===== Add the configuration to your local .vimrc file in your home directory for various sensible and convenient settings: vi ~/.vimrc "placeholder as /usr/share/vim/vim80/defaults.vim is loaded if no ~/.vimrc exists syntax on set tabstop=4 " The width of a TAB is set to 4. " Still it is a \t. It is just that " Vim will interpret it to be having " a width of 4. set shiftwidth=4 " Indents will have a width of 4 set softtabstop=4 " Sets the number of columns for a TAB set expandtab " Expand TABs to spaces set nocompatible " Fix telnet issues where cursor keys add A B etc set mouse-=a " Disable automatic visual mode when selecting with mouse " Only do this part when compiled with support for autocommands. if has("autocmd") " Enable file type detection. " Use the default filetype settings, so that mail gets 'tw' set to 72, " 'cindent' is on in C files, etc. " Also load indent files, to automatically do language-dependent indenting. " Revert with ":filetype off". filetype plugin indent on " Put these in an autocmd group, so that you can revert them with: " ":augroup vimStartup | au! | augroup END" augroup vimStartup au! " When editing a file, always jump to the last known cursor position. " Don't do it when the position is invalid or when inside an event handler " (happens when dropping a file on gvim). autocmd BufReadPost * \ if line("'\"") >= 1 && line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif augroup END endif " has("autocmd") ===== More info ===== [[http://www.lagmonster.org/docs/vi.html|VIM Cheat Sheet]]