Versuchen Sie diese Zuordnung.
:inoremap <F2> <CR><C-R>=repeat(' ',col([line('.')-1,'$'])-col('.'))<CR><C-O>:.retab<CR>
Wenn Sie F2 eingeben (oder welchen Schlüssel Sie für das Mapping wählen), fügt Vim eine neue Zeile ( <CR>
) gefolgt von einer Anzahl Leerzeichen ( <C-R>=repeat(' ',...)
) ein, die der Differenz zwischen der Spaltennummer des Endes der vorherigen Zeile ( col([line('.')-1,'$'])
) und der aktuellen entspricht Spaltennummer ( col('.')
), wird dann in :retab
der aktuellen Zeile ausgeführt, um diese Leerzeichen durch Tabulatoren und / oder Leerzeichen entsprechend Ihrer Einstellung von 'expandtab' zu ersetzen.
Bearbeiten
Diese Zuordnung erfordert, dass Sie sich im Einfügemodus befinden. Ich dachte, Sie würden den Kartenschlüssel eingeben, nachdem Sie Hallo und vor World eingegeben haben. Verwenden Sie diese Zuordnung, um zurückzukehren und die neue Zeile im normalen Modus einzufügen.
nnoremap <F2> i<CR><C-R>=repeat(' ',col([line('.')-1,'$'])-col('.'))<CR><Esc>:.retab<CR>