diff options
Diffstat (limited to 'vim/files/vimrc')
-rw-r--r-- | vim/files/vimrc | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/vim/files/vimrc b/vim/files/vimrc new file mode 100644 index 0000000..ac03d93 --- /dev/null +++ b/vim/files/vimrc @@ -0,0 +1,177 @@ +set nocompatible + +" Environment http://tlvince.com/vim-respect-xdg +if !exists($XDG_CONFIG_HOME) + let $XDG_CONFIG_HOME=expand('~/.config') +endif +if !exists($XDG_DATA_HOME) + let $XDG_DATA_HOME=expand('~/.local/share') +endif +if !exists($XDG_CACHE_HOME) + let $XDG_CACHE_HOME=expand('~/.cache') +endif + +set directory=$XDG_CACHE_HOME/vim/swp//,/var/tmp//,/tmp// +set undodir=$XDG_CACHE_HOME/vim/undo//,/var/tmp//,/tmp// +set backupdir=$XDG_CACHE_HOME/vim/backup,/var/tmp,/tmp +set viminfo+=n$XDG_CACHE_HOME/vim/viminfo +set rtp=$XDG_CONFIG_HOME/vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$XDG_CONFIG_HOME/vim/after + +" dein.vim +let s:dein_base = $XDG_DATA_HOME . '/vim/dein' +let s:dein_repo_path = s:dein_base . '/repos/github.com/Shougo/dein.vim' +let s:dein_repo_url = 'https://github.com/Shougo/dein.vim' +let s:dein_toml = $XDG_CONFIG_HOME . '/vim/dein.toml' +let s:plugrc = $XDG_CONFIG_HOME . '/vim/plugrc' +let &runtimepath.=','.s:dein_repo_path + +function! s:hook_source() abort + let l:rcfile = s:plugrc . '/' . g:dein#plugin.normalized_name . '.rc.vim' + let g:dein#plugin.hook_source = "source " . l:rcfile +endfunction + +" dein.vim +let g:dein#types#git#clone_depth = 1 +try + if dein#load_state(s:dein_base) + call dein#begin(s:dein_base) + call dein#load_toml(s:dein_toml) + call dein#end() + call dein#save_state() + endif +catch /E117:/ " dein not installed + execute "silent !git clone" s:dein_repo_url s:dein_repo_path + call dein#begin(s:dein_base) + call dein#load_toml(s:dein_toml) + set nomore + call dein#install() + call dein#end() + quit +endtry + +if dein#tap('denite.nvim') + nnoremap [Denite] <Nop> + nmap <leader>d [Denite] + + nnoremap [Denite]g :<C-u>Denite grep -auto-preview -split=no -no-empty<CR> + nnoremap [Denite]f :<C-u>Denite file/rec -mode=insert -split=no<CR> + nnoremap [Denite]l :<C-u>Denite buffer file/old -split=no<CR> + nnoremap [Denite]r :<C-u>Denite -resume -refresh<CR> + + nnoremap [Denite]gf :DeniteCursorWord file/rec<CR> + nnoremap [Denite]gg :DeniteCursorWord grep<Cr> + nnoremap [Denite]g/ :DeniteCursorWord line<Cr> +endif +if dein#tap('vimfiler.vim') + call s:hook_source() +endif +if dein#tap('neosnippet.vim') + let g:neosnippet#snippets_directory = + \ $XDG_CONFIG_HOME . '/vim/snippets' + imap <C-k> <Plug>(neosnippet_expand_or_jump) + smap <C-k> <Plug>(neosnippet_expand_or_jump) + xmap <C-k> <Plug>(neosnippet_expand_or_jump) +endif +if dein#tap('vim-easy-align') + nmap ga <Plug>(EasyAlign) +endif +if dein#tap('vim-textobj-between') + let g:textobj_between_no_default_key_mappings = 1 + omap af <Plug>(textobj-between-a) + omap if <Plug>(textobj-between-i) + xmap af <Plug>(textobj-between-a) + xmap if <Plug>(textobj-between-i) +endif +if dein#tap('vim-textobj-indent') + let g:textobj_indent_no_default_key_mappings = 1 + omap ai <Plug>(textobj-indent-a) + omap ii <Plug>(textobj-indent-i) + xmap ai <Plug>(textobj-indent-a) + xmap ii <Plug>(textobj-indent-i) + + omap aI <Plug>(textobj-indent-same-a) + omap iI <Plug>(textobj-indent-same-i) + xmap aI <Plug>(textobj-indent-same-a) + xmap iI <Plug>(textobj-indent-same-i) +endif +if dein#tap('vim-operator-surround') + nmap <silent>sa <Plug>(operator-surround-append) + nmap <silent>sd <Plug>(operator-surround-delete) + nmap <silent>sr <Plug>(operator-surround-replace) +endif +if dein#tap('vim-addon-local-vimrc') + let g:local_vimrc = {'names':['.lvimrc'],'hash_fun':'LVRHashOfFile'} +endif +if dein#tap('vim-lsp') + if executable('ccls') + au User lsp_setup call lsp#register_server({ + \ 'name': 'ccls', + \ 'cmd': {server_info->['ccls']}, + \ 'root_uri': {server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), 'compile_commands.json'))}, + \ 'initialization_options': {'cache': {'directory': '/tmp/ccls/cache' }}, + \ 'whitelist': ['c', 'cpp', 'objc', 'objcpp'], + \ }) + endif + if executable('rls') + au User lsp_setup call lsp#register_server({ + \ 'name': 'rls', + \ 'cmd': {server_info->['rustup', 'run', 'nightly', 'rls']}, + \ 'whitelist': ['rust'], + \ }) + + au FileType rust setl omnifunc=lsp#complete + endif + if executable('hie-wrapper') + au User lsp_setup call lsp#register_server({ + \ 'name': 'hie', + \ 'cmd': {server_info->['hie-wrapper']}, + \ 'whitelist': ['haskell'], + \ }) + + au FileType haskell setl omnifunc=lsp#complete + endif + + nnoremap [Lsp] <Nop> + nmap <leader>l [Lsp] + + nmap [Lsp]dd <Plug>(lsp-definition) + nmap [Lsp]s <Plug>(lsp-document-symbol) + nmap [Lsp]i <Plug>(lsp-document-diagnostics) + nmap [Lsp]r <Plug>(lsp-rename) +endif +if dein#tap('base16-vim') + set bg=dark + let base16colorspace=256 + colorscheme base16-monokai +endif + +filetype plugin indent on +syntax on + +set ai +set bs=2 +set cc=80 +set fdm=syntax +set formatoptions+=j +set lcs=tab:\│\ ,trail:·,eol:¬ +set ls=2 +set nu +set rnu +set ru +set si +set sta +set sw=4 +set ts=4 +set ttyfast +set udf +set wmnu + +if has('gui_running') + set go=m +endif + +" Filebin +com -range=% Fb :exec "<line1>,<line2>w !fb -e ".&filetype." -n ".expand("%:t") + +" Write with sudo +com W w !sudo tee % > /dev/null |