aboutsummaryrefslogblamecommitdiffstats
path: root/vim/vimrc
blob: 017c555768b8b2101a84af4e6a23cbfb962594be (plain) (tree)
1
2
3
4
5
6
7
                  



                         

                         


















































                                                                      




                                                             
                                                         






                      





                                      

                                       





                                                             
 









                                                 
 





                                            
 
 


                                            
 






                                                                                                          
 





                                                       
 



                                                   
                        






                                                 

                         
                         

               
     


















                                                           
                                                                     







                                                                  
                                                                       


















                                                        
 





                    
                                    
 
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=light
"colorscheme koehler
"
" set colours off!
"set t_Co=0
syntax off
hi SignColumn ctermbg=none term=none