filetype plugin indent on syntax on colorscheme habamax set nobackup nowritebackup set noswapfile set number set tabstop=8 set shiftwidth=4 set softtabstop=4 set expandtab set autoindent set smarttab set mouse=a set laststatus=2 set scrolloff=5 set ignorecase set hlsearch set incsearch set wrap! set timeoutlen=1000 set ttimeoutlen=0 set hidden set wildmenu set clipboard=unnamed,unnamedplus set colorcolumn=75 "set backspace=indent,eol,start set updatetime=100 set signcolumn=auto :nnoremap K :vnoremap > >:normal gv :vnoremap < <:normal gv :vnoremap J :m '>+1gv=gv :vnoremap K :m '<-2gv=gv :nnoremap H :bnextzz :nnoremap L :bprevzz :nnoremap , :copen :nnoremap > :cn :nnoremap < :cp :nnoremap g/ :noh :nnoremap E :Ex :nnoremap z :set relativenumber :nnoremap x :set norelativenumber "xnoremap p "_dP :nnoremap gb :make :nnoremap gr :make run :nnoremap gw :bdelete " Align regex command! -nargs=? -range Align ,call AlignSection('') vnoremap a :Align function! AlignSection(regex) range let extra = 1 let sep = empty(a:regex) ? '=' : a:regex let maxpos = 0 let section = getline(a:firstline, a:lastline) for line in section let pos = match(line, ' *'.sep) if maxpos < pos let maxpos = pos endif endfor call map(section, 'AlignLine(v:val, sep, maxpos, extra)') call setline(a:firstline, section) endfunction function! AlignLine(line, sep, maxpos, extra) let m = matchlist(a:line, '\(.\{-}\) \{-}\('.a:sep.'.*\)') if empty(m) return a:line endif let spaces = repeat(' ', a:maxpos - strlen(m[1]) + a:extra) return m[1] . spaces . m[2] endfunction " Window Operations function! CreateOrSelectWindow() let win_count = winnr('$') if win_count == 1 execute 'vsplit' endif execute '2wincmd w' endfunction function! PutIntoShade() let max_width = float2nr(&columns * 0.95) let min_width = float2nr(&columns * 0.5) if winwidth(0) > min_width execute 'vertical resize ' . min_width elseif winwidth(0) <= min_width execute 'vertical resize ' . max_width endif endfunction :nnoremap ! :1wincmd w :nnoremap @ :call CreateOrSelectWindow() :nnoremap # :call PutIntoShade() " Preserve paste line column function! PasteAbove() let c = col('.') normal! P call cursor(0, c) endfunction function! PasteBelow() let c = col('.') normal! p call cursor(0, c) endfunction :nnoremap P :call PasteAbove() :nnoremap p :call PasteBelow() " Todo Comments highlights " Colors: https://vim.fandom.com/wiki/Xterm256_color_names_for_console_Vim " NOTE: These are confirmed to work with 'habamax' color scheme. :highlight TODOPerf term=bold,underline cterm=bold,underline ctermfg=93 " purple :highlight TODOHack term=bold,underline cterm=bold,underline ctermfg=214 " orange :highlight TODOTodo term=bold,underline cterm=bold,underline ctermfg=51 " cyan :highlight TODONote term=bold,underline cterm=bold,underline ctermfg=46 " green :highlight TODOFix term=bold,underline cterm=bold,underline ctermfg=196 " green :highlight TODOWarning term=bold,underline cterm=bold,underline ctermfg=214 " orange augroup HiglightTODO autocmd! autocmd WinEnter,VimEnter * :silent! call matchadd('TODOPerf', 'PERF:', -1) autocmd WinEnter,VimEnter * :silent! call matchadd('TODOHack', 'HACK:', -1) autocmd WinEnter,VimEnter * :silent! call matchadd('TODOTodo', 'TODO:', -1) autocmd WinEnter,VimEnter * :silent! call matchadd('TODONote', 'NOTE:', -1) autocmd WinEnter,VimEnter * :silent! call matchadd('TODOFix', 'FIX:', -1) autocmd WinEnter,VimEnter * :silent! call matchadd('TODOWarning', 'WARNING:', -1) augroup END