set nocompatible " be iMproved, required filetype plugin on set shellslash " Plugins " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " alternatively, pass a path where Vundle should install plugins "call vundle#begin('~/some/path/here') " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' " Completion Plugin 'autozimu/LanguageClient-neovim' if has('nvim') Plugin 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } else Plugin 'Shougo/deoplete.nvim' Plugin 'roxma/nvim-yarp' Plugin 'roxma/vim-hug-neovim-rpc' endif Plugin 'tpope/vim-surround' Plugin 'tpope/vim-repeat' " Editor config Plugin 'editorconfig/editorconfig-vim' " Color theme " Plugin 'agude/vim-eldar' Plugin 'ntk148v/vim-horizon' " Plugin 'fatih/molokai' " File management " Plugin 'scrooloose/nerdtree' Plugin 'tpope/vim-vinegar' " Git " Plugin 'jreybert/vimagit' " Tagbar use Plugin 'majutsushi/tagbar' call vundle#end() " required filetype plugin indent on " required colorscheme horizon " Completion let g:LanguageClient_serverCommands = { \ 'rust': ['/usr/bin/rustup', 'run', 'stable', 'rls' ], \ 'c': ['/usr/bin/cquery', '--log-file=/tmp/cq.log', '--init={"cacheDirectory":"/tmp/cquery/"}' ] \ } let g:LanguageClient_useVirtualText = 0 let g:LanguageClient_diagnosticsEnable = 0 let g:deoplete#enable_at_startup = 1 syntax enable set number relativenumber set tabstop=4 set shiftwidth=4 set softtabstop=4 set noexpandtab let g:tex_flavor='latex' if has('nvim') set inccommand=split endif " Required for operations modifying multiple buffers like rename. set hidden " Snippits " Trigger configuration. Do not use if you use https://github.com/Valloric/YouCompleteMe. " let g:UltiSnipsExpandTrigger="" " let g:UltiSnipsJumpForwardTrigger="" " let g:UltiSnipsJumpBackwardTrigger="" " If you want :UltiSnipsEdit to split your window. " let g:UltiSnipsEditSplit="vertical" " File finding set path+=** set wildmenu let g:netrw_liststyle=3 " autocmd BufEnter * call ncm2#enable_for_buffer() " let g:ncm2#auto_popup = 0 set completeopt=menuone,preview " Keymapping map :NERDTreeToggle map :TagbarToggle inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\" : "\\" inoremap pumvisible() ? "\" : "\\" nnoremap :call LanguageClient_contextMenu() nnoremap K :call LanguageClient#textDocument_hover() nnoremap gd :call LanguageClient#textDocument_definition() nnoremap :call LanguageClient#textDocument_rename() nnoremap :b " When moving more lines make it a jump. If couns i 2 it will run m'2j, " thus storing it on the jumplist and then jumping nnoremap j (v:count > 1 ? "m'" . v:count : '' ) . 'j' nnoremap k (v:count > 1 ? "m'" . v:count : '' ) . 'k' " Leader stuff let mapleader=" " map z :Goyo map mm :make V=1 map mf :!make flash V=1 " Example on filetype specific " autocmd FileType tex map o :w !detex \| wc -w autocmd FileType asciidoc nnoremap c :!asciidoctor % " Enforcing filetypes autocmd BufRead,BufNewFile *.ino set filetype=c autocmd BufRead,BufNewFile *.asc set filetype=asciidoc autocmd FileType python setlocal completeopt-=preview " Path settings let g:ycm_rust_src_path = '~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src'