summaryrefslogtreecommitdiff
path: root/vim/vimrc
diff options
context:
space:
mode:
Diffstat (limited to 'vim/vimrc')
-rw-r--r--vim/vimrc281
1 files changed, 281 insertions, 0 deletions
diff --git a/vim/vimrc b/vim/vimrc
new file mode 100644
index 0000000..8017f28
--- /dev/null
+++ b/vim/vimrc
@@ -0,0 +1,281 @@
+"" Plugins
+call plug#begin('~/.vim/plugged')
+Plug 'airblade/vim-gitgutter'
+Plug 'altercation/vim-colors-solarized'
+Plug 'beloglazov/vim-online-thesaurus'
+Plug 'christoomey/vim-tmux-navigator'
+Plug 'ctrlpvim/ctrlp.vim'
+Plug 'gregsexton/gitv', { 'on' : 'Gitv' }
+Plug 'honza/vim-snippets'
+Plug 'jamessan/vim-gnupg'
+Plug 'junegunn/seoul256.vim'
+Plug 'junegunn/vim-easy-align'
+Plug 'junegunn/vim-peekaboo'
+Plug 'junegunn/vim-pseudocl'
+Plug 'junegunn/vim-oblique'
+Plug 'justinmk/vim-sneak'
+Plug 'klen/python-mode'
+Plug 'ledger/vim-ledger'
+Plug 'lervag/vimtex'
+Plug 'majutsushi/tagbar'
+Plug 'mileszs/ack.vim', { 'on' : 'Ack' }
+Plug 'rdnetto/YCM-Generator', { 'branch' : 'stable' , 'on' : 'YcmGenerateConfig' }
+Plug 'scrooloose/syntastic'
+Plug 'SirVer/ultisnips'
+Plug 'sjl/Gundo.vim', { 'on' : 'GundoToggle' }
+Plug 'terryma/vim-multiple-cursors'
+Plug 'tomasr/molokai'
+Plug 'tommcdo/vim-exchange'
+Plug 'ton/vim-bufsurf'
+Plug 'tpope/vim-commentary'
+Plug 'tpope/vim-dispatch'
+Plug 'tpope/vim-eunuch'
+Plug 'tpope/vim-fugitive'
+Plug 'tpope/vim-obsession'
+Plug 'tpope/vim-repeat'
+Plug 'tpope/vim-sensible'
+Plug 'tpope/vim-surround'
+Plug 'tpope/vim-unimpaired'
+Plug 'tpope/vim-vinegar'
+Plug 'troydm/zoomwintab.vim'
+Plug 'Valloric/YouCompleteMe', { 'do' : 'python2 install.py --clang-completer' }
+Plug 'vim-airline/vim-airline'
+Plug 'vim-airline/vim-airline-themes'
+Plug 'vim-scripts/gmsh.vim'
+Plug 'holomorph/vim-freefem'
+call plug#end()
+
+let g:vimtex_fold_enabled=0
+let g:vimtex_view_method='zathura'
+let g:vimtex_latexmk_continuous=1
+let g:vimtex_quickfix_mode=0
+let g:vimtex_latexmk_build_dir='build'
+
+let g:UltiSnipsEditSplit="horizontal"
+let g:UltiSnipsExpandTrigger="<tab>"
+let g:UltiSnipsJumpBackwardTrigger="<s-tab>"
+let g:UltiSnipsJumpForwardTrigger="<tab>"
+let g:UltiSnipsListSnippets="<c-l>"
+let g:UltiSnipsSnippetDirectories=['UltiSnips', 'mySnippets']
+let g:UltiSnipsSnippetsDir="~/.vim/mySnippets"
+let g:UltiSnipsUsePythonVersion=3
+
+let g:airline_left_sep=''
+let g:airline_right_sep=''
+let g:airline_section_c = '%f%m'
+let g:airline_section_y = ''
+let g:airline_section_z = '%3p%%|%3l|%3c'
+let g:airline_theme='solarized'
+let g:airline#extensions#tabline#enabled = 0
+let g:airline_exclude_preview = 0
+
+let g:ctrlp_by_filename = 1
+let g:ctrlp_cmd = 'CtrlP'
+let g:ctrlp_map = '<c-p>'
+let g:ctrlp_open_new_file = 't'
+let g:ctrlp_show_hidden = 1
+let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard']
+let g:ctrlp_working_path_mode = 'r'
+let g:ctrlp_prompt_mappings = {
+ \ 'PrtSelectMove("j")': ['<c-n>'],
+ \ 'PrtSelectMove("k")': ['<c-p>'],
+ \ 'PrtHistory(-1)': ['<c-j>'],
+ \ 'PrtHistory(1)': ['<c-k>'],}
+
+let g:gitgutter_max_signs=1000
+let g:pymode_rope=0
+
+let g:syntastic_cpp_compiler = "g++"
+let g:syntastic_cpp_compiler_options = "-std=c++11 -Wall -Wextra -Wpedantic"
+let g:syntastic_error_symbol = "✗"
+let g:syntastic_warning_symbol = "W"
+
+let g:tagbar_width = 30
+let g:tagbar_show_linenumbers=1
+let g:tagbar_autofocus=1
+
+let g:tex_conceal= 'adgm'
+let g:tex_flavor='latex'
+let g:tex_fast="1"
+
+let NERDTreeIgnore=['\.pdf$', '\~$','\.toc$',
+ \ '\.fls$','\.bbl$','\.blg$',
+ \ '\.out$', '\.log$','\.aux$','\.sty$',
+ \ '\.fdb_latexmk$', '\.synctex.gz$','\.latexmain$']
+
+let g:ycm_key_list_select_completion = ['<C-n>', '<Down>']
+let g:ycm_key_list_previous_completion = ['<C-p>', '<Up>']
+let g:ycm_add_preview_to_completeopt = 0
+let g:ycm_confirm_extra_conf = 0
+let g:ycm_auto_trigger = 1
+if !exists('g:ycm_semantic_triggers')
+ let g:ycm_semantic_triggers = {}
+endif
+let g:ycm_semantic_triggers.tex = ['re!\\[A-Za-z]*(ref|cite)[A-Za-z]*([^]]*])?{([^}]*, ?)*' ]
+
+let g:calendar_google_calendar = 1
+let g:calendar_google_task = 1
+
+let g:tabprefix = ""
+
+
+"" Vim options
+
+" Tabs and indent
+set smartindent
+set expandtab
+set tabstop=4
+set softtabstop=4
+set shiftwidth=4
+
+" Folds
+set foldcolumn=0
+set nofoldenable
+set foldmethod=expr
+set foldlevel=0
+
+" Back up files
+set noswapfile
+set nowritebackup
+set undofile
+set undodir=/home/urbain/.vim/vimundo/
+
+" Layout window
+set nonumber
+set diffopt=filler,vertical
+set listchars=tab:▸\ ,eol:¬,trail:-
+set fillchars=fold:\ ,vert:\ ,
+set breakindent
+let &showbreak='--> '
+set colorcolumn=0
+set scrolloff=0
+set t_Co=256
+set guitablabel=%N\ %t\ %M
+set showcmd
+
+" Layout text
+set nowrap
+set linebreak
+set textwidth=0
+set conceallevel=2
+set guifont=Monaco\ 11
+set nojoinspaces
+
+" Case and spell
+set nospell
+" set spellfile="/home/urbain/.vim/spell/en.utf-8.add"
+set smartcase
+set ignorecase
+
+" Misc
+set noautochdir
+set cpoptions+=Iq
+set encoding=utf-8
+set mouse=a
+set lazyredraw
+set hidden
+
+" mutt
+au BufRead /tmp/mutt-* set tw=72
+
+" Colorscheme
+if $COLORSCHEME=="light"
+ silent! colo solarized
+ set background=light
+elseif $COLORSCHEME=="dark"
+ silent! colo solarized
+ set background=dark
+elseif $COLORSCHEME=="seoul"
+ silent! colo seoul256
+ set background=dark
+else
+ silent! colo solarized
+ set background=dark
+endif
+
+highlight Comment cterm=italic
+set t_ZH=
+set t_ZR=
+
+"" Maps
+
+" Definition of leaders
+let mapleader = " "
+let maplocalleader = "\\"
+
+" New pages
+nnoremap <Leader>pe :tabedit
+nnoremap <Leader>pn :tabnew<cr>
+nnoremap <Leader>po :tabonly<cr>
+
+" Plugin Management
+nnoremap <Leader>pi :PlugInstall<cr>
+nnoremap <Leader>pu :PlugUpdate<cr>
+nnoremap <Leader>pc :PlugClean<cr>
+nnoremap <Leader>pd :PlugDiff<cr>
+nnoremap <Leader>ps :PlugStatus<cr>
+
+" Toggles
+nnoremap cop :set paste!<cr>
+nnoremap cof :set foldenable!<cr>
+nnoremap cpg :GitGutterToggle<cr>
+nnoremap cpn :NERDTreeToggle<cr>
+nnoremap cpt :TagbarToggle<cr>
+nnoremap cpu :GundoToggle<cr>
+
+" Sourcing
+nnoremap <Leader>sv :source ~/.vimrc<cr>
+nnoremap <Leader>sc :source %<cr>
+
+" File edits
+nnoremap <Leader>es :UltiSnipsEdit<cr>
+nnoremap <Leader>em :e ~/dotfiles/.mutt/muttrc<cr>
+nnoremap <Leader>ev :e ~/dotfiles/.vim/vimrc<cr>
+nnoremap <Leader>ez :e ~/dotfiles/.zsh/zshrc<cr>
+nnoremap <Leader>et :e ~/dotfiles/.tmux.conf<cr>
+
+" Formatting
+nnoremap <Leader>fw :%s/\s\+$//<cr>
+nnoremap <Leader>fi zzmxgg=G'x
+
+" Navigation
+nnoremap (( :BufSurfBack<CR>
+nnoremap )) :BufSurfForward<CR>
+nnoremap <c-y> 3<c-y>
+nnoremap <c-e> 3<c-e>
+nnoremap <Return> o<Esc>
+nnoremap <s-Return> O<Esc>
+
+" Git
+nnoremap <Leader>gs :Gstatus<cr>
+nnoremap <Leader>gr :Gread<cr>
+nnoremap <Leader>gd :Gdiff<cr>
+nnoremap <Leader>gv :Gitv<cr>
+
+" Misc
+nnoremap <tab> <C-^>
+nnoremap Q :bd!<cr>
+nnoremap <Leader>w :w<cr>
+nnoremap <Leader>q :q!<cr>
+nnoremap <LocalLeader>h :e %:p:s,.hpp$,.X123X,:s,.cpp$,.hpp,:s,.X123X$,.cpp,<CR>
+nnoremap J mzJ`z
+nnoremap Y y$
+nnoremap + za
+nnoremap K :OnlineThesaurusCurrentWord<CR>
+
+" Neovim specific
+if has("nvim")
+ tnoremap <C-_> <C-\><C-n><C-^>:ZoomWinTabOut<cr>
+ nnoremap <C-_> :ZoomWinTabIn<cr>:b term<cr>i
+ inoremap <C-_> <Esc>:b term<cr>i
+endif
+
+"" Restore cursor position
+augroup vimrc
+ au!
+ autocmd BufWritePost *vimrc source %
+ autocmd BufReadPost *
+ \ if line("'\"") > 1 && line("'\"") <= line("$") |
+ \ exe "normal! g`\"" |
+ \ endif
+augroup END