Come posso rientrare automaticamente su nuove righe?


15

Lavoro a progetti con vari livelli di rientro. In molti di questi progetti, a causa del modo in cui i file sono tipicamente strutturati, la maggior parte delle righe sono rientrate di almeno due livelli (come i metodi nei file Java).

Ciò significherebbe creare una nuova linea su una linea

public void something () {

Porterei il mio cursore sulla riga successiva, automaticamente rientrato, come

public void something () {
    [cursor]

Mentre posso premere il tasto tab alcune volte su una nuova linea per farlo allineare, c'è un modo migliore per farlo (possibile automaticamente)?

Risposte:


11

Questo può essere fatto usando una combinazione autoindentdell'opzione e del filetypeplugin.

L' autoindentopzione copierà il rientro corrente durante la creazione di una nuova riga. Pertanto, se il livello di rientro corrente è 4 all'avvio della nuova riga, il cursore verrà spostato sullo stesso livello di rientro sulla riga successiva.

Nel tuo ~/.vimrcfile, inseriresti

set autoindent

Puoi anche utilizzare il filetypeplug-in per determinare automaticamente il livello di rientro successivo in base al tipo di file.

Puoi abilitarlo al volo con

:filetype indent on

Oppure, nel tuo ~/.vimrcfile lo inseriresti

filetype plugin indent on

Che determinerà automaticamente il rientro in base al tipo di file.


6

Utilizzare :set cindent( :set cinin breve) o :set smartindent( :set siin breve). Se la linea termina con una parentesi graffa aperta e si colpisce Enter, la riga seguente verrà automaticamente rientrata di un livello aggiuntivo. (Questo è meglio di :set autoindent, che si limita a indentare la riga successiva allo stesso livello.) cindentÈ meglio adattato ai linguaggi di tipo C, mentre smartindentè più versatile per l'uso con altri linguaggi di programmazione.

La quantità e il tipo di rientro è controllata :set shiftwidth=…, :set tabstop=…e :set expandtab.


'smartindent'è deprecato, quindi non è la scelta migliore. È stato sostituito da 'cindent'e 'cinoptions'per linguaggi di tipo C. In generale, tuttavia, il rientro del tipo di file è la strada da percorrere, con 'autoindent'un fallback.
Jamessan,

@jamessan smartindentnon è deprecato, ma cindentvale la pena notare. Ho aggiornato la risposta. (Grazie!)
200_successo

Ti consiglio anche di dare un'occhiata a editorconfig.org . C'è ovviamente un plugin per vim (e molti altri editor) ed è un ottimo modo per mantenere le impostazioni predefinite dell'editor sul tuo VCS
Cyber ​​Oliveira

0

In fondo al file, sto usando:

# vim: ts=2 sw=2 sts=2 sr noet st ai si

Per esempio Dockerfile:

FROM centos-7
RUN ...
CMD ...

# vim: ts=2 sw=2 sts=2 sr noet st ai si

Se si desidera mantenere solo il rientro, utilizzare # vim: st ai si

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.