aboutsummaryrefslogblamecommitdiff
path: root/vim/.vimrc
blob: 9ceef74b30be1bd0017861d09dd2a2f3ff0c2572 (plain) (tree)
1
2
3
4
5
6
7
8
9
10


                                                     

                    

                                                       
 
                                    
                                         
 
                  

                                                    
                                                                                                                 
                                                     
                                                            
                                                            
                                                          
                                                                   
                                                      
                                                   
                                                   
                                                          
                                                    
                                                                
 
               
                                                        
                                                 
                                                                               
                                                                  
                                                          
                                                         
                                                                    
 
                 
            
 
                                      
                                                
                 
                          
             
              
                                                                
          
                  
                       
                      
               
                           
 


                                  

                         
                        
                     


                                                                    
                                                  


                                                        
                                                                     
                                               
                                                              


                            
 
                                          
                                                           
             
 

                                           
                                 
                                     





                                       
                                             
 








                                            
                                                    

                                                
                                            
                                                   
 

                  
        






                                            
                                        
                                 
 
                   
 

                                


                                                                 

                                                        

             
 

                                         
 

             





                                                       

                                               
" Vundle
set nocompatible              " be iMproved, required
filetype off                  " required

scriptencoding utf-8
set encoding=utf-8

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim', {'pinned': 1}

" Special syntaxes
Plugin 'groenewege/vim-less'                  " Less
Plugin 'digitaltoad/vim-jade'                 " Jade
Plugin 'lervag/vimtex'                        " TeX
Plugin 'andymass/vim-matchup'                 " TeX parentheses; see https://github.com/lervag/vimtex/issues/1143
Plugin 'derekwyatt/vim-scala'                 " Scala
Plugin 'Shirk/vim-gas'                        " GNU Assembly
Plugin 'git@github.com:alisdair/vim-armasm'   " ARM Assembly
Plugin 'git@gitlab.science.ru.nl:cstaps/vim-clean' " Clean
Plugin 'git@github.com:camilstaps/vim-bb'     " Blackboard feedback
Plugin 'camilstaps/vim-fuspel', {'pinned': 1} " Fuspel
Plugin 'camilstaps/vim-sil', {'pinned': 1}    " Sil
Plugin 'camilstaps/vim-smv', {'pinned': 1}    " SMV
Plugin 'camilstaps/vim-torxakis', {'pinned': 1} " Torxakis
Plugin 'rust-lang/rust.vim'                   " Rust
Plugin 'rhysd/vim-wasm'                       " WebAssembly text

" Other plugins
Plugin 'terryma/vim-multiple-cursors' " Multiple cursors
Plugin 'scrooloose/syntastic'         " Syntastic
Plugin 'tpope/vim-surround'           " cs)] to replace parenthesis pairs, e.g.
Plugin 'rickhowe/diffchar.vim'        " diffing on character level
Plugin 'airblade/vim-gitgutter'       " git diff in gutter
Plugin 'godlygeek/tabular'            " tabularize things
Plugin 'google/vim-searchindex'       " shows '[N/M]' when searching

call vundle#end()
" End Vundle

" Source some special files on writing
autocmd! bufwritepost .vimrc source %
autocmd! bufwritepost .Xresources !xrdb -merge %

" Common settings
set tabstop=4 shiftwidth=4
set cc=80
set linebreak
set nu
set dir=~/.swp
set listchars=nbsp:¬,tab:▸\ ,extends:»,precedes:«,trail:•
set nolist
set tabpagemax=100
set nrformats=hex,alpha
set fillchars+=fold:\ 
set statusline=
set switchbuf=usetab,newtab

set incsearch
set hlsearch
map <LocalLeader>q :nohlsearch<CR>

filetype plugin indent on
syntax enable

" Colours & Highlighting
colorscheme solarized
highlight SpellBad cterm=underline,bold ctermfg=black ctermbg=red
highlight SpellCap cterm=underline,bold ctermfg=black ctermbg=yellow
highlight SpellLocal cterm=underline,bold ctermfg=black ctermbg=blue
highlight SpellRare cterm=underline,bold ctermfg=black ctermbg=white
highlight ColorColumn ctermfg=black ctermbg=yellow
" Needed for gitgutter. See:
" - https://github.com/airblade/vim-gitgutter/issues/696
" - https://stackoverflow.com/a/7383051
autocmd ColorScheme * highlight! link SignColumn LineNr
let network = system("iwconfig wlp2s0 | grep ESSID | cut -d'\"' -f2")
let network = substitute(network, '\n', '', '')
if index(["WiFi in de trein", "Syntus-Utrecht"], network) >= 0
	set background=light
else
	set background=dark
endif

map <LocalLeader>s :syn sync fromstart<CR>

" Move through long lines as they were short multiple lines
map <down> gj
map <up> gk

" Don't let match-up mess up the statusline
let g:matchup_matchparen_status_offscreen=0

" Clean
let g:clean_load_cloogle_tags = 1
let g:clean_warnings_hide_libraries =
			\ [ "ArgEnv"
			\ , "Dynamics"
			\ , "GraphCopy"
			\ , "iTasks"
			\ , "StdEnv"
			\ , "TCPIP"
			\ ]
set statusline+=%{cleanvim#tags#statusline()}

" Syntastic
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*

let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0

let g:syntastic_python_checkers = ['pylint', 'pep8']
let g:syntastic_python_pylint_exec = 'pylint.sh'
let g:syntastic_python_pylint_args = '--guess'

let g:syntastic_mode_map = {
			\ "mode": "passive",
			\ "passive_filetypes": [] }

" Git gutter
set updatetime=300

" VimTeX
let g:vimtex_compiler_latexmk = {
			\ 'callback': 0,
			\ 'options': [
			\   '-pdf',
			\   '-shell-escape',
			\   '-enable-pipes',
			\ ],
			\ }
let g:vimtex_latexmk_file_line_error = 0
let g:tex_flavor='latex'
let g:matchup_override_vimtex = 1

" Assembly
let asmsyntax='gas'

" Mutt
au BufRead /tmp/mutt-* set tw=72

" X clipboard manipulation using xsel
" See: http://vim.wikia.com/wiki/Accessing_the_system_clipboard
" Use :cz in visual mode to copy to clipboard, :pz for pasting
" x instead of z for primary selection, v for secondary selection
command! -range Cz :silent :<line1>,<line2>w !xsel -i -b
command! -range Cx :silent :<line1>,<line2>w !xsel -i -p
command! -range Cv :silent :<line1>,<line2>w !xsel -i -s
cabbrev cv Cv
cabbrev cz Cz
cabbrev cx Cx

command! -range Pz :silent :r !xsel -o -b
command! -range Px :silent :r !xsel -o -p
command! -range Pv :silent :r !xsel -o -s

cabbrev pz Pz
cabbrev px Px
cabbrev pv Pv

" For syntax definition debugging
"function! SyntaxItem()
"  return synIDattr(synID(line("."),col("."),1),"name")
"endfunction
"set statusline+=%{SyntaxItem()}
"set laststatus=2

" https://unix.stackexchange.com/a/243667/37050
set statusline+=%=%(%l,%c%V\ %=\ %P%)