Skip to content

Instantly share code, notes, and snippets.

@calmofthestorm
Created May 4, 2014 16:58
Show Gist options
  • Save calmofthestorm/b57f2c7725cd3b159983 to your computer and use it in GitHub Desktop.
Save calmofthestorm/b57f2c7725cd3b159983 to your computer and use it in GitHub Desktop.
" Defines a submode to rapidly choose a register to paste. When entered,
" pastes the default register. Pressing any number will undo the previous
" paste and paste the corresponding kill register. Pressing any letter will
" paste that register in a similar manner.
"
" This is a super lightweight alternative to
" https://github.com/vim-scripts/YankRing.vim and
" https://github.com/maxbrunsfeld/vim-yankstack, which don't seem to play
" nice with heavily customized keymaps since they need to hook into
" D, C, etc.
"
" Requires https://github.com/kana/vim-submode
"
call submode#enter_with('killcycle', 'n', '', ',p', 'p')
call submode#leave_with('killcycle', 'n', '', '<Esc>')
call submode#map('killcycle', 'n', '', ']', 'u"0p')
call submode#map('killcycle', 'n', '', '0', 'u"0p')
call submode#map('killcycle', 'n', '', '1', 'u"1p')
call submode#map('killcycle', 'n', '', '2', 'u"2p')
call submode#map('killcycle', 'n', '', '3', 'u"3p')
call submode#map('killcycle', 'n', '', '4', 'u"4p')
call submode#map('killcycle', 'n', '', '5', 'u"5p')
call submode#map('killcycle', 'n', '', '6', 'u"6p')
call submode#map('killcycle', 'n', '', '7', 'u"7p')
call submode#map('killcycle', 'n', '', '8', 'u"8p')
call submode#map('killcycle', 'n', '', '9', 'u"9p')
call submode#map('killcycle', 'n', '', 'a', 'u"ap')
call submode#map('killcycle', 'n', '', 'b', 'u"bp')
call submode#map('killcycle', 'n', '', 'c', 'u"cp')
call submode#map('killcycle', 'n', '', 'd', 'u"dp')
call submode#map('killcycle', 'n', '', 'e', 'u"ep')
call submode#map('killcycle', 'n', '', 'f', 'u"fp')
call submode#map('killcycle', 'n', '', 'g', 'u"gp')
call submode#map('killcycle', 'n', '', 'h', 'u"hp')
call submode#map('killcycle', 'n', '', 'i', 'u"ip')
call submode#map('killcycle', 'n', '', 'j', 'u"jp')
call submode#map('killcycle', 'n', '', 'k', 'u"kp')
call submode#map('killcycle', 'n', '', 'l', 'u"lp')
call submode#map('killcycle', 'n', '', 'm', 'u"mp')
call submode#map('killcycle', 'n', '', 'n', 'u"np')
call submode#map('killcycle', 'n', '', 'o', 'u"op')
call submode#map('killcycle', 'n', '', 'p', 'u"pp')
call submode#map('killcycle', 'n', '', 'q', 'u"qp')
call submode#map('killcycle', 'n', '', 'r', 'u"rp')
call submode#map('killcycle', 'n', '', 's', 'u"sp')
call submode#map('killcycle', 'n', '', 't', 'u"tp')
call submode#map('killcycle', 'n', '', 'u', 'u"up')
call submode#map('killcycle', 'n', '', 'v', 'u"vp')
call submode#map('killcycle', 'n', '', 'w', 'u"wp')
call submode#map('killcycle', 'n', '', 'x', 'u"xp')
call submode#map('killcycle', 'n', '', 'y', 'u"yp')
call submode#map('killcycle', 'n', '', 'z', 'u"zp')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment