Minimalne rozwiązanie inwazyjne dla leniwych:
Rejestr 0zawsze zawiera ostatnie szarpnięcie (jak już wspominali Rafael , alex2k8 i idbrii ). Niestety wybór rejestru przez 0cały czas może być dość irytujący, więc byłoby miło, gdyby był pużywany "0domyślnie. Można to osiągnąć, umieszczając następujące wiersze w swoim .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
Pierwszy wiersz odwzorowuje każde ppociągnięcie "0p. Uniemożliwia to jednak pdostęp do innych rejestrów. Dlatego wszystkie ppociągnięcia z jawnie wybranym rejestrem są odwzorowywane na równoważne wyrażenie wiersza poleceń w pętli for. To samo zrobiono dla P.
W ten sposób zachowane jest standardowe zachowanie, z wyjątkiem niejawnych pi Pobrysów, które teraz 0domyślnie używają rejestru .
Wskazówka 1: Polecenie cięcia jest teraz "0dzamiast po prostu d. Ale ponieważ jestem leniwy, jest to dla mnie zdecydowanie za długo;) Dlatego używam następującego mapowania:
noremap <LEADER>d "0d
noremap <LEADER>D "0D
Klucz wiodący jest \domyślnie, więc możesz łatwo wycinać tekst, wpisując \dlub \D.
Wskazówka 2: Domyślny limit czasu dla mapowań z wieloma klawiszami jest dość krótki. Możesz go zwiększyć, aby mieć więcej czasu przy wyborze rejestru. Zobacz :help timeoutlenszczegóły, używam:
set timeout timeoutlen=3000 ttimeoutlen=100