diff options
Diffstat (limited to 'vim/vimrc-decent')
-rw-r--r-- | vim/vimrc-decent | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/vim/vimrc-decent b/vim/vimrc-decent new file mode 100644 index 0000000..1ffccc6 --- /dev/null +++ b/vim/vimrc-decent @@ -0,0 +1,195 @@ +filetype plugin on +filetype plugin indent on + +"source ~/.vim/grep.vim + +let maplocalleader = "\\" +let mapleader = "," + +set autoread +set foldmethod=manual +set autowrite +set backspace=indent,eol,start +"set colorcolumn=80 +"set cursorline +set completeopt=menuone,longest +set display=truncate +set equalalways +set fileformat=unix +set hidden +set history=1000 +set ignorecase +set incsearch +set infercase +set laststatus=2 +"set list +set listchars=nbsp:%,tab:▸\ ,trail:_,eol:¬,precedes:←,extends:→ +set matchtime=8 +set nobackup +set nocompatible +set nohlsearch +set nojoinspaces +set nomodeline +set noshelltemp +set noswapfile +set noundofile +set nowritebackup +set path+=** +set report=0 +set ruler +set scrolloff=5 +set shell=bash +set shortmess+=c +set showcmd +set showmatch +set showmode +set signcolumn=number +set splitright +set tabstop=4 softtabstop=4 shiftwidth=4 expandtab +set ttimeout +set ttimeoutlen=100 +"set viminfo= +set wildmenu +set wildoptions=pum +set wildmode=full +set wildignore=**/__pycache*/** +set wrap +packadd! matchit + +nnoremap <leader>ev <C-w>s<C-w>j<C-w>L:e $HOME/.vim/vimrc<cr> +if (exists("*strftime")) + noremap <silent> <leader>date "=strftime("%F")<CR>p9h + noremap <silent> <leader>time "=strftime("%X")<CR>p7h +endif +nnoremap <leader><space> :noh<cr>:call clearmatches()<cr> +noremap <silent> J 10j +noremap <silent> K 10k +command! W w +let @x = 'o- [ ] ' + +" FZF + +nnoremap <leader><C-p> :<C-u>FZF!<CR> +nnoremap <C-p>g :Files<CR> +nnoremap <C-p>p :GitFiles<CR> +nnoremap <leader>o :Tags<CR> +nnoremap <leader>h :History<CR> +nnoremap <silent> <leader>0 :Files<CR> +nnoremap <silent> <leader>; :BLines<CR> +nnoremap <silent> <leader>l :Lines<CR> +nnoremap <silent> <leader>o :BTags<CR> +nnoremap <C-p>b :Buffers<CR> +nnoremap <silent> <leader>? :History:<CR> +nnoremap <silent> <leader>/ :execute 'Ag ' . input('Ag/')<CR> +nnoremap <silent> <leader>ft :Filetypes<CR> +nnoremap <silent> <leader>CC :Commands<CR> + +" vim-test +nmap <silent> tn :TestNearest<CR> +nmap <silent> tf :TestFile<CR> +nmap <silent> ts :TestSuite<CR> +nmap <silent> tl :TestLast<CR> +nmap <silent> <leader>tv :TestVisit<CR> +let test#strategy = "basic" +let test#python#pytest#options = '-q -s' +let test#python#runner = 'pytest' +let test#vimterminal#term_position = "belowright" + +" snippets +let g:UltiSnipsEditSplit = "vertical" +let g:UltiSnipsListSnippets = "<leader>s" +let g:UltiSnipsExpandTrigger = "<c-j>" +let g:UltiSnipsJumpForwardTrigger = "<c-j>" +let g:UltiSnipsJumpBackwardTrigger = "<c-k>" + + +if executable('rg') + set grepprg=rg\ --color=never\ --vimgrep +endif + +" and search with ripgrep +command! -bang -nargs=* Rg + \ call fzf#vim#grep( + \ 'rg --column --line-number --no-heading --color=always --ignore-case '.shellescape(<q-args>), 1, + \ <bang>0 ? fzf#vim#with_preview('up:60%') + \ : fzf#vim#with_preview('right:50%:hidden', '?'), + \ <bang>0) + +nnoremap <C-p>a :Rg + +augroup textfiles + autocmd! + autocmd filetype markdown setlocal spell spelllang=en +augroup end + +call plug#begin() +Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } +Plug 'junegunn/fzf.vim' +Plug 'mhinz/vim-signify' +Plug 'vim-test/vim-test' +Plug 'ledger/vim-ledger' +Plug 'fatih/vim-go', {'do': ':GoUpdateBinaries' } +Plug 'tpope/vim-dispatch' +Plug 'tpope/vim-surround' +Plug 'tpope/vim-commentary' +Plug 'tpope/vim-unimpaired' +Plug 'tpope/vim-fugitive' +Plug 'SirVer/UltiSnips' +Plug 'honza/vim-snippets' +Plug 'dense-analysis/ale' +call plug#end() + +" ALE +let g:ale_enabled = 1 +let g:ale_set_balloons = 0 +let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' +let g:ale_sign_error = '!' +let g:ale_sign_warning = '?' +let g:ale_lint_on_text_changed = 1 +let g:ale_hover_cursor = 1 +let g:ale_virtualtext_cursor = 'disabled' +let g:ale_sign_column_always = 1 +let g:ale_open_list = 0 +let g:ale_set_highlights = 1 +let g:ale_set_signs = 1 +let g:ale_set_loclist = 1 +let g:ale_set_quickfix = 1 +let g:ale_echo_cursor = 1 +let g:ale_echo_msg_error_str = 'ALE Error' +let g:ale_echo_msg_format = 'ALE: %linter% - %code: %%s' +let g:ale_loclist_msg_format = 'ALE: %linter% - %code: %%s' +let g:ale_echo_msg_warning_str = 'ALE Warning' +let g:ale_linters = {'python': ['pyright', 'ruff', 'flake8', 'mypy'], +\ 'ocaml': ['merlin'], +\ 'javascript': ['eslint'], +\ 'cpp': ['clangd'], +\ 'yaml': ['yamllint'], +\ 'c': ['clangd'], +\ 'go': ['gopls', 'golint', 'gofmt'], + \} +let g:ale_fixers = { +\ 'python': ['autoimport', 'ruff', 'isort', 'yapf', 'black'], +\ 'javascript': ['eslint'], +\ 'go': ['gofmt', 'goimports', 'gopls'], +\ 'cpp': ['clang-format'], +\ 'c': ['clang-format'], +\ 'rust': ['rustfmt'] +\ } +let g:ale_python_mypy_ignore_invalid_syntax = 1 +let g:ale_python_mypy_executable = 'mypy' +let g:ale_python_mypy_options = '--config-file mypy.ini' +" let g:ale_sign_error = '>>' +let g:ale_fix_on_save = 1 +let g:ale_linters_explicit = 0 +let g:ale_completion_enabled = 0 +" Map movement through errors without wrapping. +" nmap <silent> <C-k> <Plug>(ale_previous) +" nmap <silent> <C-j> <Plug>(ale_next) +" OR map keys to use wrapping. +nmap <silent> <C-k> <Plug>(ale_previous_wrap) +nmap <silent> <C-j> <Plug>(ale_next_wrap) + +set background=dark +colorscheme koehler +"syntax off + |