summaryrefslogtreecommitdiffstats
path: root/vim/vimrc-decent
diff options
context:
space:
mode:
Diffstat (limited to 'vim/vimrc-decent')
-rw-r--r--vim/vimrc-decent195
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
+