Come posso utilizzare le schede per il rientro in IntelliJ IDEA?


129

Come posso utilizzare le schede anziché più spazi per il rientro in IntelliJ IDEA 11.0?

Ho "Usa carattere tab" selezionato in "Stile codice"> "Generale"> "Opzioni di rientro predefinite". E ha anche provato a controllare le "Schede intelligenti", ma non aiuta.

Dalla documentazione :

Se questa casella di controllo è selezionata, vengono utilizzati i caratteri di tabulazione:

  • Premendo il tasto Tab
  • Per rientro
  • Per la riformattazione del codice

Altrimenti, vengono utilizzati gli spazi anziché le schede.

Risposte:


58

IntelliJ IDEA 15

Solo per il file corrente

Hai le seguenti opzioni:

  1. Ctrl+ Shift+ A> scrivi "tabs"> fai doppio clic su "To Tabs"

    Alle schede

    Se vuoi convertire le schede in spazi, puoi scrivere "spazi", quindi scegliere "A spazi".

  2. Modifica> Converti rientri> In schede

    Per convertire le schede in spazi, puoi scegliere "A spazi" dalla stessa posizione.

Per tutti i file

I percorsi nelle altre risposte sono stati leggermente modificati:

  • File> Impostazioni ...> Editor > Stile codice> Java> Schede e rientri> Usa carattere tab Usa carattere tab
  • File> Altre impostazioni> Impostazioni predefinite ...> Editor > Stile codice> Java> Schede e rientri> Usa carattere tab
  • File> Impostazioni ...> Editor > Stile codice> Rileva e usa rientri di file esistenti per la modifica
  • File> Altre impostazioni> Impostazioni predefinite ...> Editor > Stile codice> Rileva e utilizza rientri di file esistenti per la modifica

Sembra che non importa se si seleziona / deseleziona la casella da Impostazioni ... o da Altre impostazioni> Impostazioni predefinite ... , perché la modifica da una finestra sarà disponibile nell'altra finestra.

Le modifiche precedenti verranno applicate per i nuovi file , ma se si desidera modificare gli spazi in schede in un file esistente , è necessario formattare il file premendo Ctrl+ Alt+ L.


1
Questo è ciò che chiamo una spiegazione! Molte grazie. Sono abituato agli spazi e avevo impostato anche le altre cose, ma mi mancava la riformattazione.
geisterfurz007,

210

File > Impostazioni > Editor > Stile codice > Java > Schede e rientri > Usa carattere tab

Sostituisci l'arma preferita per Java come richiesto.


5
Si noti che se si modifica questo e si sostituiscono anche tutte le schede / spazi in un file, potrebbe essere necessario chiudere e riaprire il file per ottenere il rilevamento corretto dopo le modifiche.
mlissner,

3
Qualche idea sul perché "Usa carattere tab" non sia abilitato per impostazione predefinita?
Ivan Balashov,

2
I caratteri della scheda @IvanBalashov possono causare alcuni problemi di formattazione se visualizzati in altri editor di testo. Inoltre, alcune lingue, come Python, possono rompersi quando si utilizzano le schede anziché gli spazi.
Cache Staheli,

11
e cosa devo fare quando voglio avere le schede come rientro PER TUTTE LE LINGUE ?? dovrei davvero fare clic su 500 lingue diverse e applicarlo individualmente?
phil294,

3
L'ho fatto e IntelliJ sta ancora usando gli spazi (vedi post why-wont-intellij-use-tabs )
doub1ejack

24

Ho iniziato a utilizzare IntelliJ IDEA Community Edition versione 12.1.3 e ho trovato l'impostazione nel seguente posto: -

File > Other Settings > Default Settings > {choose from Code Style dropdown}

4
Non l'avrei trovato senza la tua risposta. Grazie!
MegaMatt

2
Potrebbe essere necessario deselezionare "Rileva rientro file"
lowcrawler

14

Per chiunque non sia in grado di ottenerlo, è necessario deselezionare anche quanto segue

Preferences > Editor > Code Style
[] Enable EditorConfig support
EditorConfig may override the IDE code style settings

My IntelliJ versione 15.0.4


1
Grazie! Mi hai appena salvato la tastiera.
Carl Bergquist,

Avevo 2 spazi come dimensioni della scheda e provavo da molti giorni a risolvere questo problema. Ecco come ho risolto il problema. Grazie mille @visheshd
adi

10

Un'altra opzione utile in IDEA per spegnere o tenere sotto controllo se ne hai davvero bisogno:

Preferences -> Code Style -> Detect and use existing file indents for editing

se il tuo team passerà alla formattazione della scheda con codice esistente scritto con spazi, deseleziona


8

Hai provato .editorconfig ? È possibile creare questo file nella radice del progetto e configurare il rientro per diversi tipi di file. Il tuo codice verrà formattato automaticamente. Ecco l'esempio:

# top-most EditorConfig file
root = true

# matches all files
[*]
indent_style = tab
indent_size = 4

# only json
[*.json]
indent_style = space
indent_size = 2

Questo file sovrascrive qualsiasi altra cosa nelle impostazioni di intellij. È molto importante controllare prima questo file.
Arashsoft,

Avendo provato di tutto - accettato o meno - in questa pagina, questa è l'unica cosa che ha superato la mano pesante degli spazi (Macos, Intellij CE 2018.3.4, file .rs esistente).
cloudsurfin

0

La mia versione di Intellij è la 13.4.1

Intellij IDEA->Perference->Code Style(Project Setting)

0

Per espandere la risposta di @Dmitiri Algazin: le impostazioni per le singole lingue vengono ignorate dall'impostazione generale

Preferences -> Code Style -> Detect and use existing file indents for editing

Pertanto, se ti stai chiedendo perché le tue nuove impostazioni vengono ignorate dopo aver modificato le impostazioni per una lingua specifica, è possibile che questa casella di controllo sia selezionata.

Come nota a margine; la modifica automatica delle impostazioni predefinite crea automaticamente un clone del profilo delle impostazioni (ovvero Default(1)) che presumo sia attivo, in modo che le impostazioni IDE predefinite non vengano mai sovrascritte.

All'inizio è un po 'confuso, in realtà, se modificare le Defaultimpostazioni o Project Settingsavrà qualche effetto sul tuo progetto, dal momento che puoi selezionare Defaultdal menu a discesa e quindi modificare da lì.

Se non vuoi continuare a vedere cloni casuali di Default che popolano i tuoi profili delle impostazioni, modifica direttamente le Impostazioni del progetto.

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.