From fd603cb09f5e85880d69ad4e462fcd545fe1ae41 Mon Sep 17 00:00:00 2001 From: Tyler Starr Date: Mon, 18 Dec 2023 10:53:07 -0800 Subject: [PATCH] refactor vimrc --- home/dot_vimrc | 65 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 13 deletions(-) diff --git a/home/dot_vimrc b/home/dot_vimrc index 7318631e..805eaa77 100644 --- a/home/dot_vimrc +++ b/home/dot_vimrc @@ -5,17 +5,18 @@ " general """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" automatically write files when changing when multiple files open -set autowrite +syntax enable set number set colorcolumn=79 -syntax enable +set autowrite " automatically write files on close + +let mapleader = " " " map leader to Space """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " wildmenu """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Ignore compiled files +" ignore compiled files set wildignore=*.o,*~,*.pyc if has("win16") || has("win32") set wildignore+=.git\*,.hg\*,.svn\* @@ -23,35 +24,48 @@ else set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*/.DS_Store endif -set path=$PWD/** " enable fuzzy finding in the vim command line +" enable fuzzy finding in the vim command line +set path=$PWD/** set nowildmenu set wildmode=list:full """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " netrw """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -let g:netrw_banner = 0 + +let g:netrw_banner = 0 " disable dumb banner + +" use l and h for up/down dir augroup netrw_setup | au! au FileType netrw nmap l au FileType netrw nmap h - augroup END +map e :Ex " open explorer + """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" keys +" marks """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" map leader to Space -let mapleader = " " +" allow only global marks +noremap ' "'".toupper(nr2char(getchar())) +noremap m "m".toupper(nr2char(getchar())) +sunmap ' +sunmap m -" movement +nnoremap ' :call ListSelect("marks", "'") " list jumps/marks +map md :delmarks A-Z0-9 " clear marks + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" misc keys +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" move between splits with hjkl map j map k map h map l -" netrw -map e :Ex - " find map ff :find * @@ -71,3 +85,28 @@ map :set spell! " better use of arrow keys, number increment/decrement nnoremap nnoremap + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" helpers +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" display and select from a list of marks and jumps +" https://vi.stackexchange.com/a/42965 +" +function ListSelect(command, jump) + execute a:command + echohl Question + echo "Enter mark (ESC to cancel): " + echohl NONE + let mark = toupper(nr2char(getchar())) + redraw + if mark !=# "\e" + try + execute "normal! g" .. a:jump .. mark + catch + echohl ErrorMsg + echo substitute(v:exception, "^Vim(.*):", "", "") + echohl NONE + endtry + endif +endfunction