set nocompatible " be iMproved, required filetype off " required call plug#begin() Plug 'itchyny/lightline.vim' Plug 'vim-scripts/c.vim' Plug 'arcticicestudio/nord-vim' Plug 'scrooloose/nerdtree' Plug 'jistr/vim-nerdtree-tabs' Plug 'rhysd/vim-clang-format' Plug 'kana/vim-operator-user' Plug 'rust-lang/rust.vim' Plug 'Shougo/deoplete.nvim' Plug 'zchee/deoplete-clang' Plug 'Shougo/neoinclude.vim' Plug 'roxma/nvim-yarp' Plug 'roxma/vim-hug-neovim-rpc' "Plug 'tbodt/deoplete-tabnine', { 'do': './install.sh' } Plug 'sebastianmarkow/deoplete-rust' Plug 'jpalardy/vim-slime' Plug 'autozimu/LanguageClient-neovim', { \ 'branch': 'next', \ 'do': 'bash install.sh', \ } Plug 'calviken/vim-gdscript3' call plug#end() " required filetype plugin indent on " required 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/lib/clang" let g:deoplete#sources#rust#racer_binary='/usr/bin/racer' let g:deoplete#sources#rust#rust_source_path='/usr/src/rust/src' let g:LanguageClient_serverCommands = { \ 'lua': ['lua-lsp'], \ } let g:LanguageClient_autoStart = 1 set tags+=./.tags " Session management set switchbuf=useopen,usetab let g:session = 0 fu! AutoSaveSess() if g:session == 1 call SaveSess() endif endfunction fu! SaveSess() execute 'NERDTreeTabsClose' execute 'mksession! ' . getcwd() . '/.session.vim' let g:session = 1 endfunction fu! RemoveSess() shell "rm " . getcwd() . "/.session.vim" endfunction fu! RestoreSess() if filereadable(getcwd() . '/.session.vim') let initial_args = argv() execute 'so ' . getcwd() . '/.session.vim' for file in initial_args if bufloaded(file) != 1 execute 'tabnew ' . getcwd() . '/' . file else execute 'sb ' . file endif endfor let g:session = 1 endif endfunction :command Savesess call SaveSess() :command Restoresess call RestoreSess() :command Removesess call RemoveSess() " Save session on quitting Vim autocmd VimLeave * call AutoSaveSess() " Restore session on starting Vim "autocmd VimEnter * nested call RestoreSess() "---------------------- " move between tabs nnoremap :tabprevious nnoremap :tabnext map :NERDTreeMirrorToggle " prevent mouse vanishing set nomousehide " toggles menu in graphical mode function! ToggleGUICruft() if &guioptions=='ir' exec('set guioptions=imrLn') else exec('set guioptions=ir') endif endfunction map :call ToggleGUICruft() set number set linebreak set nobackup set noswapfile "set shortmess+=I set backspace=indent,eol,start set visualbell t_vb= set showmode "set smartcase nnoremap nnoremap Q nnoremap K runtime! ftplugin/man.vim nnoremap K :Man set mouse=a set nu let g:clang_format#code_style="llvm" set clipboard=unnamed set backspace=indent,eol,start " allow backspacing over everything in insert mode cmap w!! w !sudo tee > /dev/null % set laststatus=2 let g:nord_uniform_diff_background = 1 let g:nord_cursor_line_number_background = 1 let g:lightline = { \ 'colorscheme': 'nord', \ } colorscheme nord filetype plugin indent on set smartindent set tabstop=4 set shiftwidth=4 set expandtab :command WQ wq :command Wq wq :command W w :command Q q let g:C_Mapfeader = ',' nnoremap :noh: let g:deoplete#enable_smart_case = 1 imap pumvisible() ? "\" : "\" imap pumvisible() ? "\" : "\" imap pumvisible() ? deoplete#close_popup() : "\" set completeopt=menu,noinsert