filetype plugin on " leader key let mapleader = ' ' " enabled options set colorcolumn=80 set confirm set cursorline set expandtab set ignorecase set laststatus=2 set mouse=n set nowrap set number set path=** set relativenumber set scrolloff=5 set shiftwidth=4 set showcmd set sidescrolloff=12 set splitbelow set splitright set tabstop=4 set termguicolors set timeoutlen=200 set undofile set undolevels=10000 set winminwidth=10 " keymaps nnoremap q wincmd q nnoremap Q q xnoremap J :m '>+1gv=gv xnoremap K :m '<-2gv=gv nnoremap lnext nnoremap lprev nnoremap - e %:h " Auto undo breakpoints inoremap , ,u inoremap . .u inoremap ; ;u nnoremap , :lclosecall setloclist(0, map(filter(range(1, bufnr('$')), 'buflisted(v:val)'), '{"bufnr": v:val}'))lopen nnoremap sg :lgrep -rn '' * nnoremap e :vimgrep "\%^" **/ " FIXME: really hacky way to do. I know nnoremap HarpoonPin() func! HarpoonPin() return ":\u0015nnoremap " . count . " :buffer " . bufnr('%') . "\n" endfunc colorscheme evening cnoreabbrev rere redir @* cnoreabbrev sos source % cabbrev w' w " turn on autochdir while in Insert Mode to get relative path completion " autochdir is quite dangerouse though " autocmd InsertEnter * let save_cwd = getcwd() | set autochdir " autocmd InsertLeave * set noautochdir | execute 'cd' fnameescape(save_cwd) command! Inspect echo map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")')