diff options
author | Matthew Lemon <y@yulqen.org> | 2023-06-04 09:43:27 +0100 |
---|---|---|
committer | Matthew Lemon <y@yulqen.org> | 2023-06-04 09:43:27 +0100 |
commit | 91eba850f62f3f6b2abd3585da7ca31752a2bc5f (patch) | |
tree | c55df829b5f98e9334788ef084c849aec9cd1f84 /vim/vimrc | |
parent | a076e29962e8c706a89174b4ddea347fbbb63876 (diff) |
Big vim consolidation - cleaner, less config, no bs
Diffstat (limited to 'vim/vimrc')
-rw-r--r-- | vim/vimrc | 576 |
1 files changed, 101 insertions, 475 deletions
@@ -1,125 +1,71 @@ -set nocompatible -syntax on "turn syntax highlighting on -filetype plugin indent on "load plugin and indent files associated a detected filetype - -" macro to go to end of sentence and add a line break (for -" one-line-per-sentence vimming...) -let @s = ")i\<BS>\<CR>\<Esc>" - -" Open vimrc -nnoremap <leader>ev <C-w>s<C-w>j<C-w>L:e $MYVIMRC<cr> +syntax on +filetype plugin on +filetype indent on " leader let maplocalleader = "\\" -let mapleader = " " - -" Function to allow adding a line of text to taskwarrior -function! TaskWarriorAddCurrentLine() - let current_line = getline('.') - silent execute ":!task add " . shellescape(current_line) - redraw! - echo "Task added: " . current_line - delete -endfunction - -nnoremap <leader>q :call TaskWarriorAddCurrentLine()<CR> +let mapleader = "," +set nocompatible +set scrolloff=1 +set history=799 +set wildignore=**/__pycache*/** +set wildoptions=pum +set wildmenu +set wildchar=<TAB> +set showmatch +set ruler +set showcmd +set nohlsearch +set incsearch +set ignorecase +set smartindent +set smartcase +set tabstop=4 +set softtabstop=4 +set shiftwidth=4 +set splitbelow +set noswapfile +set nobackup +set splitright +set autoindent +set expandtab +set hidden +set path+=** +set relativenumber +set number +set more +set signcolumn=yes +set colorcolumn=0 +set equalalways +set showmode +set listchars=tab:»→,trail:␣ +set shortmess+=c +set tags+=./tags +set background=dark +set completeopt=menuone,longest -" redirect any output to a scratch buffer -" from https://gist.github.com/romainl/eae0a260ab9c135390c30cd370c20cd7 -function! Redir(cmd, rng, start, end) - for win in range(1, winnr('$')) - if getwinvar(win, 'scratch') - execute win . 'windo close' - endif - endfor - if a:cmd =~ '^!' - let cmd = a:cmd =~' %' - \ ? matchstr(substitute(a:cmd, ' %', ' ' . shellescape(escape(expand('%:p'), '\')), ''), '^!\zs.*') - \ : matchstr(a:cmd, '^!\zs.*') - if a:rng == 0 - let output = systemlist(cmd) - else - let joined_lines = join(getline(a:start, a:end), '\n') - let cleaned_lines = substitute(shellescape(joined_lines), "'\\\\''", "\\\\'", 'g') - let output = systemlist(cmd . " <<< $" . cleaned_lines) - endif - else - redir => output - execute a:cmd - redir END - let output = split(output, "\n") - endif - vnew - let w:scratch = 1 - setlocal buftype=nofile bufhidden=wipe nobuflisted noswapfile - call setline(1, output) -endfunction - -" This command definition includes -bar, so that it is possible to "chain" Vim commands. -" Side effect: double quotes can't be used in external commands -command! -nargs=1 -complete=command -bar -range Redir silent call Redir(<q-args>, <range>, <line1>, <line2>) - -" This command definition doesn't include -bar, so that it is possible to use double quotes in external commands. -" Side effect: Vim commands can't be "chained". -command! -nargs=1 -complete=command -range Redir silent call Redir(<q-args>, <range>, <line1>, <line2>) - -" big from https://gist.github.com/romainl/047aca21e338df7ccf771f96858edb86 -nnoremap ;s :g//#<Left><Left> -function! CCR() - let cmdline = getcmdline() - if cmdline =~ '\v\C^(ls|files|buffers)' - " like :ls but prompts for a buffer command - return "\<CR>:b" - elseif cmdline =~ '\v\C/(#|nu|num|numb|numbe|number)$' - " like :g//# but prompts for a command - return "\<CR>:" - elseif cmdline =~ '\v\C^(dli|il)' - " like :dlist or :ilist but prompts for a count for :djump or :ijump - return "\<CR>:" . cmdline[0] . "j " . split(cmdline, " ")[1] . "\<S-Left>\<Left>" - elseif cmdline =~ '\v\C^(cli|lli)' - " like :clist or :llist but prompts for an error/location number - return "\<CR>:sil " . repeat(cmdline[0], 2) . "\<Space>" - elseif cmdline =~ '\C^old' - " like :oldfiles but prompts for an old file to edit - set nomore - return "\<CR>:sil se more|e #<" - elseif cmdline =~ '\C^changes' - " like :changes but prompts for a change to jump to - set nomore - return "\<CR>:sil se more|norm! g;\<S-Left>" - elseif cmdline =~ '\C^ju' - " like :jumps but prompts for a position to jump to - set nomore - return "\<CR>:sil se more|norm! \<C-o>\<S-Left>" - elseif cmdline =~ '\C^marks' - " like :marks but prompts for a mark to jump to - return "\<CR>:norm! `" - elseif cmdline =~ '\C^undol' - " like :undolist but prompts for a change to undo - return "\<CR>:u " - else - return "\<CR>" - endif -endfunction -cnoremap <expr> <CR> CCR() +" colorscheme goes here, outside source control +source ~/.vim/ephemera.vim +highlight SignColumn guibg=blue ctermbg=black +" macro to go to end of sentence and add a line break (for +" one-line-per-sentence vimming...) +let @s = ")i\<BS>\<CR>\<Esc>" +" i don't bother with folding, but it's here if i need it. +if has('folding') + set foldmethod=marker + set foldmarker=#\ {{{,#\ }}} + set viewoptions=folds,options,cursor,unix,slash +endif -" encryptio) method when using :X -set cm=blowfish2 +" disable folding by default with vim-markdown +let g:vim_markdown_folding_disabled = 1 -" Underline the current line, based on its length. -noremap <silent> <leader>ul mmyypVr-<Esc>`m -" -" Show the 'list' characters. -noremap <silent> <leader>ls :set list!<CR> +" Open vimrc +nnoremap <leader>ev <C-w>s<C-w>j<C-w>L:e $HOME/.vim/vimrc<cr> -" Remove double- or single-quotes, or graves wrapped around a string. -noremap <silent> <leader>rdq mmF"xf"x`m -noremap <silent> <leader>rsq mmF'xf'x`m -noremap <silent> <leader>rg mmF`xf`x`m - " Jump up or down by 10 lines. noremap <silent> J 10j noremap <silent> K 10k @@ -129,87 +75,69 @@ if (exists("*strftime")) noremap <silent> <leader>date "=strftime("%F")<CR>p9h noremap <silent> <leader>time "=strftime("%X")<CR>p7h endif -" -" Execute the current line with BASH. -noremap <silent> <leader>rl :.w !bash<CR> -" Run the current file with PERL, Python, BASH, or a Bourne Shell derivative. -noremap <silent> <leader>rpl :!clear; perl %<CR> -noremap <silent> <leader>rpy :!clear; python %<CR> -noremap <silent> <leader>rb :!clear; bash %<CR> -noremap <silent> <leader>rs :!clear; sh %<CR> +" Place timestamps, be it date (YYYY-MM-DD) or time (HH:MM:SS). +if (exists("*strftime")) + noremap <silent> <leader>date "=strftime("%F")<CR>p9h + noremap <silent> <leader>time "=strftime("%X")<CR>p7h +endif + +"keymap for Fern +nnoremap ;f :Fern . -drawer<cr> -" essential plugins call plug#begin() +"Plug 'vim-scripts/AutoComplPop' Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } Plug 'junegunn/fzf.vim' -" Plug 'sheerun/vim-polyglot' +Plug 'lambdalisue/fern.vim' +Plug 'junegunn/goyo.vim' +Plug 'sheerun/vim-polyglot' Plug 'preservim/vim-markdown' Plug 'mhinz/vim-signify' Plug 'vim-test/vim-test' Plug 'ledger/vim-ledger' -" Plug 'jlanzarotta/bufexplorer' -Plug 'tpope/vim-fugitive' Plug 'fatih/vim-go', {'do': ':GoUpdateBinaries' } Plug 'tpope/vim-dispatch' +Plug 'tpope/vim-surround' Plug 'tpope/vim-commentary' -"Plug 'ycm-core/YouCompleteMe' -"Plug 'jayli/vim-easycomplete' -" Plug 'rose-pine/vim' +Plug 'tpope/vim-unimpaired' +Plug 'tpope/vim-fugitive' Plug 'SirVer/UltiSnips' Plug 'honza/vim-snippets' -" Plug 'dense-analysis/ale' -" Plug 'davidhalter/jedi-vim' call plug#end() -" easycomplete -"let g:easycomplete_tab_trigger="<c-space>" +" Make :grep use ripgrep +if executable('rg') + set grepprg=rg\ --color=never\ --vimgrep +endif -" jedi-vim -let g:jedi#goto_command = "<leader>d" -let g:jedi#goto_assignments_command = "<leader>g" -let g:jedi#goto_stubs_command = "<leader>s" -let g:jedi#goto_definitions_command = "" -let g:jedi#documentation_command = "K" -let g:jedi#usages_command = "<leader>n" -let g:jedi#completions_command = "<C-Space>" -let g:jedi#rename_command = "<leader>r" -let g:jedi#rename_command_keep_name = "<leader>R" +" 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) -" " YCM -" let g:ycm_enable_inlay_hints = 1 -" nnoremap <silent> <localleader>h <Plug>(YCMToggleInlayHints) -" nnoremap gd :YcmCompleter GoToDefinition<CR> -" nnoremap <leader>gr :YcmCompleter GoToReferences<CR> -" nnoremap K :YcmCompleter GetDoc<CR> -" " this will disable tab, allowing it to be used for ultisnips -" let g:ycm_key_list_select_completion = ['<C-n>', '<Down>'] -" let g:ycm_key_list_previous_completion = ['<C-p>', '<Up>'] -" let g:ycm_python_interpreter_path = '.venv/bin/python3' -" let g:ycm_auto_trigger = 0 -" let g:ycm_enable_inlay_hints = 0 -" let g:ycm_python_sys_path = [] -" let g:ycm_show_diagnostics_ui = 0 -" let g:ycm_extra_conf_vim_data = [ -" \ 'g:ycm_python_interpreter_path', -" \ 'g:ycm_python_sys_path' -" \] -" let g:ycm_global_ycm_extra_conf = '~/.global_extra_conf.py' -" nnoremap <leader>jd :YcmCompleter GoTo<CR> -" imap <silent> <C-l> <Plug>(YCMToggleSignatureHelp)'. +nnoremap <C-p>a :Rg +" Generate ctags for current working directory +nnoremap <leader>tt :silent !ctags -R . <CR>:redraw!<CR> +" notes stuff - from https://www.edwinwenink.xyz/posts/43-notes_tagging/ +" Go to index of notes and set working directory to my notes +nnoremap <leader>ni :e $NOTES_DIR/index.md<CR>:cd $NOTES_DIR<CR> -" snippets -" Trigger configuration. You need to change this to something other than <tab> if you use one of the following: -" - https://github.com/Valloric/YouCompleteMe -" - https://github.com/nvim-lua/completion-nvim -let g:UltiSnipsExpandTrigger="<tab>" -let g:UltiSnipsJumpForwardTrigger="<c-b>" -let g:UltiSnipsJumpBackwardTrigger="<c-z>" +" 'Notes Grep' with ripgrep (see grepprg) +" -i case insensitive +" -g glob pattern +" ! to not immediately open first search result +command! -nargs=1 Ngrep :silent grep! "<args>" -i -g '*.md' $NOTES_DIR | execute ':redraw!' +nnoremap <leader>nn :Ngrep -" If you want :UltiSnipsEdit to split your window. -let g:UltiSnipsEditSplit="vertical" +" Open quickfix list in a right vertical split (good for Ngrep results) +command! Vlist botright vertical copen | vertical resize 50 +nnoremap <leader>v : Vlist<CR> " vim-test nmap <silent> tn :TestNearest<CR> @@ -222,229 +150,13 @@ let test#python#pytest#options = '-q -s' let test#python#runner = 'pytest' let test#vimterminal#term_position = "belowright" -" to run tests automatically -"augroup test -" autocmd! -" autocmd BufWrite * if test#exists() | -" \ TestFile | -" \ endif -"augroup END - -" set shell=/bin/sh -" set t_Co=0 " this is supposed to remove colours -set hi=500 -set scrolloff=0 -" set novisualbell -"set relativenumber "show line numbers -set wildignore=**/__pycache*/** -set wildmenu "enable a menu that shows tab completion options in the status bar -set wildchar=<TAB> -set showmatch "highlights matching brackets on cursor hover -set ruler "show cursor position in status bar -set showcmd "shows the normal mode command before it gets executed -set encoding=utf-8 -set fileformats=unix,dos,mac -set nohlsearch "highlights searches -set incsearch "incremental search (searches character by character) -set ignorecase "ignores the case of a search -set smartindent -set autoindent -set smartcase "only ignores case if there are no capital letters in search (only works after ignorecase has been set) -set tabstop=4 "the amount of spaces that vim will equate to a tab character -set softtabstop=4 "like tabstop, but for editing operations (insert mode) -set splitbelow " split horiz below -set noswapfile -set splitright " split new to the right when doing vertical -set shiftwidth=4 "used for autoindent and << and >> operators in normal mode -set autoindent "copies indent from current line to the next line -set expandtab "tabs will expand to whitespace characters -set esckeys "allows function keys to be recognized in Insert mode -set ttimeoutlen=20 "timeout for a key code mapping -set timeoutlen=1000 "time(ms) to wait for key mappings -set hidden -set t_Co=256 -"set t_Co=0 - switches off all colours -set path+=** -set more -set colorcolumn=0 -set equalalways -set showmode -set nobackup -set listchars=tab:»→,trail:␣ -if executable('ag') - set grepprg=ag\ --vimgrep\ --nogroup\ --nocolor -endif - -" From Practical Vim p101 - Easy expansion of Active File Directory -cnoremap <expr> %% getcmdtype() == ':' ? expand('%:h').'/' : '%%' - -" i don't bother with folding, but it's here if i need it. -if has('folding') - set foldmethod=marker - set foldmarker=#\ {{{,#\ }}} - set viewoptions=folds,options,cursor,unix,slash -endif - -" from https://www.reddit.com/r/vim/comments/f5gi2g/vim_notetaking_automatic_link_creation_between/ -" copies a link from file from previous buffer for pasting into -" next buffer with "ap -function! s:copy_filename_as_mdlink() - let fname=expand("%") - let @a="[" . fname . "](./" . fname. ")" -endfunction -autocmd BufLeave * call s:copy_filename_as_mdlink() - -" Ultisnips -let g:UltiSnipsExpandTrigger="<tab>" -let g:UltiSnipsJumpForwardTrigger="<c-j>" -let g:UltiSnipsJumpBackwardTrigger="<c-k>" -set completefunc=UltiSnips#Complete - - -" vim-test -" use vim-dispatch to run tests in the quickfix window -" from Modern Vim Ch.4 -" the mappings below are from vim-test -" https://github.com/vim-test/vim-test -" dispatch opens send test output to quickfix window -let test#strategy = "basic" -let test#python#runner = "pytest" -let test#vim#term_position = "topleft 10" -let test#python#pytest#options = '--tb=short' -let test#go#runner = 'gotest' -"let test#go#gotest#options = '-v' -" To run mypy using vim-dispath -with Dispatch -autocmd FileType python let b:dispatch = 'mypy --ignore-missing-imports' - -" Set wrap option for Markdown files -autocmd FileType markdown setlocal linebreak - -" test -nmap <silent> tn :TestNearest<CR> -nmap <silent> ts :TestSuite<CR> -nmap <silent> tf :TestFile<CR> -nmap <silent> <S-F10> :TestLast<CR> -nmap <silent> t<C-g> :TestVisit<CR> - -" disable folding by default with vim-markdown -let g:vim_markdown_folding_disabled = 1 -" -" ALE ale config -let g:ale_enabled = 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 = 0 -let g:ale_hover_cursor = 0 -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 = 0 -let g:ale_echo_cursor = 1 -let g:ale_echo_msg_error_str = 'Error' -let g:ale_echo_msg_format = '%linter% - %code: %%s' -let g:ale_loclist_msg_format = '%linter% - %code: %%s' -let g:ale_echo_msg_warning_str = 'Warning' -let g:ale_linters = {'python': ['flake8', 'mypy'], -\ 'ocaml': ['merlin'], -\ 'cpp': ['clang'], -\ 'yaml': ['yamllint'], -\ 'c': ['clang'], -\ 'go': ['gopls', 'golint', 'gofmt'], - \} -let g:ale_fixers = { -\ 'python': ['isort', 'yapf', 'black'], -\ 'go': ['gofmt'], -\ '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 - -" Python - keybindings -nnoremap <leader>Ts :setlocal makeprg=pytest\ -q\ %<cr> -nnoremap <leader>Tf :setlocal makeprg=flake8\ %<cr> -nnoremap <leader>Tb :setlocal makeprg=black\ %<cr> -nnoremap <leader>Tm :setlocal makeprg=mypy\ --ignore-missing-imports\ %<cr> -" then run the one set with this... -nnoremap <leader>Tt :make!<cr> - " clear search highlights nnoremap <leader><space> :noh<cr>:call clearmatches()<cr> -" previews in netrw -let g:netrw_preview = 1 - -" journal stuff -autocmd BufNewFile,BufReadPost *.md map <leader>jj <Esc>:r! date +" - \%H:\%M: "<ENTER>kJA<Esc>$<space><Esc> -autocmd BufNewFile,BufReadPost *.md map <leader>jd <Esc>:r! date +"(\%Y-\%m-\%dT\%H:\%M)"<ENTER>i<backspace><space><Esc> - -syntax on "turn syntax highlighting on -filetype plugin indent on "load plugin and indent files associated a detected filetype runtime macros/matchit.vim "allows jumping between brackets with % in normal mode -" Go stuff -let g:go_highlight_fields = 1 -let g:go_highlight_functions = 1 -let g:go_highlight_function_calls = 1 -let g:go_highlight_extra_types = 1 -let g:go_highlight_operators = 1 -let g:go_doc_keywordprg_enabled = 1 -let g:go_list_height = 0 -let g:go_highlight_operators = 1 -let g:go_highlight_function_parameters = 1 -let g:go_doc_max_height = 50 -let g:go_doc_popup_window = 1 -let g:go_list_height = 10 - - -" vim-go debugger window settings -let g:go_debug_windows = { - \ 'vars': 'leftabove 40vnew', - \ 'stack': 'leftabove 20new', - \ 'goroutines': 'botright 10new', - \ 'out': 'botright 5new', -\ } - -" vim-go and gopls -let g:go_def_mode='gopls' -let g:go_info_mode='gopls' -let g:go_play_browser_command = 'firefox %URL% &' -let g:go_test_show_name = 1 -let g:go_auto_type_info = 1 -let test#go#runner = 'gotest' -let g:go_term_mode = "split" -let g:go_term_height = 50 -let g:go_highlight_fields = 1 -let g:go_highlight_functions = 1 - -"autocmd FileType go nmap <leader>r :w<CR>:split <bar> terminal go run %<CR> -autocmd FileType go nmap <leader>R :GoRun<CR> -" highlights the variable in the file for you.. -"let g:go_auto_sameids = 1 -" auto import... -let g:go_fmt_command = "goimports" -" automatic type info on cursor -let g:go_auto_type_info = 2 -let g:go_snippet_engine = "ultisnips" -au Filetype go nmap <leader>ga <Plug>(go-alternate-edit) -au Filetype go nmap <leader>gah <Plug>(go-alternate-split) -au Filetype go nmap <leader>gav <Plug>(go-alternate-vertical) -au Filetype go nmap <leader>gaf <Plug>(go-fmt) -au Filetype go nmap <leader>gal <Plug>(go-lint) -au Filetype go nmap <leader>gbx <Plug>(go-deps) -au FileType go nmap <F8> :GoTestFunc -short<cr> -au FileType go nmap <F10> :GoTest -short<cr> -au FileType go nmap <F9> :DlvToggleBreakpoint<CR> -au FileType go nmap <S-F9> :DlvTest<CR> -au FileType go nmap <F11> :DlvDebug<CR> -au FileType go nmap <S-F5> :GoRename<CR> +" remap :W to :w - :W was previous Windows in fzf +command! W w " FZF " This is the default extra key bindings @@ -474,14 +186,6 @@ let g:fzf_colors = " (https://github.com/zenbro/dotfiles/blob/master/.nvimrc#L151-L187) let g:fzf_nvim_statusline = 0 " disable statusline overwriting - " copy the path of the current file into the system clipboard -"nnoremap <leader>y :let @+=expand('%:p')<CR>:call system("true")<CR>:let @"=@+<CR>:echo "File path copied to clipboard: " . @+<CR> -nnoremap <leader>y :let @*=expand('%:p')<CR>:call system("true")<CR>:let @+=@*<CR>:echo "File path copied to clipboard: " . @+<CR> - -" Alternatively, format is as Markdown link -nnoremap <leader>Y :let @+=printf("[%s](%s)", expand('%:t'), "file://" . expand('%:p'))<CR>:call system("true")<CR>:let @"=@+<CR>:echo "Markdown link copied to clipboard: " . @+<CR> - -" command history is :History: nnoremap <C-s> :GFiles!<CR> nnoremap <leader><C-p> :<C-u>FZF!<CR> nnoremap <leader>t :Files<CR> @@ -498,81 +202,3 @@ nnoremap <leader>Y :let @+=printf("[%s](%s)", expand('%:t'), "file://" . expand( nnoremap <silent> <leader>CC :Commands<CR> imap <C-x><C-f> <plug>(fzf-complete-file-ag) imap <C-x><C-l> <plug>(fzf-complete-line) - -" remap :W to :w - :W was previous Windows in fzf -command! W w - -" ghetto note system -" Go to index of notes -nnoremap <leader>ni :e $NOTES_DIR/index.md<CR>:cd $NOTES_DIR<CR> -" Depends on grepprg being set to rg -command! -nargs=1 Ngrep grep "<args>" -g "*.md" $NOTES_DIR -nnoremap <leader>nn :Ngrep - -" open quicklist vertical -command! Vlist botright vertical copen | vertical resize 50 -nnoremap <leader>v :Vlist<CR> - -" 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 - -"" Quick Editing vimrc -nnoremap <leader>ev <C-w>s<C-w>j<C-w>L:e $MYVIMRC<cr> - -" syntax enable -let g:solarized_termcolors=256 -let g:gruvbox_termcolors=256 -let g:gruvbox_contrast_dark='hard' -let g:gruvbox_contrast_light='hard' -let g:gruvbox_hls_cursor='orange' -let g:gruvbox_sign_column='bg0' -let g:gruvbox_number_column='bg0' -let g:gruvbox_invert_signs='0' -let g:gruvbox_improved_strings='0' -set background=dark -"colorscheme hipster -" colorscheme rosepine - -" manual highlights -" highlight Visual ctermfg=black ctermbg=LightMagenta -" highlight SignColumn ctermbg=black ctermfg=white -" highlight Comment ctermfg=DarkGray -" highlight DiffAdd term=bold ctermfg=yellow ctermbg=black -" highlight DiffDelete term=bold ctermfg=red ctermbg=black -" highlight DiffChange term=bold ctermfg=black ctermbg=DarkGreen - -augroup general - autocmd! - "keep equal proportions when windows resized - autocmd VimResized * wincmd = - "save cursor position in a file - autocmd BufReadPost * if line("'\"") > 1 && line("'\"") - \ <= line("$") | exe "normal! g'\"" | endif -augroup END - -augroup languages - autocmd! - autocmd BufNewFile,BufRead *.bash set syntax=sh - autocmd FileType python xnoremap <leader>r <esc>:'<,'>:w !python3<CR> - autocmd FileType go set noexpandtab - autocmd FileType html :syntax sync fromstart - autocmd FileType html,javascript,css,json,yaml,sh - \ setlocal ts=2 sts=2 sw=2 expandtab -augroup END - -" Switching off colours -syntax off -set nohlsearch -set background=dark -set cursorline -"set cursorcolumn -set visualbell -highlight clear -highlight Visual term=reverse cterm=reverse gui=reverse |