" Maintainer: Patrick Auernig " VIM Version: NVIM 0.1.4 " Source: https://gitlab.com/valeth/vim-config " Mirror: https://github.com/valeth/vim-config " [NVim Directories] {{{ let g:vim_config_home = split(&rtp, ',', 0)[0] if exists('$XDG_CACHE_HOME') let g:vim_cache_home = expand('$XDG_CACHE_HOME/') . v:progname else let g:vim_cache_home = expand('$HOME/.local/cache/') . v:progname endif if exists('$XDG_DATA_HOME') let g:vim_data_home = expand('$XDG_DATA_HOME/') . v:progname else let g:vim_data_home = expand('$HOME/.local/share/') . v:progname endif " [NVim Directories] }}} " [Settings] {{{ set autochdir set autowriteall set breakindent set breakindentopt=sbr set clipboard+=unnamed set completeopt=longest,menuone,preview set confirm set foldcolumn=1 set foldlevel=99 set foldmethod=syntax set foldtext=myfold#text() set gdefault set grepprg=grep\ -nH\ $* set hidden set ignorecase set list set listchars=tab:»\ ,trail:◆,extends:❯,precedes:❮,eol:↲,nbsp:· set matchtime=3 set noshowmode set noswapfile set notimeout set number set ruler set scrolloff=3 set showmatch set showbreak=↳ set shortmess=aoOtTI set sidescrolloff=5 set smartcase set smartindent set splitbelow set splitright set synmaxcol=300 set timeoutlen=50 set ttimeout set undofile set virtualedit+=block set visualbell t_vb= set wildignore+=.git set wildignore+=*.bak,*.old,*.swp,*~ set wildignore+=*.o,*.hi set wildignore+=*.pyc,*.class set wildignore+=*.pdf,*.aux set wildignore+=*.png,*.jpg set wildmode=list:longest,full " [Settings] }}} " [Plugins] {{{ call plug#begin(g:vim_data_home . '/plugins') " {{{ function! DoRemote(arg) UpdateRemotePlugins endfunction let g:deoplete#enable_at_startup = 1 "let g:deoplete#sources#clang#libclang_path = '/usr/lib/libclang.so' "let g:deoplete#sources#clang#clang_header = '/usr/include/clang' Plug 'Shougo/vimproc.vim', { 'do': 'make' } Plug 'Shougo/deoplete.nvim', { 'do': function('DoRemote') } Plug 'Shougo/neco-syntax' Plug 'Shougo/neoinclude.vim', { 'for': ['c', 'cpp'] } Plug 'Rip-Rip/clang_complete', { 'for': ['c', 'cpp'] } "Plug 'zchee/deoplete-clang', { 'for': ['c', 'cpp'] } Plug 'zchee/deoplete-jedi', { 'for': ['python'] } Plug 'eagletmt/neco-ghc', { 'for': ['haskell'] } " }}} " {{{ Plug 'kien/ctrlp.vim' " }}} " {{{ let g:tex_flavor = "latex" let g:tex_fold_enabled = 1 let g:Imap_UsePlaceHolders = 0 let g:Tex_ViewRule_dvi = "" let g:Tex_ViewRule_ps = "" let g:Tex_ViewRule_pdf = "" let g:Tex_ViewRuleComplete_dvi = "pgrep okular.*$* || xdg-open &" let g:Tex_ViewRuleComplete_ps = "" let g:Tex_ViewRuleComplete_pdf = "pgrep okular.*$* || xdg-open &" let g:Tex_DefaultTargetFormat = "pdf" Plug 'WChargin/vim-latexsuite', { 'for': ['tex', 'latex'] } " }}} " {{{ Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } Plug 'scrooloose/nerdtree-git-plugin', { 'on': 'NERDTreeToggle' } au BufEnter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif " }}} " {{{ Plug 'scrooloose/syntastic', {'for': ['c', 'cpp', 'python', 'sh', 'ruby']} let g:syntastic_check_on_open = 1 let g:syntastic_check_on_wq = 0 let g:syntastic_auto_loc_list = 1 let g:syntastic_loc_list_height = 5 let g:syntastic_c_check_header = 1 let g:syntastic_cpp_remove_include_errors = 1 let g:syntastic_cpp_check_header = 1 let g:syntastic_cpp_auto_refresh_includes = 1 let g:syntastic_tex_checkers = ["false"] let g:syntastic_error_symbol = '☓' let g:syntastic_warning_symbol = '⚠' " }}} " {{{ Plug 'majutsushi/tagbar' " }}} " {{{ Plug 'bling/vim-airline' let g:airline#extensions#tabline#enabled = 1 let g:airline_powerline_fonts = 1 let g:airline_theme='dark' " }}} " {{{ Plug 'mtth/scratch.vim', { 'on': 'Scratch' } let g:scratch_persistence_file = g:vim_data_home . "/scratch.vim" " }}} " {{{ Plug 'vim-pandoc/vim-pandoc' Plug 'vim-pandoc/vim-pandoc-syntax' let g:pandoc#filetypes#handles = [ "markdown", "pandoc" ] let g:pandoc#filetypes#pandoc_markdown = 1 let g:pandoc#spell#enabled = 0 let g:pandoc#syntax#conceal#use = 0 let g:pandoc#folding#fdc = &fdc " }}} " {{{ Plug 'christoomey/vim-tmux-navigator' let g:tmux_navigator_no_mappings = 1 " }}} Plug 'Konfekt/FastFold' Plug 'vim-scripts/fish-syntax' Plug 'valeth/sprak.vim', { 'for': 'sprak' } Plug 'hoelzro/vim-polyglot' Plug 'vim-scripts/gnupg' Plug 'SirVer/ultisnips' Plug 'honza/vim-snippets' Plug 'tpope/vim-fugitive', { 'on': ['Gstatus', 'Gcommit']} Plug 'airblade/vim-gitgutter' Plug 'editorconfig/editorconfig-vim' Plug 'Matt-Deacalion/vim-systemd-syntax', { 'for': 'systemd' } Plug 'tomasr/molokai' Plug 'junegunn/seoul256.vim' Plug 'NLKNguyen/papercolor-theme' Plug 'chriskempson/tomorrow-theme' call plug#end() " [Plugins] }}} " [Keymappings] {{{ let g:mapleader = "," let g:maplocalleader = "\\" " {{{ command! Wq wq command! WQ wq command! Q q command! W w " }}} " {{{ nnoremap :CtrlPBuffer inoremap :CtrlPBuffer nnoremap :CtrlP inoremap :CtrlP nnoremap Tex_Help inoremap Tex_Help nnoremap IMAP_JumpForward vnoremap IMAP_JumpForward "noremap :w :!pdflatex -shell-escape "%" && { pgrep ".*%:p || xdg-open %:p:r.pdf } noremap nt :NERDTreeToggle vnoremap nt :NERDTreeToggle nnoremap syn :SyntasticToggleMode vnoremap syn :SyntasticToggleMode nnoremap tag :TagbarToggle vnoremap tag :TagbarToggle nnoremap :TmuxNavigateLeft nnoremap :TmuxNavigateDown nnoremap :TmuxNavigateUp nnoremap :TmuxNavigateRight nnoremap :TmuxNavigatePrevious " }}} " {{{ nnoremap inoremap nnoremap noremap noremap noremap noremap noremap ^ noremap $ " }}} noremap :noh nnoremap U :redo nnoremap vl :setlocal cursorline! nnoremap vc :setlocal cursorcolumn! nnoremap ve :setlocal colorcolumn=+3 nnoremap vn :setlocal colorcolumn=0 nnoremap tcs :call ToggleColorscheme() nnoremap Y y$ nnoremap j gj nnoremap k gk nnoremap fmt gg=G`` nnoremap gr gd[{V%::s////g nnoremap gR gD:%s////g nnoremap th :tabfirst nnoremap tj :tabnext nnoremap tk :tabprev nnoremap tl :tablast nnoremap tn :tabnew nnoremap tq :tabclose nnoremap H ^ nnoremap L $ vnoremap L g_ inoremap I inoremap A cnoremap cnoremap noremap j gj noremap k gk noremap gj j noremap gk k nnoremap gC `. nnoremap n nzzzv nnoremap N Nzzzv nnoremap g; g;zz nnoremap g, g,zz nnoremap zz nnoremap il :set invlist vnoremap il :set invlist inoremap :%s/ nnoremap :%s/ vnoremap :s/ nnoremap / /\v vnoremap / /\v inoremap jk inoremap jK inoremap Jk inoremap JK vnoremap < >gv cnoremap w! w !sudo tee % >/dev/null tnoremap tnoremap " [Keymappings] }}} " [Autocommands] {{{ "augroup LineReturn " au! " au BufReadPost * " \ if line("'\"") > 0 && line("'\"") <= line("$") | " \ execute 'normal! g`"zvzz' | " \ endif "augroup END augroup ToggleLineNumbers au! au VimEnter,WinEnter,InsertLeave * setlocal relativenumber au WinLeave,InsertEnter * setlocal norelativenumber augroup END augroup CursorHighlight au! au VimEnter,WinEnter,BufWinEnter * setlocal cursorline au WinLeave * setlocal nocursorline "au VimEnter,WinEnter,BufWinEnter * setlocal cursorcolumn "au WinLeave * setlocal nocursorcolumn au VimEnter,WinEnter,BufWinEnter * setlocal colorcolumn=+3 au WinLeave * setlocal colorcolumn=0 augroup END " reload initrc "au BufWritePost $MYVIMRC source $MYVIMRC " save automatically au FocusLost * :silent! wa " keep splits equal on terminal resize au VimResized * :wincmd = augroup Trailing au! au InsertEnter * :set invlist au InsertLeave * :set invlist augroup END " [Autocommands] }}} " [Colorscheme] {{{ function! ToggleColorscheme() if g:colors_name =~ 'seoul256' if g:colors_name == 'seoul256' colorscheme seoul256-light else colorscheme seoul256 endif elseif g:colors_name =~ 'Tomorrow' if g:colors_name == 'Tomorrow-Night' colorscheme Tomorrow else colorscheme Tomorrow-Night endif else if &background == 'dark' set background=light else set background=dark endif endif AirlineRefresh endfunction " Theme Range Default " ----- ----- ------- " seoul256 233 - 239 237 " seoul256-light 252 - 256 253 let g:seoul256_background = 237 let g:seoul256_light_background = 254 let g:rehash256 = 1 colorscheme seoul256 "colorscheme molokai "colorscheme PaperColor "colorscheme Tomorrow-Night " [Colorscheme] }}}