dotfiles/.vimrc

171 lines
3.7 KiB
VimL

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 <A-Left> :tabprevious<CR>
nnoremap <A-Right> :tabnext<CR>
map <C-n> :NERDTreeMirrorToggle<CR>
" 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 <F12> <Esc>:call ToggleGUICruft()<cr>
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 <F1> <nop>
nnoremap Q <nop>
nnoremap K <nop>
runtime! ftplugin/man.vim
nnoremap K :Man <cword>
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 <cr> :noh<CR><CR>:<backspace>
let g:deoplete#enable_smart_case = 1
imap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
imap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<S-TAB>"
imap <expr><CR> pumvisible() ? deoplete#close_popup() : "\<CR>"
set completeopt=menu,noinsert