diff options
Diffstat (limited to 'vim')
-rw-r--r-- | vim/.vimrc | 354 |
1 files changed, 159 insertions, 195 deletions
@@ -1,46 +1,78 @@ -" Definition of leaders +"" Definition of leaders let mapleader = " " let maplocalleader = "\\" + "" Plugins call plug#begin('~/.vim/plugged') -Plug 'critiqjo/lldb.nvim' -nmap <c-d>n :LLsession new -nmap <c-d>b <Plug>LLBreakSwitch -nmap <c-d>c :LL continue<cr> -nmap <c-d>d :LLmode debug<cr> -nmap <c-d>z :LLmode code<cr> -nmap <c-d>l :LL process launch<cr> -nmap <c-d>p :LL print <C-R>=expand('<cword>')<CR> -vmap <c-d>p :<C-U>LL print <C-R>=lldb#util#get_selection()<CR><CR> - Plug 'AndrewRadev/splitjoin.vim' -Plug 'chriskempson/base16-vim' +Plug 'SirVer/ultisnips' Plug 'airblade/vim-gitgutter' Plug 'altercation/vim-colors-solarized' Plug 'beloglazov/vim-online-thesaurus' -nnoremap K :OnlineThesaurusCurrentWord<CR> - +Plug 'chriskempson/base16-vim' Plug 'christoomey/vim-tmux-navigator' -Plug 'embear/vim-localvimrc' -let g:localvimrc_ask = 0 -let g:localvimrc_sandbox = 0 - -Plug 'gregsexton/gitv', { 'on' : 'Gitv' } +Plug 'critiqjo/lldb.nvim' +Plug 'holomorph/vim-freefem' Plug 'honza/vim-snippets' Plug 'jamessan/vim-gnupg' -Plug 'junegunn/goyo.vim' -Plug 'junegunn/fzf.vim' Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } -let g:fzf_buffers_jump = 1 +Plug 'junegunn/fzf.vim' +Plug 'junegunn/goyo.vim' +Plug 'junegunn/gv.vim' +Plug 'junegunn/seoul256.vim' +Plug 'junegunn/vim-easy-align' +Plug 'junegunn/vim-oblique' +Plug 'junegunn/vim-peekaboo' +Plug 'junegunn/vim-pseudocl' +Plug 'justinmk/vim-sneak' +Plug 'klen/python-mode' +Plug 'lervag/vimtex' +Plug 'majutsushi/tagbar' +Plug 'mileszs/ack.vim' +Plug 'nanotech/jellybeans.vim' +Plug 'rdnetto/YCM-Generator', { 'branch' : 'stable' , 'on' : 'YcmGenerateConfig' } +Plug 'scrooloose/nerdtree' +Plug 'sjl/Gundo.vim', { 'on' : 'GundoToggle' } +Plug 'terryma/vim-multiple-cursors' +Plug 'tomasr/molokai' +Plug 'tommcdo/vim-exchange' +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-rsi' +Plug 'tpope/vim-sensible' +Plug 'tpope/vim-surround' +Plug 'tpope/vim-unimpaired' +Plug 'tpope/vim-vinegar' +Plug 'troydm/zoomwintab.vim' +Plug 'vim-airline/vim-airline' +Plug 'vim-airline/vim-airline-themes' +Plug 'vim-scripts/gmsh.vim' + if has("nvim") - nnoremap <a-b> :Buffers<cr> - nnoremap <a-f> :Files<cr> - nnoremap <a-r> :History<cr> - nnoremap <a-g> :GitFiles<cr> - nnoremap <a-c> :Colors<cr> - nnoremap <a-h> :History:<cr> + Plug 'Shougo/deoplete.nvim' + Plug 'benekastah/neomake' +else + Plug 'Valloric/YouCompleteMe', { 'do' : 'python2 install.py --clang-completer' } + Plug 'scrooloose/syntastic' endif + +call plug#end() + + +"" Plugin mappings + +" Toggles +nnoremap cpg :GitGutterToggle<cr> +nnoremap cpn :NERDTreeToggle<cr> +nnoremap cpt :TagbarToggle<cr> +nnoremap cpu :GundoToggle<cr> + +" Fuzzy finder nnoremap <c-p>b :Buffers<cr> nnoremap <c-p>f :Files<cr> nnoremap <c-p>r :History<cr> @@ -51,28 +83,68 @@ nnoremap <c-p>h :History:<cr> imap <c-x><c-l> <plug>(fzf-complete-line) imap <c-x><c-f> <plug>(fzf-complete-file) -Plug 'junegunn/seoul256.vim' -Plug 'junegunn/vim-easy-align' +" LLDB +nnoremap <c-d>n :LLsession new +nnoremap <c-d>b <Plug>LLBreakSwitch +nnoremap <c-d>c :LL continue<cr> +nnoremap <c-d>d :LLmode debug<cr> +nnoremap <c-d>z :LLmode code<cr> +nnoremap <c-d>l :LL process launch<cr> +nnoremap <c-d>p :LL print <C-R>=expand('<cword>')<CR> +vnoremap <c-d>p :<C-U>LL print <C-R>=lldb#util#get_selection()<CR><CR> + +" Fugitive +nnoremap <Leader>gs :Gstatus<cr> +nnoremap <Leader>gr :Gread<cr> +nnoremap <Leader>gd :Gdiff<cr> + +" Easy align xmap ga <Plug>(EasyAlign) nmap ga <Plug>(EasyAlign) xmap gl <Plug>(LiveEasyAlign) nmap gl <Plug>(LiveEasyAlign) -Plug 'vim-airline/vim-airline' -Plug 'vim-airline/vim-airline-themes' +" Online thesaurus +nnoremap cpd :OnlineThesaurusCurrentWord<cr> + +" Ultisnips +nnoremap cps :UltiSnipsEdit<cr> + +" Neomake +nnoremap gm :Neomake!<cr> + + +"" Plugin configurations + +" Deoplete +let g:deoplete#enable_at_startup = 1 +let g:deoplete#omni#input_patterns={} +let g:deoplete#omni#input_patterns.ledger = ':\w*' +let g:deoplete#omni#input_patterns.tex = ['cite.\w*', 'ref.\w*'] + +" Python-mode +let g:pymode_rope=0 + +" NerdTree +let g:NERDTreeHijackNetrw = 0 + +" Tagbar +let g:tagbar_width = 30 +let g:tagbar_show_linenumbers = 1 +let g:tagbar_autofocus = 1 + +" Airline let g:airline_left_sep='' let g:airline_right_sep='' -let g:airline#extensions#whitespace#checks = [ 'indent', 'trailing', 'mixed-indent-file' ] let g:airline_theme='base16' +let g:airline#extensions#whitespace#checks = [ 'indent', 'trailing', 'mixed-indent-file' ] +let g:airline#extensions#tabline#enabled = 1 +let g:airline#extensions#tabline#tab_nr_type = 1 +let g:airline#extensions#tabline#formatter = 'unique_tail' +let g:airline#extensions#tabline#tab_min_count = 2 +let g:airline#extensions#tabline#show_buffers = 0 -Plug 'junegunn/vim-peekaboo' -Plug 'junegunn/vim-pseudocl' -Plug 'junegunn/vim-oblique' -Plug 'justinmk/vim-sneak' -Plug 'klen/python-mode' -let g:pymode_rope=0 - -Plug 'lervag/vimtex' +" Vimtex let g:vimtex_fold_enabled=0 let g:vimtex_view_method='zathura' let g:vimtex_latexmk_continuous=1 @@ -80,17 +152,13 @@ let g:vimtex_quickfix_mode=0 let g:vimtex_latexmk_build_dir='build' let g:vimtex_latexmk_progname='nvr' -Plug 'majutsushi/tagbar' -let g:tagbar_width = 30 -let g:tagbar_show_linenumbers = 1 -let g:tagbar_autofocus = 1 - -Plug 'mileszs/ack.vim', { 'on' : 'Ack' } -Plug 'rdnetto/YCM-Generator', { 'branch' : 'stable' , 'on' : 'YcmGenerateConfig' } -Plug 'scrooloose/nerdtree' -let g:NERDTreeHijackNetrw = 0 +" Syntastic +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" -Plug 'SirVer/ultisnips' +" Ultisnips let g:UltiSnipsEditSplit="horizontal" let g:UltiSnipsExpandTrigger="<tab>" let g:UltiSnipsJumpBackwardTrigger="<s-tab>" @@ -99,140 +167,73 @@ let g:UltiSnipsListSnippets="<c-l>" let g:UltiSnipsSnippetDirectories=['UltiSnips', 'mySnippets'] let g:UltiSnipsSnippetsDir="~/.vim/mySnippets" let g:UltiSnipsUsePythonVersion=3 -nnoremap <Leader>es :UltiSnipsEdit<cr> - -Plug 'sjl/Gundo.vim', { 'on' : 'GundoToggle' } -Plug 'terryma/vim-multiple-cursors' -Plug 'tomasr/molokai' -Plug 'tommcdo/vim-exchange' -Plug 'ton/vim-bufsurf' -nnoremap (( :BufSurfBack<CR> -nnoremap )) :BufSurfForward<CR> - -Plug 'tpope/vim-commentary' -Plug 'tpope/vim-dispatch' -Plug 'tpope/vim-eunuch' -Plug 'tpope/vim-fugitive' -nnoremap <Leader>gs :Gstatus<cr> -nnoremap <Leader>gr :Gread<cr> -nnoremap <Leader>gd :Gdiff<cr> -nnoremap <Leader>gv :Gitv<cr> -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 'tpope/vim-rsi' -let g:rsi_no_meta = 1 - -Plug 'troydm/zoomwintab.vim' -Plug 'vim-scripts/gmsh.vim' -Plug 'holomorph/vim-freefem' -Plug 'nanotech/jellybeans.vim' - -if has("nvim") - Plug 'benekastah/neomake' - let g:neomake_freefem_ff_maker = { - \ 'exe': 'FreeFem++', - \ 'args': '-ne', - \ 'errorformat': ' Error line number %l\, in file %f\,%m', - \ } - nnoremap gm :Neomake!<cr> - - Plug 'Shougo/deoplete.nvim' - let g:deoplete#enable_at_startup = 1 - let g:deoplete#omni#input_patterns={} - let g:deoplete#omni#input_patterns.ledger = ':\w*' - let g:deoplete#omni#input_patterns.tex = ['cite.\w*', 'ref.\w*'] -else - Plug 'Valloric/YouCompleteMe', { 'do' : 'python2 install.py --clang-completer' } - 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 = {} - let g:ycm_semantic_triggers.tex = ['re!\\[A-Za-z]*(ref|cite)[A-Za-z]*([^]]*])?{([^}]*, ?)*' ] - endif +" FZF.vim +let g:fzf_buffers_jump = 1 - Plug 'scrooloose/syntastic' - 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" +" YouCompleteMe +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 = {} + let g:ycm_semantic_triggers.tex = ['re!\\[A-Za-z]*(ref|cite)[A-Za-z]*([^]]*])?{([^}]*, ?)*' ] endif -call plug#end() + +"" Vim variables let g:tex_conceal= 'adgm' let g:tex_flavor='latex' -"" Vim options -" Tabs and indent +"" Vim options set smartindent set expandtab set tabstop=4 set softtabstop=4 set shiftwidth=4 - -" Folds -set foldcolumn=0 +set showcmd set nofoldenable -set foldmethod=expr -set foldlevel=0 - -" Back up files set noswapfile set nowritebackup set undofile -set undodir=$HOME/.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 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/.vim/spell/en.utf-8.add" set smartcase set ignorecase - -" Misc -set clipboard=unnamedplus -set noautochdir -set cpoptions+=Iq -set encoding=utf-8 -set mouse=a set lazyredraw set hidden +" set clipboard=unnamedplus +" set spellfile="$HOME/.vim/spell/en.utf-8.add" + + +"" Mappings +nnoremap <Leader>w :w!<cr> +nnoremap <Leader>q :q!<cr> +nnoremap <Leader>d :bd!<cr> +nnoremap <Leader>t :tabnew<cr> + +nnoremap got :call system('urxvt -cd '.getcwd().' &')<cr> +nnoremap goT :call system('urxvt -cd '.expand("%:p:h").' &')<cr> + +nnoremap <tab> <C-^> +nnoremap <LocalLeader>h :e %:p:s,.hpp$,.X123X,:s,.cpp$,.hpp,:s,.X123X$,.cpp,<CR> +nnoremap Y y$ +nnoremap + za +nnoremap <BS> <C-W>h +nnoremap <Leader>fw :%s/\s\+$//<cr> -" mutt -au BufNewFile,Bufread /tmp/mutt-* setlocal tw=72 -au BufNewFile,BufRead *.edp comp freefem -au BufNewFile,BufRead *.geo setf gmsh -" Colorscheme +"" Colorscheme let base16colorspace=256 -" let g:seoul256_background =235 +let g:seoul256_background =235 silent! colo $COLORSCHEME if $BACKGROUND=="dark" set background=dark @@ -240,45 +241,8 @@ elseif $BACKGROUND=="light" set background=light endif -highlight Comment cterm=italic -set t_ZH=[3m -set t_ZR=[23m - -"" Maps - -" 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> - -" Formatting -nnoremap <Leader>fw :%s/\s\+$//<cr> - -" Navigation -nnoremap <c-y> 3<c-y> -nnoremap <c-e> 3<c-e> -nnoremap <Return> o<Esc> -" 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 - -" 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 - nnoremap <a-w> :w<cr> - nnoremap <a-d> :q<cr> - nnoremap <a-t> :tabnew<cr> - nmap <BS> <C-W>h -endif +"" Autocommands +au BufNewFile,Bufread /tmp/mutt-* setlocal tw=72 +au BufNewFile,BufRead *.edp comp freefem +au BufNewFile,BufRead *.geo setf gmsh |