155 lines
3.4 KiB
VimL
155 lines
3.4 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:LanguageClient_serverCommands = {
|
|
\ 'r': ['R', '--slave', '-e', 'languageserver::run()'],
|
|
\ }
|
|
|
|
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'
|
|
|
|
|
|
set tags+=./.tags
|
|
|
|
|
|
" Session management
|
|
|
|
set switchbuf=useopen,usetab
|
|
|
|
|
|
fu! SaveSess()
|
|
execute 'mksession! ' . 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
|
|
endif
|
|
endfunction
|
|
|
|
" Save session on quitting Vim
|
|
autocmd VimLeave * NERDTreeTabsClose
|
|
autocmd VimLeave * call SaveSess()
|
|
|
|
" 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
|
|
|