shell-things/rc/vimrc

108 lines
2.6 KiB
VimL

" I probably don't need to have Vi compatibility.
set nocompatible
" Show syntax colours
syntax on
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)
" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
set number " Show line numbers.
set ruler " Show the line and column number of the cursor position,
" separated by a comma.
set background=dark
"Use modelines!
set modeline
" These may be difficult with multiple languages especially if Vim already
" knows what to do
"set tabstop=4 "four spaces is likely a tab
"set shiftwidth=4
"set expandtab
set autoindent
" Longer history
set history=1000
" Extended % matching
runtime macros/matchit.vim
" Make tab filler useful.
" INVESTIGATE WHAT THIS ACTUALLY DOES?
set wildmenu
set wildmode=list:longest
" Flash, do not beep!
set visualbell
" gvim has light background
"if has('gui_running')
" set background=light
"endif
" Show hidden characters via
" https://www.perturb.org/display/679_Make_Vim_show_hidden_characters.html
set invlist
"Prefer to UNIX line endings, but understand DOS too.
set fileformats=unix,dos
"Use UTF-8!
set encoding=utf-8
set fileencoding=utf-8
" Remove BOMs. They broke things yesterday and now they wasted my time
" at school!
" via https://techwelkin.com/how-to-remove-byte-order-mark-bom-characters
set nobomb
" Apply rules per filetype.vim
set filetype
filetype plugin indent on
" Return to last edit position when opening files (You want this!)
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal! g`\"" |
\ endif
" dos2unix ^M copied from https://stackoverflow.com/a/5361702/1675649
fun! Dos2unixFunction()
let _s=@/
let l = line(".")
let c = col(".")
try
set ff=unix
w!
"%s/\%x0d$//e
catch /E32:/
echo "Sorry, the file is not saved."
endtry
let @/=_s
call cursor(l, c)
endfun
com! Dos2Unix keepjumps call Dos2unixFunction()
au BufReadPost * keepjumps call Dos2unixFunction()
" Highlight all search results
set hlsearch
" Red column on the right as indication on what I wish to consider as the
" maximum length of a line.
set colorcolumn=76