Мінімально інвазивне рішення для ледачих:
Реєстрація 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