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 ev sjL:e $HOME/.vim/vimrc if (exists("*strftime")) noremap date "=strftime("%F")p9h noremap time "=strftime("%X")p7h endif nnoremap :noh:call clearmatches() noremap J 10j noremap K 10k command! W w let @x = 'o- [ ] ' " FZF nnoremap :FZF! nnoremap g :Files nnoremap p :GitFiles nnoremap o :Tags nnoremap h :History nnoremap 0 :Files nnoremap ; :BLines nnoremap l :Lines nnoremap o :BTags nnoremap b :Buffers nnoremap ? :History: nnoremap / :execute 'Ag ' . input('Ag/') nnoremap ft :Filetypes nnoremap CC :Commands " vim-test nmap tn :TestNearest nmap tf :TestFile nmap ts :TestSuite nmap tl :TestLast nmap tv :TestVisit 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 = "s" let g:UltiSnipsExpandTrigger = "" let g:UltiSnipsJumpForwardTrigger = "" let g:UltiSnipsJumpBackwardTrigger = "" 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(), 1, \ 0 ? fzf#vim#with_preview('up:60%') \ : fzf#vim#with_preview('right:50%:hidden', '?'), \ 0) nnoremap 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 (ale_previous) " nmap (ale_next) " OR map keys to use wrapping. nmap (ale_previous_wrap) nmap (ale_next_wrap) set background=light "colorscheme koehler " " set colours off! "set t_Co=0 syntax off hi SignColumn ctermbg=none term=none