2021-06-11 19:35:22 +02:00
|
|
|
|
let $VIMHOME = expand('~/.vim')
|
|
|
|
|
let s:sep = has('win32') ? '\' : '/'
|
|
|
|
|
" check if in tty
|
|
|
|
|
let g:is_tty = system('case $(tty) in (/dev/tty[0-9]) echo 1;; (*) echo 0;; esac')
|
|
|
|
|
|
2021-06-22 22:55:50 +02:00
|
|
|
|
" set user_dir
|
|
|
|
|
if has('nvim')
|
|
|
|
|
let s:user_dir = stdpath('config')
|
|
|
|
|
else
|
|
|
|
|
let s:user_dir = has('win32') ? expand('~/vimfiles') : expand('~/.vim')
|
|
|
|
|
endif
|
|
|
|
|
|
2021-06-11 19:35:22 +02:00
|
|
|
|
""" Set python3 path
|
|
|
|
|
let g:python3_host_prog = "/usr/bin/python"
|
|
|
|
|
let g:python_host_prog='/usr/bin/python'
|
|
|
|
|
|
2021-06-11 22:55:32 +02:00
|
|
|
|
""" source
|
|
|
|
|
|
|
|
|
|
" all other includes are in alphabetical order
|
2021-06-15 17:07:01 +02:00
|
|
|
|
source $VIMHOME/config/fzf.vim
|
|
|
|
|
source $VIMHOME/config/indent.vim
|
|
|
|
|
source $VIMHOME/config/language-client.vim
|
|
|
|
|
source $VIMHOME/config/mucomplete.vim
|
|
|
|
|
source $VIMHOME/config/nerdtree.vim
|
|
|
|
|
source $VIMHOME/config/powerline.vim
|
|
|
|
|
source $VIMHOME/config/rg.vim
|
|
|
|
|
source $VIMHOME/config/theme.vim " this sets the colorscheme
|
|
|
|
|
source $VIMHOME/config/vim-go.vim
|
|
|
|
|
source $VIMHOME/config/vim-rooter.vim
|
2021-06-11 19:35:22 +02:00
|
|
|
|
|
|
|
|
|
""" general
|
|
|
|
|
|
2021-06-22 22:49:57 +02:00
|
|
|
|
filetype plugin indent on
|
2021-06-11 19:35:22 +02:00
|
|
|
|
set nospell
|
|
|
|
|
" restore screen after quitting
|
|
|
|
|
" au VimLeave * :!clear
|
2021-06-15 17:07:01 +02:00
|
|
|
|
syntax on
|
2021-06-11 19:35:22 +02:00
|
|
|
|
|
|
|
|
|
packloadall
|
|
|
|
|
|
|
|
|
|
silent! helptags ALL
|
|
|
|
|
|
|
|
|
|
" Enable persistent undo
|
2021-06-11 22:55:32 +02:00
|
|
|
|
set undodir=$VIMHOME/.undo/
|
2021-06-11 19:35:22 +02:00
|
|
|
|
set undofile
|
|
|
|
|
set undolevels=1000 "maximum number of changes that can be undone
|
|
|
|
|
set undoreload=10000 "maximum number lines to save for undo on a buffer reload
|
|
|
|
|
|
|
|
|
|
" Automatically re-open files after they have changed without prompting.
|
|
|
|
|
" This can be a little more destructive, but a lot less annoying.
|
|
|
|
|
set autoread
|
|
|
|
|
|
|
|
|
|
set autoindent
|
|
|
|
|
set showmatch
|
|
|
|
|
|
|
|
|
|
" Put all special files in the right place
|
2021-06-11 22:55:32 +02:00
|
|
|
|
set backupdir=$VIMHOME/.backup/
|
|
|
|
|
set directory=$VIMHOME/.swp/
|
2021-06-11 19:35:22 +02:00
|
|
|
|
|
|
|
|
|
" Draw tabs and trailing spaces.
|
|
|
|
|
" set listchars=tab:<->
|
|
|
|
|
let g:indent_guides_enable_on_vim_startup = 1
|
|
|
|
|
let g:indent_guides_start_level = 2
|
|
|
|
|
let g:indent_guides_guide_size = 1
|
|
|
|
|
set listchars=tab:›\ ,trail:•,extends:#,nbsp:.
|
|
|
|
|
"set listchars=tab:-->,trail:$,extends:#,nbsp:.
|
|
|
|
|
hi IndentGuidesOdd ctermbg=white
|
|
|
|
|
hi IndentGuidesEven ctermbg=lightgrey
|
|
|
|
|
set list
|
|
|
|
|
|
|
|
|
|
" Set the right margin.
|
|
|
|
|
set colorcolumn=89
|
|
|
|
|
" Automatically split words at the margin.
|
|
|
|
|
" set wrap
|
|
|
|
|
|
|
|
|
|
" Default to spaces instead of tabs
|
|
|
|
|
set expandtab
|
|
|
|
|
|
|
|
|
|
" Set tab width to 4.
|
|
|
|
|
set tabstop=4
|
|
|
|
|
set shiftwidth=4
|
|
|
|
|
" Setting this will make backspace delete space indents
|
|
|
|
|
set softtabstop=4
|
|
|
|
|
|
|
|
|
|
" Disable automatic wrapping.
|
|
|
|
|
set textwidth=0
|
|
|
|
|
|
|
|
|
|
" Enable highlight on search patterns matches
|
|
|
|
|
set hlsearch
|
|
|
|
|
hi Search guibg=Purple
|
|
|
|
|
|
|
|
|
|
" define line highlight color
|
|
|
|
|
highlight LineHighlight ctermbg=darkgray guibg=Purple
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
" Make :Q and :W work like :q and :w
|
|
|
|
|
command! W w
|
|
|
|
|
command! Q q
|
2021-06-11 22:55:32 +02:00
|
|
|
|
command! QA qa
|
2021-06-11 19:35:22 +02:00
|
|
|
|
command! WQ wq
|
|
|
|
|
command! Wq wq
|
2021-06-11 22:55:32 +02:00
|
|
|
|
command! Wqa wqa
|
|
|
|
|
command! WQA wqa
|
2021-06-11 19:35:22 +02:00
|
|
|
|
command! WW w ! sudo tee %:t
|
|
|
|
|
|
|
|
|
|
" Make completion smarter.
|
|
|
|
|
set ignorecase
|
|
|
|
|
set smartcase
|
|
|
|
|
|
|
|
|
|
" viminfo settings
|
|
|
|
|
" '100 : Remember marks for 100 previously edited files.
|
|
|
|
|
" <50 : ???
|
|
|
|
|
" s10 : ???
|
|
|
|
|
" h : ???
|
|
|
|
|
" "100 : Save 100 lines for each register
|
|
|
|
|
" :50 : Remember 50 lines of command history
|
|
|
|
|
set viminfo='100,<50,s10,h,\"100,:50
|
|
|
|
|
|
|
|
|
|
" Jump at last opened cursor position position, if valid
|
|
|
|
|
if has("autocmd")
|
|
|
|
|
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
|
|
|
|
|
\| exe "normal! g'\"" | endif
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
" Warn about not being able to write to .viminfo, which messes up restoring
|
|
|
|
|
" the cursor position when editing.
|
|
|
|
|
let s:info_filename = expand('~/.viminfo')
|
|
|
|
|
|
|
|
|
|
if !empty(glob(s:info_filename)) && !filewritable(s:info_filename)
|
|
|
|
|
echoerr 'The .viminfo file cannot be written to!'
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" keybindings
|
|
|
|
|
|
|
|
|
|
let mapleader = ','
|
|
|
|
|
noremap <leader>ad :ALEGoToDefinition<CR>
|
|
|
|
|
nnoremap <leader>af :ALEFix<cr>
|
|
|
|
|
nnoremap <leader>ah :ALEHover<cr>
|
|
|
|
|
noremap <leader>ar :ALEFindReferences<CR>
|
|
|
|
|
nnoremap <leader>r :ALENextWrap<CR>
|
|
|
|
|
nnoremap <leader>R :ALEPreviousWrap<CR>
|
|
|
|
|
nnoremap <silent> <C-d> :bd<CR>
|
|
|
|
|
nnoremap <leader>e :NERDTree<CR>
|
|
|
|
|
nnoremap <leader>r :redo<CR>
|
|
|
|
|
nnoremap <C-h> <C-w><Left>
|
|
|
|
|
nnoremap <C-j> <C-w><Down>
|
|
|
|
|
nnoremap <C-k> <C-w><Up>
|
|
|
|
|
nnoremap <C-l> <C-w><Right>
|
|
|
|
|
nnoremap <leader>b :Gblame<CR>
|
|
|
|
|
nnoremap <C-p> :FZF<CR>
|
2021-06-22 22:50:21 +02:00
|
|
|
|
nnoremap <leader>f :Buffers<CR>
|
2021-06-11 19:35:22 +02:00
|
|
|
|
nnoremap <C-F> :Files<CR>
|
|
|
|
|
nnoremap <C-\> :Rg<CR>
|
|
|
|
|
nnoremap <leader>s :call Fzf_dev()<CR>
|
|
|
|
|
nnoremap <leader>c :Commits<CR>
|
|
|
|
|
nnoremap <leader>b :Gblame<CR>
|
|
|
|
|
nnoremap <leader><esc> :silent! nohls<CR>:call clearmatches()<CR>
|
|
|
|
|
nnoremap <leader><Tab> :bnext<CR>
|
|
|
|
|
nnoremap <leader>\ :bprev<CR>
|
|
|
|
|
nnoremap <Leader>m <Plug>ToggleMarkbar
|
|
|
|
|
nnoremap <Leader>mo <Plug>OpenMarkbar
|
|
|
|
|
nnoremap <Leader>mc <Plug>CloseMarkbar
|
|
|
|
|
nnoremap <Leader>L :call LightOrDarkness()<CR>
|
|
|
|
|
map <Leader>y <Plug>(operator-poweryank-osc52)
|
|
|
|
|
" Following three from here: https://github.com/vim/vim/issues/5157#issue-516033639
|
|
|
|
|
xnoremap "+y y:call system("wl-copy", @")<cr>
|
|
|
|
|
nnoremap "+p :let @"=substitute(system("wl-paste --no-newline"), '<C-v><C-m>', '', 'g')<cr>p
|
|
|
|
|
nnoremap "*p :let @"=substitute(system("wl-paste --no-newline --primary"), '<C-v><C-m>', '', 'g')<cr>p
|
|
|
|
|
nnoremap <Leader>u :UndotreeShow<CR>:UndotreeFocus<CR>
|
|
|
|
|
" highlight the current line
|
|
|
|
|
nnoremap l :call matchadd('LineHighlight', '\%'.line('.').'l')<CR>
|
|
|
|
|
nnoremap <silent> <C-Down> :m .+1<CR>==
|
|
|
|
|
nnoremap <silent> <C-Up> :m .-2<CR>==
|
|
|
|
|
inoremap <silent> <C-Down> <Esc>:m .+1<CR>==gi
|
|
|
|
|
inoremap <silent> <C-Up> <Esc>:m .-2<CR>==gi
|
|
|
|
|
vnoremap <silent> <C-Down> :m '>+1<CR>gv=gv
|
|
|
|
|
vnoremap <silent> <C-Up> :m '<-2<CR>gv=gv
|
|
|
|
|
|
|
|
|
|
" vim: set et sw=0 ts=4 sts=0:
|