A volte lo smartindent di vim non seleziona il livello corretto di indentazione per la riga successiva una volta premuto Invio e vorresti tornare al livello di rientro della riga precedente e passare da lì. So che puoi raggiungere lo ctrl-d
un paio di volte per ottenere questo risultato, ma sarebbe più utile per una chiave che va immediatamente al livello di indentazione della riga sopra.Come tornare al livello di rientro precedente in modalità di inserimento?
risposta
Se non si può essere preso la briga di installare un plug-in per un compito così semplice (non ho potuto), provate questo semplice mappatura:
:inoremap <C-D> <Esc>:call setline(".",substitute(getline(line(".")),'^\s*',matchstr(getline(line(".")-1),'^\s*'),''))<CR>I
Ora CtrlD in modalità di inserimento sarà fai l'atto: indentare la linea corrente come nella riga precedente.
Questo funziona meglio prima di iniziare a digitare sulla nuova riga, perché ripristinerà il cursore appena oltre il rientro.
Grazie, questa è la risposta più diretta e più semplice. In realtà sono andato con il plugin che Ingo ha pubblicato comunque. – rgrinberg
In modalità normale è possibile utilizzare <
e >
per aumentare o ridurre il rientro. Funzionano come previsto con i movimenti, selezione visiva e >>
<<
per la riga corrente. Puoi anche usare =
per scegliere il livello di indentazione "corretto", di nuovo funziona come previsto per i movimenti ecc.
Quindi quello che faccio di solito è correggere gli errori di indentazione in modalità normale dopo che ho finito di modificare, da un combinazione del blocco che seleziona e utilizza =
e quindi fissa le singole righe con <<
e >>
.
È possibile utilizzare <C-O>=G
per rientrare dal cursore alla fine del file in modalità di inserimento. Oppure <C-O><<
per rimuovere un livello di indentazione.
Ctrl + d e ctrl + t sono più facili da usare quando ci si trova in modalità di inserimento. – jbr
Non so se è pura coincidenza, ma Alexey Radev ha appena pubblicato lo prev_indent plugin, che fornisce una mappatura in modalità inserimento e il comando :PrevIndent
per spostare la riga corrente al livello di rientro precedente.
funziona come un fascino, grazie – mko
- 1. come tornare al punto di modifica precedente
- 2. Come far tornare Vim dalla modalità di inserimento alla modalità normale al termine di un comando?
- 3. Come tornare al punto precedente in VIM
- 4. programmazione tornare al frammento precedente nella backstack
- 5. Scala modalità di rientro in Emacs
- 6. Ionico come tornare a livello di programmazione
- 7. Android: impedendo di tornare all'attività precedente
- 8. Come tornare rapidamente alla directory di lavoro precedente in bash?
- 9. ClearCase: come posso tornare alla baseline precedente?
- 10. Differenza tra la modalità di inserimento e inserimento in Vim
- 11. Vim: rientro intelligente quando si accede alla modalità di inserimento su una riga vuota?
- 12. Inserimento del rientro per le colonne in Vim
- 13. Vim CursorLine cambiamento di colore in modalità di inserimento
- 14. Come chiudere l'attività e tornare alla precedente attività in Android
- 15. Come tornare al commit precedente senza perdere l'ultimo commit in Git?
- 16. Codeigniter Controller tornare alla pagina precedente
- 17. Naviga Torna al controller di visualizzazione precedente
- 18. Utilizzando git flow, come potrei tornare a una versione precedente?
- 19. Come tornare al preludio> in ghci
- 20. Come modificare la larghezza del rientro in emacs modalità
- 21. Come controllare il rientro dopo una parentesi aperta in Emacs
- 22. Come modificare il rientro in modalità testo per emacs
- 23. come tornare al frammento precedente premendo manualmente il pulsante indietro del singolo frammento?
- 24. Posso tornare in funzione nulla?
- 25. SourceTree - Non so come tornare a un commit precedente
- 26. come posso tornare alla pagina precedente nel ramoscello?
- 27. inserimento di blocchi di testo in haml
- 28. Mantenere livello di rientro per il incluso Twig subtemplate
- 29. vim: annulla newline in modalità inserimento?
- 30. modalità di inserimento vi nella riga di comando Matlab?
Dovresti rilasciare 'smartindent', probabilmente c'è un migliore' indentexpr' di default per il tuo tipo di file. – romainl
In realtà non utilizzo smartindent e utilizzo le regole di indentazione del plugin del tipo di file come suggerito. Tuttavia, non sono completamente accurati ... – rgrinberg