" mapleader let g:mapleader = "," nnoremap xnoremap inoremap " NOTE: enable remap because of lexima.vim imap xnoremap if has('nvim') tnoremap else tnoremap N endif tnoremap " disable dengerous/annoying mapping " NOTE: ZQ is useful when cmdline is broken nnoremap ZZ nnoremap q nnoremap Q q nnoremap S xnoremap q xnoremap Q q xnoremap S " disable tmux prefix key nnoremap xnoremap noremap! nnoremap j gj nnoremap k gk nnoremap gj j nnoremap gk k xnoremap j gj xnoremap k gk xnoremap gj j xnoremap gk k nnoremap x "_x nnoremap s "_s nnoremap Y y$ xnoremap x "_x xnoremap s "_s xnoremap Y y$ nnoremap n nzz nnoremap N Nzz nnoremap * *zz nnoremap # #zz nnoremap g* g*zz nnoremap g# g#zz " disable arrow keys nnoremap nnoremap nnoremap nnoremap xnoremap xnoremap xnoremap xnoremap inoremap inoremap inoremap inoremap " better aliases of / nnoremap \ getline('.')[:col('.') - 2] =~# '^\s*$' ? '0' : '^' nnoremap xnoremap \ getline('.')[:col('.') - 2] =~# '^\s*$' ? '0' : '^' xnoremap inoremap u inoremap u nnoremap [Space] nmap [Space] nnoremap nohlsearchdiffupdate nnoremap \ source $MYVIMRCnohlsearchechomsg 'reloaded!' nnoremap [Space]w update nnoremap [Space]W write nnoremap ^ edit nnoremap [Space]f edit %:p:h " nmap o A " from https://github.com/pesblog/dots-base/blob/a0762b8ffe/home/.vimrc#L140 nnoremap gp '`[' .. strpart(getregtype(), 0, 1) .. '`]' " from https://baqamore.hatenablog.com/entry/2016/07/07/201856 xnoremap p 'pgv"' .. v:register .. 'ygv' xnoremap v $h xnoremap t xnoremap ) t) xnoremap < >gv onoremap v $ onoremap t onoremap ) t) inoremap z zz inoremap p setlocal paste! paste? " emacs-like insert/cmdline mode mapping {{{ noremap! noremap! noremap! noremap! noremap! noremap! noremap! inoremap D cnoremap \ repeat("\", strchars(getcmdline()[getcmdpos() - 1:])) noremap! * " }}} noremap! ¥ " insert current file fullpath cnoremap =expand('%:p') cnoreabbrev w!! \ (getcmdtype() ==# ':' && getcmdline() ==# 'w!!') \ ? 'write !sudo tee > /dev/null %' : 'w!!' " toggle options nnoremap [Toggle] nmap t [Toggle] nnoremap [Toggle]w setlocal wrap! wrap? nnoremap [Toggle]p setlocal paste! paste? nnoremap [Toggle]c setlocal termguicolors! termguicolors? nnoremap [Toggle]n setlocal relativenumber! relativenumber?