Tasti Vim, 22 , 18
O <esc>J:h r<cr>lyEZZ<C-v>{@"
Enorme merito a @Udioica per aver trovato una fantastica risposta vim che ho ampliato. Questa risposta non contiene alcun asterisco, nella speranza di vincere la taglia.
Spiegazione:
L'input viene digitato prima del resto del programma. Udioica ha inventato questo fantastico trucco. La digitazione <n>O <esc>creerà una piramide di spazi e una riga vuota, purché tu abbia :set autoindentabilitato. Questa opzione è attiva di default in vim 8 e neovim, sebbene non nelle versioni precedenti di vim. Dal momento che questo crea anche una linea aggiuntiva, usiamo Jper unire questa linea con quella successiva, che effettivamente rimuove la linea sotto di noi.
Ora a questo punto, dobbiamo sostituire tutti questi spazi con asterischi. Se non fossi preoccupato di usare gli asterischi nel mio codice, selezionerei visivamente l'intera cosa <C-v>{e il tipo r*, che sostituisce ogni carattere della selezione con un asterisco. Ma non posso farlo.
Quindi apriamo le pagine di aiuto per :h r. La cosa interessante di questo è che nella finestra di vim, questa pagina viene visualizzata come:
r
r{char} Replace the character under the cursor with {char}.
...
Con il cursore sulla prima 'r'. Tuttavia, il file stesso contiene effettivamente questo testo:
*r*
r{char} Replace the character under the cursor with {char}.
...
Abbastanza conveniente. Quindi spostiamo su un carattere con le strappiamo il testo r*con yE([y] ank alla [E] nd di questa parola).
Per chiudere questo buffer, utilizziamo il collegamento per salvare un file ZZ. Ora, selezioniamo visivamente i nostri spazi ed eseguiamo il testo strappato come se lo avessimo digitato facendo @". Questo funziona perché "@" esegue il seguente registro come tasti di scelta rapida e "è il registro predefinito per lo strappo.