Минимально инвазивное решение для ленивых:
Регистр 0всегда содержит последний янки (как уже упоминали Рафаэль , 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. То же самое сделано для P.
Таким образом стандартное поведение сохраняется, за исключением неявного pи Pштрихов, которые теперь используют регистр 0по умолчанию.
Подсказка 1: команда cut теперь "0dвместо just d. Но так как я ленив, это слишком долго для меня;) Поэтому я использую следующее отображение:
noremap <LEADER>d "0d
noremap <LEADER>D "0D
Клавиша-лидер \по умолчанию, поэтому вы можете легко вырезать текст, набрав \dили \D.
Подсказка 2: время ожидания по умолчанию для многоключевых сопоставлений довольно короткое. Возможно, вы захотите увеличить его, чтобы иметь больше времени при выборе регистра. Подробности :help timeoutlenсмотрите, я использую:
set timeout timeoutlen=3000 ttimeoutlen=100