Una soluzione minimamente invasiva per i più pigri:
Register 0
contiene sempre l'ultimo yank (come già menzionato Rafael , alex2k8 e idbrii ). Sfortunatamente, selezionare il registro in 0
qualsiasi momento può essere piuttosto fastidioso, quindi sarebbe bello se lo p
utilizzi "0
per impostazione predefinita. Ciò può essere ottenuto inserendo le seguenti righe nel tuo .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
La prima riga mappa ogni p
tratto su "0p
. Tuttavia, ciò impedisce l' p
accesso a qualsiasi altro registro. Pertanto, tutti i p
tratti con un registro selezionato in modo esplicito vengono associati all'espressione della riga di comando equivalente all'interno del for-loop. Lo stesso è fatto per P
.
In questo modo viene preservato il comportamento standard, ad eccezione dell'implicito p
e dei P
tratti, che ora utilizzano il registro0
per impostazione predefinita.
Suggerimento 1: il comando di taglio è ora "0d
anziché solo d
. Ma dato che sono pigro, questo è troppo lungo per me;) Quindi sto usando il seguente mapping:
noremap <LEADER>d "0d
noremap <LEADER>D "0D
La chiave principale è \
di default, quindi puoi tagliare facilmente il testo digitando \d
o \D
.
Suggerimento 2: il timeout predefinito per i mapping multi-chiave è piuttosto breve. Potresti volerlo aumentare per avere più tempo quando selezioni un registro. Vedi :help timeoutlen
per i dettagli, sto usando:
set timeout timeoutlen=3000 ttimeoutlen=100