" https://vimhelp.org/options.txt.html
" General sane defaults.
set nocompatible
syntax enable
colorscheme sorbet
nnoremap q:
set relativenumber
set nohlsearch
set smartcase
set ignorecase
set incsearch
set nowrap
set nobackup
set noswapfile
set autoread
set wildmenu
set autoindent
set encoding=utf8
set backspace=2
set scrolloff=4
set spelllang=en_us
" Buffer navigation remaps.
nnoremap :bnext
nnoremap :bprevious
nnoremap :buffers:buffer
" Commenting blocks of code.
augroup commenting_blocks_of_code
autocmd!
autocmd FileType c,cpp,go,scala let b:comment_leader = '// '
autocmd FileType sh,ruby,python let b:comment_leader = '# '
autocmd FileType conf,fstab let b:comment_leader = '# '
autocmd FileType lua let b:comment_leader = '-- '
autocmd FileType vim let b:comment_leader = '" '
augroup END
noremap gcc :silent s/^/=escape(b:comment_leader,'\/')/:nohlsearch
noremap gcu :silent s/^\V=escape(b:comment_leader,'\/')//e:nohlsearch
" Status Line enhancements.
set laststatus=2
set statusline=%f%m%=%y\ %{strlen(&fenc)?&fenc:'none'}\ %l:%c\ %L\ %P
hi StatusLine cterm=NONE ctermbg=black ctermfg=brown
hi StatusLineNC cterm=NONE ctermbg=black ctermfg=darkgray
" Language specific indentation.
filetype plugin indent on
autocmd Filetype make,go,sh setlocal noexpandtab tabstop=4 shiftwidth=4
autocmd Filetype c,cpp,html,javascript,css,python setlocal expandtab tabstop=2 shiftwidth=2
" Throwaway config.
au BufReadPost *.twig set syntax=html