set nocompatible let VIMHOME = split(&rtp, ",")[0] let $VIMHOME = VIMHOME " vim-plug call plug#begin(VIMHOME."/plugs") Plug 'lervag/vimtex' Plug 'posva/vim-vue' Plug 'neovimhaskell/haskell-vim' Plug 'nvie/vim-flake8' Plug 'roxma/nvim-yarp' Plug 'roxma/vim-hug-neovim-rpc' Plug 'ConradIrwin/vim-bracketed-paste' Plug 'Shougo/deoplete.nvim' " Plug 'Valloric/YouCompleteMe' Plug 'christoomey/vim-tmux-navigator' Plug 'cohama/lexima.vim', {'do': 'sed -i \"s/has(.nvim.) && //\" autoload/lexima/insmode.vim'} Plug 'editorconfig/editorconfig-vim' Plug 'gmarik/Vundle.vim' Plug 'hdima/python-syntax' Plug 'jeetsukumaran/vim-buffergator' Plug 'kien/ctrlp.vim' Plug 'kristijanhusak/vim-hybrid-material' Plug 'neoclide/coc.nvim', {'branch': 'release'} Plug 'NLKNguyen/papercolor-theme' Plug 'nixprime/cpsm', {'do': './install.sh'} Plug 'octol/vim-cpp-enhanced-highlight' Plug 'pangloss/vim-javascript' Plug 'tmux-plugins/vim-tmux' Plug 'tmux-plugins/vim-tmux-focus-events' Plug 'tomtom/tcomment_vim' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' call plug#end() let g:ycm_global_ycm_extra_conf = '~/.vim/.ycm_extra_conf.py' let mapleader="," :command W w :command Q q :command WQ wq :command Wq wq nnoremap j gj nnoremap k gk " don't store .swp files in the file's own directory " neither for .ext~ files set directory=/home/billie/.vim/tmp/ set backupdir=/home/billie/.vim/tmp/ " Autoindent for filetype filetype plugin indent on set autoindent set encoding=utf-8 set scrolloff=5 set sidescrolloff=10 set completeopt-=preview set backspace=indent,eol,start " Splits set splitbelow set splitright " CtrlP let g:ctrlp_match_func = {'match': 'cpsm#CtrlPMatch'} nnoremap :CtrlPBuffer let g:cpsm_unicode=1 let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard'] " Unsaved buffer switching set hidden " Line numbering set number set numberwidth=4 :set mouse=a " Allow xterm-key usage inside tmux execute "set =\e[1;*A" execute "set =\e[1;*B" execute "set =\e[1;*C" execute "set =\e[1;*D" " Persistent undo set undodir=~/.vim/undodir/ set undofile set undolevels=1000 set undoreload=10000 " Searching set ignorecase set smartcase set incsearch set hlsearch nnoremap :noh " Text wrapping set lbr " Tabs if has("autocmd") filetype plugin indent on autocmd FileType make set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab endif " Quickfix nnoremap f :YcmCompleter FixIt:cexpr []:cclose nnoremap g :YcmCompleter GoTo " Terminal colors set t_Co=256 set background=dark let g:airline_theme="solarized" let g:airline_solarized_bg="dark" set tabstop=4 set shiftwidth=4 set softtabstop=4 set expandtab " Commenting nnoremap c :TComment nnoremap C :TCommentBlock vnoremap c :TCommentInline vnoremap C :TCommentBlock " Tab completion set wildmode=longest,list set wildmenu set guifont=Ubuntu\ Mono\ derivative\ Powerline\ 13 let g:airline_powerline_fonts = 1 set laststatus=2 set ttimeoutlen=50 " Color scheme syntax enable let python_highlight_all=1 let g:solarized_termcolors=256 colorscheme hybrid_material " Remap u to y vnoremap u y " Save clipboard on quit autocmd VimLeave * call system("xsel -ib", getreg('+')) " Automatically remove trailing spaces autocmd BufWritePre * :%s/\s\+$//e " Use deoplete. autocmd FileType python let g:deoplete#enable_at_startup = 1 " VPW: set filetype for .py3 autocmd BufRead,BufNewFile *.py3 set filetype=python " Vue indent autocmd FileType vue setlocal shiftwidth=2 softtabstop=2 expandtab autocmd FileType javascript setlocal shiftwidth=2 softtabstop=2 expandtab autocmd FileType vue syntax sync fromstart " Disable shift+k for manual lookup map " Prolog: set filetype for .pl autocmd BufRead,BufNewFile *.pl set filetype=prolog " Disable modelines, fix CVE set modelines=0 set nomodeline " Coc extensions let g:coc_global_extensions = [] command! -nargs=1 Ext :call add(g:coc_global_extensions, ) Ext 'coc-snippets' Ext 'coc-emoji' Ext 'coc-highlight' Ext 'coc-emmet' Ext 'coc-vimtex' Ext 'coc-json' Ext 'coc-tabnine' Ext 'coc-java' delc Ext " Tab for completion " use for trigger completion and navigate to the next complete item function! s:check_back_space() abort let col = col('.') - 1 return !col || getline('.')[col - 1] =~ '\s' endfunction inoremap \ pumvisible() ? "\" : \ check_back_space() ? "\" : \ coc#refresh()