Мінімально інвазивне рішення для ледачих:
Реєстрація 0завжди містить останній yank (як вже згадували Rafael , alex2k8 та idbrii ). На жаль, вибір реєстру 0весь час може бути дуже дратівливим, тому було б непогано, якщо pвикористовується "0за замовчуванням. Цього можна досягти, помістивши у ваш ряд наступні рядки .vimrc:
noremap p "0p
noremap P "0P
for s:i in ['"','*','+','-','.',':','%','/','=','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
execute 'noremap "'.s:i.'p "'.s:i.'p'
execute 'noremap "'.s:i.'P "'.s:i.'P'
endfor
Перший рядок відображає кожен pштрих до "0p. Однак це не дозволяє pотримати доступ до будь-яких інших регістрів. Тому всі pштрихи з явно вибраним регістром відображаються в еквівалентний вираз командного рядка в циклі for-loop. Те ж саме робиться і для P.
Таким чином зберігається стандартна поведінка, за винятком неявних pта Pштрихів, які тепер використовують регістр 0за замовчуванням.
Підказка 1: команда вирізання тепер "0dзамість просто d. Але оскільки я лінивий, це для мене занадто довго;) Тому я використовую таке відображення:
noremap <LEADER>d "0d
noremap <LEADER>D "0D
Клавіша лідера \за замовчуванням, тому ви можете легко вирізати текст, набравши \dабо \D.
Підказка 2: Час очікування для відображення кількох клавіш за замовчуванням досить короткий. Ви можете збільшити його, щоб мати більше часу під час вибору реєстру. Детальніше :help timeoutlenдив. Я використовую:
set timeout timeoutlen=3000 ttimeoutlen=100