Minimalne rozwiązanie inwazyjne dla leniwych:
Rejestr 0
zawsze zawiera ostatnie szarpnięcie (jak już wspominali Rafael , alex2k8 i idbrii ). Niestety wybór rejestru przez 0
cały czas może być dość irytujący, więc byłoby miło, gdyby był p
używany "0
domyś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 p
pociągnięcie "0p
. Uniemożliwia to jednak p
dostęp do innych rejestrów. Dlatego wszystkie p
pocią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 p
i P
obrysów, które teraz 0
domyślnie używają rejestru .
Wskazówka 1: Polecenie cięcia jest teraz "0d
zamiast 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 \d
lub \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 timeoutlen
szczegóły, używam:
set timeout timeoutlen=3000 ttimeoutlen=100