C'è un modo per inserire un singolo carattere e quindi uscire dalla modalità di inserimento?


10

Quando sto esaminando il testo e, ad esempio, aggiungendo backtick attorno a determinate parole o virgolette o altro, è irritante dover premere Esc o Ctrl- [dopo ogni inserimento. Gli inserti (e gli allegati) sono diversi, quindi .non aiutano molto.

Esiste qualcosa di simile a rquello che ritorna alla modalità normale dopo un singolo carattere, ma utilizza la modalità di inserimento anziché la modalità di sostituzione?


3
Dovresti forse considerare di usare (o estendere) il plugin vim-surround , per lavorare sul testo in modo più significativo .
VanLaser,

Risposte:


11

In caso contrario (non ho cercato), puoi utilizzare questa mappatura nel tuo .vimrc:

nnoremap <C-I> i <ESC>r

Si iinserisce, posiziona uno spazio, ESCscimmie e inizia una singola lettera replace. Questo viene mappato a CtrlI.

È un trucco e lascerà uno spazio sospeso se colpisci la fuga prima di digitare una lettera, ma è meglio di niente!


1
Non male ... Probabilmente lo userò se nessuno riuscirà a trovare qualcosa di meglio. :)
Wildcard il

2
@Wildcard Non mi rendevo conto di quanto effettivamente mi imbatto in questo caso d'uso senza accorgermene. Bella domanda :) L'ho aggiunto anche al mio vimrc.
Qix - MONICA È STATA MISTREATA il

2
Ho trascorso gran parte della giornata a sistemare un sacco di ribassi. Corsivo, codice incorporato, rientri di intestazione, collegamenti ipertestuali ... tutti inserisce un carattere. :) In realtà la tua soluzione è perfetta; Inizierò ad usarlo ora.
Carattere jolly

2
Svantaggio: non è ripetibile con il .comando. :(
Wildcard

1
@Wildcard purtroppo, dopo aver fatto un po 'di ricerca, non c'è modo di creare un ramo di ripetizione manuale per a .meno che non lo si stia utilizzando repeat.vim.
Qix - MONICA È STATA MISTREATA il

0

Per inserire un carattere alla fine di una parola (anziché nella posizione del cursore), utilizzare

nnoremap <C-a> a <ESC>r

Questo è mappato a Ctrl + a, puoi mapparlo a qualsiasi altra cosa ovviamente.

Ho i due nel mio .vimrcsolo così non trambusto molto :)

" Insert char at cursor position
nnoremap <C-i> i <ESC>r
" Append char after cursor position
nnoremap <C-a> a <ESC>r
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.