149 lines
4 KiB
VimL
149 lines
4 KiB
VimL
unlet! skip_defaults_vim
|
|
" source $VIMRUNTIME/defaults.vim
|
|
|
|
" fix for wsl starting with REPLACE mode
|
|
nnoremap <esc>^[ <esc>^[
|
|
|
|
" disable mouse so that clipboard works properly
|
|
set mouse=nv
|
|
|
|
set t_TI=""
|
|
set t_TE=""
|
|
set t_ut=""
|
|
|
|
set noswapfile
|
|
set updatetime=1000
|
|
set signcolumn=yes
|
|
|
|
set rtp+=~/.fzf
|
|
map ; :Files<CR>
|
|
|
|
if executable('ag')
|
|
let g:ackprg = 'ag --vimgrep'
|
|
endif
|
|
|
|
colorscheme onehalfdark
|
|
if exists('+termguicolors') && ($COLORTERM == "24bit" || $COLORTERM == "truecolor")
|
|
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
|
|
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
|
|
set termguicolors
|
|
let g:terminal_ansi_colors = [
|
|
\ '#282c34',
|
|
\ '#e06c75',
|
|
\ '#98c379',
|
|
\ '#e5c07b',
|
|
\ '#61afef',
|
|
\ '#c678dd',
|
|
\ '#56b6c2',
|
|
\ '#dcdfe4',
|
|
\ '#282c34',
|
|
\ '#e06c75',
|
|
\ '#98c379',
|
|
\ '#e5c07b',
|
|
\ '#61afef',
|
|
\ '#c678dd',
|
|
\ '#56b6c2',
|
|
\ '#dcdfe4'
|
|
\ ]
|
|
endif
|
|
set cursorline
|
|
set laststatus=2
|
|
let mapleader=","
|
|
|
|
set relativenumber
|
|
set listchars=trail:.,tab:>_
|
|
set list
|
|
set wrap
|
|
set linebreak
|
|
set autoread
|
|
set colorcolumn=+1
|
|
set shiftwidth=2
|
|
set softtabstop=2
|
|
|
|
au BufRead,BufNewFile *.ipynb setlocal filetype=json
|
|
au BufRead,BufNewFile *.md setlocal spell
|
|
au BufRead,BufNewFile *.code-workspace setlocal filetype=json
|
|
au BufRead,BufNewFile *.csv setlocal nowrap
|
|
au BufRead,BufNewFile *.service[a-zA-Z0-9]* setlocal filetype=systemd
|
|
au TermOpen * setlocal nonumber norelativenumber
|
|
syntax on
|
|
|
|
if &diff
|
|
highlight! link DiffText MatchParen
|
|
endif
|
|
au OptionSet diff highlight! link DiffText MatchParen
|
|
|
|
set expandtab
|
|
set autoindent
|
|
set smartindent
|
|
filetype plugin indent on
|
|
|
|
imap jk <Esc>
|
|
command Bd b# | bd #
|
|
command! BufOnly silent! execute "%bd|e#|bd#"
|
|
nnoremap <Leader>b :buffers<CR>:buffer<Space>
|
|
nnoremap <Leader>i :!zimports %<CR>:!black %<CR><CR>
|
|
nnoremap <leader>n :NERDTreeFocus<CR>
|
|
nnoremap <C-n> :NERDTree<CR>
|
|
nnoremap <C-t> :NERDTreeToggle<CR>
|
|
nnoremap <C-f> :NERDTreeFind<CR>
|
|
nnoremap <Leader>a :Ack!<Space>
|
|
|
|
" Exit Vim if NERDTree is the only window remaining in the only tab.
|
|
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif
|
|
|
|
set splitbelow
|
|
set splitright
|
|
|
|
function! GitStatus()
|
|
let [a,m,r] = GitGutterGetHunkSummary()
|
|
return printf('%s +%d ~%d -%d', FugitiveHead(), a, m, r)
|
|
endfunction
|
|
|
|
let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+'
|
|
|
|
let g:python_highlight_all = 1
|
|
|
|
let g:lightline = { 'colorscheme': 'onehalfdark' }
|
|
|
|
let g:lightline.component_expand = {
|
|
\ 'linter_checking': 'lightline#ale#checking',
|
|
\ 'linter_infos': 'lightline#ale#infos',
|
|
\ 'linter_warnings': 'lightline#ale#warnings',
|
|
\ 'linter_errors': 'lightline#ale#errors',
|
|
\ 'linter_ok': 'lightline#ale#ok',
|
|
\ }
|
|
|
|
let g:lightline.component_type = {
|
|
\ 'linter_checking': 'right',
|
|
\ 'linter_infos': 'right',
|
|
\ 'linter_warnings': 'warning',
|
|
\ 'linter_errors': 'error',
|
|
\ 'linter_ok': 'right',
|
|
\ }
|
|
|
|
let g:lightline.component_function = {
|
|
\ 'gitstatus': 'GitStatus'
|
|
\ }
|
|
|
|
|
|
let g:lightline.active = {
|
|
\ 'left': [ [ 'mode', 'paste' ],
|
|
\ [ 'gitstatus', 'readonly', 'filename', 'modified' ] ],
|
|
\ 'right': [ [ 'linter_checking', 'linter_errors', 'linter_warnings', 'linter_infos', 'linter_ok', 'lineinfo' ],
|
|
\ [ 'percent' ],
|
|
\ [ 'fileformat', 'fileencoding', 'filetype' ] ]
|
|
\ }
|
|
set noshowmode
|
|
|
|
" Load all plugins now.
|
|
" Plugins need to be added to runtimepath before helptags can be generated.
|
|
packloadall
|
|
|
|
if has('python3')
|
|
packadd! jedi-vim
|
|
endif
|
|
" Load all of the helptags now, after plugins have been loaded.
|
|
" All messages and errors will be ignored.
|
|
" silent! helptags ALL
|