====== vim ====== As you might have noticed on other pages here, my editor-to-go-to is ''[[https://www.vim.org/|vim]]''. Fast, versatile, always available. The Debian default settings need some tweaking however, to make it //really// useful. ===== Packages ===== First of all, when you install ''vim'' in Debian, it (for some reason) also installs ''vim-tiny''. There have been occasions when this was suddenly the default editor and to prevent that from happening and always being able to use the fully-featured version, I just uninstall ''vim-tiny'': sudo apt purge vim-tiny Then, Debian packages lots of ''vim'' plugins by default. Have a look at the list and decide for yourself which ones you need or want: apt-cache search vim|sort|grep ^vim For me, I install these packages/plugins by default for some [[git]] added value as well as syntax highlighting for [[Puppet]] (''.pp'') files. sudo apt install vim-gitgutter vim-puppet ===== Settings ===== These settings make ''vim'' a lot more usable, especially when it comes to the information it gives you as well as some handy functionality. " DeskTux Handy Dandy vim settings syntax on " Enable Syntax Highlighting set background=dark " Use colors suited for dark backgrounds set showcmd " Show (partial) command in status line. set showmatch " Show matching brackets. set ignorecase " Do case insensitive matching set smartcase " Do smart case matching set incsearch " Incremental search set autowrite " Automatically save before commands like :next and :make set hidden " Hide buffers when they are abandoned set mouse-=a " Enable mouse usage (all modes) set ruler " Show current column and row "set number " Show line numbers " The 'Insert' mode knows two different operations, 'Insert' and 'Insert " (paste)'. The following settings make it possible to toggle between these " two modes using the key (and show the current mode in the status line) " so indentations of copied code will not get destroyed on pasting code. nnoremap :set invpaste paste? set pastetoggle= set showmode " Tabstops and indentation for Python and Puppet filetype plugin indent on au BufNewFile,BufRead *.py set tabstop=4 softtabstop=4 shiftwidth=4 expandtab smarttab autoindent au BufNewFile,BufRead *.pp set tabstop=2 softtabstop=2 shiftwidth=2 expandtab smarttab autoindent ~~DISCUSSION~~