Files
dotfiles/.vimrc
2026-04-10 15:40:20 -07:00

96 lines
1.8 KiB
VimL

filetype plugin indent on
syntax off
"colorscheme wildcharm
colorscheme habamax
set nobackup nowritebackup
set noswapfile
set number
set tabstop=4
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 <silent> K <Nop>
:vnoremap > >:normal gv<CR>
:vnoremap < <:normal gv<CR>
:vnoremap J :m '>+1<CR>gv=gv
:vnoremap K :m '<-2<CR>gv=gv
:nnoremap H :bnext<CR>zz
:nnoremap L :bprev<CR>zz
:nnoremap , :copen<CR>
:nnoremap > :cn<CR>
:nnoremap < :cp<CR>
:nnoremap \\ :noh<CR>
:nnoremap E :Ex<CR>
:nnoremap <space>z :set relativenumber<CR>
:nnoremap <space>x :set norelativenumber<CR>
xnoremap p "_dP
:nnoremap gb :make<CR>
:nnoremap gw :bdelete<CR>
" Align regex
command! -nargs=? -range Align <line1>,<line2>call AlignSection('<args>')
vnoremap <silent> <Leader>a :Align<CR>
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