Come rientrare automaticamente il codice nell'editor Atom?


393

Come si rientra automaticamente il codice nell'editor Atom? In altri editor, di solito è possibile selezionare un codice e inserirlo automaticamente.

Esiste anche una scorciatoia da tastiera?

Risposte:


664

Ho trovato l'opzione nel menu, in Modifica> Linee> Rientro automatico. Non sembra avere un keymap predefinito associato.

Potresti provare ad aggiungere un mapping dei tasti (Atom> Apri il tuo keymap [su Windows: File> Impostazioni> Keybindings> "il tuo file keymap"]) come questo:

'atom-text-editor':
  'cmd-alt-l': 'editor:auto-indent'

Ha funzionato per me :)


Per Windows:

'atom-text-editor':
  'ctrl-alt-l': 'editor:auto-indent'

1
Grazie! Sarebbe bello se avesse un core: select-all proprio prima, ma nessun indizio su come copiarlo.
doobdargent,

3
@doobdargent Ho creato una domanda con una risposta su come comporre due comandi in un nuovo comando qui: stackoverflow.com/questions/24456995/…
Lee

15
È inoltre possibile cmd + shift + pe cercareEditor: Auto Indent
codingninja

1
Ho trovato un modo per associare prima questo approccio con "Seleziona tutto" (e poi ripristinare la selezione originale dopo), quindi puoi fare tutto in un solo tasto - vedi la mia risposta di seguito. stackoverflow.com/a/33927654/398630
BrainSlugs83

4
Per ubuntu, è [Modifica> Apri la tua mappa dei tasti]. E come ctrl-alt-lè il collegamento predefinito di Ubuntu per la schermata di blocco, sto mappando con ctrl-shift-]per ora.
vusan,

91

La risposta accettata funziona, ma devi fare prima un "Seleziona tutto" - ogni volta - e sono troppo pigro per quello.

E si scopre, non è super banale - ho pensato di postarlo qui nel tentativo di salvare persone affini come i 30 minuti necessari per rintracciare tutto questo. - Nota anche: questo approccio ripristina la selezione originale quando è terminata (e succede così in fretta che non ti accorgi nemmeno che la selezione è mai stata cambiata).

1.) Innanzitutto, aggiungi un comando personalizzato al tuo script init (File-> Apri il tuo script Init, quindi incollalo in fondo):

atom.commands.add 'atom-text-editor', 'custom:reformat', ->
    editor = atom.workspace.getActiveTextEditor();
    oldRanges = editor.getSelectedBufferRanges();
    editor.selectAll();
    atom.commands.dispatch(atom.views.getView(editor), 'editor:auto-indent')
    editor.setSelectedBufferRanges(oldRanges);

2.) Associa "custom: reformat" a una chiave (File-> Apri il tuo Keymap, quindi incollalo in fondo):

'atom-text-editor':
    'ctrl-alt-d': 'custom:reformat'

3.) Riavvia Atom (lo script init.coffee viene eseguito solo quando atom viene avviato per la prima volta).


Interessante. Non sono sicuro che vorrei che rientra automaticamente automaticamente tutto. Il built-in consente di rientrare nella selezione. Si potrebbe obiettare che il rientro corretto è sempre qualcosa che dovrebbe essere avuto.
Zelphir Kaltstahl,

2
@Zelphir Di solito ho un tasto per la selezione del rientro e un altro tasto per il rientro di tutti. - Non uso il rientro tutte le volte, ma è bello averlo quando ne hai bisogno.
BrainSlugs83,

@ BrainSlugs83 Forse un po 'offtopico: ho notato che c'è un problema quando si tenta di indentare automaticamente i linguaggi, che non usano parentesi graffe per contrassegnare blocchi di codice e consentire di definire funzioni o classi all'interno di altri. L'editore non può sapere quale sia il livello in quei casi.
Zelphir Kaltstahl,

2
if oldRanges != null && oldRanges[0].start.column == oldRanges[0].end.column && oldRanges[0].start.row == oldRanges[0].end.rowl'aggiunta di questa condizione editor.selectAll();consentirà comunque di rientrare solo nella selezione. Se non è presente alcuna selezione, indenterà l'intero file.
manish_s

1
Se vuoi avere un singolo passaggio di annullamento per l'intero comando, aggiungi questo dopo aver definito l'editor: checkpoint = editor.createCheckpoint();e questo alla fine:editor.groupChangesSinceCheckpoint(checkpoint);
Dan

43

Il rientro automatico del pacchetto esiste per applicare il rientro automatico all'intero file con queste scorciatoie :

ctrl+ shift+i

o

cmd+ shift+i

URL del pacchetto: https://atom.io/packages/auto-indent


ho bisogno di un aggiornamento, penso - non funziona per me. Utilizzo di chiamate obsolete all'API
Dean_Wilson,

1
Invece ho scaricato e installato manualmente da github.com/griiin/atom-auto-indent e ora sembra funzionare ...
Dean_Wilson,

Nota: per impostazione predefinita utilizza 1 trattino di tabulazione: /
Giullare del re

24

Preferisco usare atom-beautify, CTRL+ ALT+ B(in Linux, può essere anche in Windows) gestisce meglio qualsiasi tipo di formato ed è anche personalizzabile per formato di file.

maggiori dettagli qui: https://atom.io/packages/atom-beautify


Con il ramoscello aggiunge uno spazio per la pathfunzione, quindi il percorso non è stato trovato
Rodolfo Velasco,

Penso che questa sia la soluzione più semplice e pulita. Grazie.
Alessandro,

17

Puoi semplicemente aprire rapidamente la tavolozza dei comandi e farlo lì
Cmd + Shift + pe cercare Editor: Auto Indent:

immagine dello schermo


10
Non è veloce se sei un utente
esperto

5

Questo funziona per me:

'atom-workspace atom-text-editor':
    'ctrl-alt-a': 'editor:auto-indent'

Devi selezionare tutto con ctrl-a prima.



2

Se hai problemi con i tasti di scelta rapida, prova ad aprire Key Binding Resolver Windowcon Cmd + .. Ti mostrerà i tasti che stai premendo in tempo reale.

Ad esempio, Cmd + Shift + 'è in realtàCmd + "


2

Su Linux

(testato in Ununtu KDE)

C'è un'opzione nel menu, sotto Modifica> Linee> Rientro automatico o premi Cmd + Shift + p, cerca Editor: Auto Indentinserendo solo "ai"

Nota: in KDE ctrl-alt-lè già impostato a livello globale per "schermata di blocco", quindi è meglio usarlo ctrl-alt-iinvece.

È possibile aggiungere un mapping dei tasti in Atom:

  • Cmd + Shift + p, cerca "Visualizzazione impostazioni: Mostra combinazioni di tasti"
  • fai clic su "il tuo file keymap"
  • Aggiungi una sezione lì come questa:

     'atom-text-editor':
        'ctrl-alt-i': 'editor:auto-indent'
    

Se il rientro non funziona, può essere un motivo per cui la fine del file non viene riconosciuta da Atom. Aggiungi quindi il supporto per la tua lingua, ad esempio per "Lua" installa il pacchetto "language-lua".

Se un file non è riconosciuto nella tua lingua:

  • apri il ~/.atom/config.csonfile (con CTRL + MAIUSC + p: digita `` open config '')
  • aggiungere / modificare una customFileTypessezione sotto coread esempio come la seguente:

    core:
      customFileTypes:
        "source.lua": [
          "conf"
        ]
        "text.html.php": [
          "thtml"
        ]
    

(Trovi i nomi degli ambiti delle lingue ("source.lua", "text.html.php" ...) nelle impostazioni del pacchetto linguistico, vedi qui )


0

Potresti anche provare ad aggiungere una mappatura dei tasti che seleziona automaticamente tutto il codice nel file e indentalo:

'atom-text-editor':
  'ctrl-alt-l': 'auto-indent:apply'

@IB Prova con 'atom-text-editor': 'ctrl-alt-l': 'editor: auto-indent' Prima di premere il collegamento seleziona tutto il testo nel file.
Hristian Yordanov l'

0

Stavo lavorando su alcuni codici groovy, che non si formattano automaticamente durante il salvataggio. Quello che ho fatto è stato fare clic con il pulsante destro del mouse sul riquadro del codice, quindi scegliere Correzione ESLint. Ciò ha risolto i miei rientri.

inserisci qui la descrizione dell'immagine

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.