.dotfiles/vim/vimrc

125 lines
3.2 KiB
VimL

set nocompatible " iMproved only, no vi compatibility
set sessionoptions-=options " stop sessions from messing with 'runtimepath'
" Load plugins with Pathogen
execute pathogen#infect('bundle/{}', '~/.config/vim/bundle/{}')
syntax on
filetype plugin indent on
" get defaults
"source $VIMRUNTIME/defaults.vim
set backspace=indent,eol,start
set incsearch
set scrolloff=1000 " Center cursor, unless near edge
" other usability enhancements
set backupdir=~/.config/vim/backup/,.
set directory=~/.config/vim/swp/,.
set undodir=~/.config/vim/undo/,.
" Colorize and theme
set t_Co=16
let g:gruvbox_contrast_dark="hard"
let g:gruvbox_italic=1
let g:gruvbox_bold=1
let g:gruvbox_underline=1
let g:gruvbox_undercurl=1
let g:gruvbox_termcolors=256
set background=dark
colorscheme gruvbox
" autocmd vimenter * colorscheme gruvbox
"autocmd vimenter * colorscheme gruvbox
"theme autoload/airline/themes/gruvbox.vim
" colorscheme autoload/lightline/colorscheme/gruvbox.vim
" colorscheme base16-gruvbox-dark-hard
set ttyfast
set termguicolors
set laststatus=2
set guioptions-=e
set encoding=utf-8
set autoread
set autoindent
set hlsearch
set number
set noswapfile
set title
syn on se title
set ts=8
set softtabstop=8
set shiftwidth=8
set expandtab
" Show tabs and trailing spaces
set list listchars=tab:»\ ,trail
set spelllang=en_ca
" Strip whitespace on save
fun! <SID>StripTrailingWhitespaces()
" Preparation: save last search, and cursor position.
let _s=@/
let l = line(".")
let c = col(".")
" Do the business:
%s/\s\+$//e
" Clean up: restore previous search history, and cursor position
let @/=_s
call cursor(l, c)
endfun
"command -nargs=0 Stripwhitespace :call <SID>StripTrailingWhitespaces()
" Fix indentation in file
map <leader>i mmgg=G`m<CR>
" Toggle highlighting of search results
nnoremap <leader><space> :nohlsearch<cr>
" Unsmart Quotes
nnoremap guq :%s/\v[“”]/"/g<cr>
if has("autocmd")
" StripTrailingWhitespaces
" TODO: autocmd BufWritePre * DeleteTrailingWhitespace
" To spell check all git commit messages
au BufNewFile,BufRead COMMIT_EDITMSG set spell nonumber nolist wrap linebreak
" Set filetype tab settings
autocmd FileType python,doctest set ai ts=8 sw=8 sts=8 et
autocmd BufReadPost *
\ if line("'\"") > 1 && line("'\"") <= line("$") |
\ exe "normal! g`\"" |
\ endif
endif
" 80 characters line
set colorcolumn=101
"execute "set colorcolumn=" . join(range(81,335), ',')
highlight ColorColumn ctermbg=Black ctermfg=DarkRed
" Highlight trailing spaces
" http://vim.wikia.com/wiki/Highlight_unwanted_spaces
highlight ExtraWhitespace ctermbg=red guibg=red
match ExtraWhitespace /\s\+$/
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
autocmd BufWinLeave * call clearmatches()
" Configure tabline
set showtabline=2
let g:tablabel =
\ "%N%{flagship#tabmodified()} %{flagship#tabcwds('shorten',',')}"
" Python
au FileType python set ts=8 sts=4 et sw=4 smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
source ${HOME}/.dotfiles/vim/abbreviations/personalAbbreviations.vim
source ${HOME}/.dotfiles/vim/abbreviations/codingAbbreviations.vim