shell-things/rc/vimrc

115 lines
2.8 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
" For accessibility tabs instead of spaces (uncomment for spaces instead of
" tabs)
"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
" I think leaving line endings to git may be more safe
" 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
" Keep text under 78 chars. Common Braille displays have 80, one reserved for
" line continuation, one for diffing?
" https://github.com/prettier/prettier/issues/7475#issuecomment-1484238440
set textwidth=78
" Marginal/line just before that. Set separately so it gets affected by
" editorconfig and modelines?
set colorcolumn=-1