Skrótem, który zadziałał dla mnie (zarówno pamięć mięśniowa, jak i intuicyjność) jest mapowanie __
(co jest podwójnym _
) do „wstaw na początku bieżącej linii”.
Racjonalne uzasadnienie:
_
już idzie na początek linii
- w vim, podwajanie czegokolwiek jest bardzo powszechnym sposobem robienia tego „do tej linii”
- double
_
nie koliduje z żadnymi ruchami (jesteś już na początku linii)
- Twoja ręka jest już we właściwym miejscu, jeśli poszedłeś na początek linii i teraz chcesz wstawić.
vimscript:
"insert at start of current line by typing in __ (two underscores)
function DoubleUnderscore()
if v:count == 0 && getcurpos()[2] == 1
:silent call feedkeys('I', 'n')
else
:silent call feedkeys('^', v:count + 'n')
endif
endfunction
nnoremap <silent> _ :call DoubleUnderscore()<CR>
Jest to tak skomplikowane, ponieważ łatwa alternatywa nnoremap __ _I
powoduje, że vim opóźnia naciśnięcie, _
aby odróżnić od _
i __
.