Taglia gli spazi finali in Xcode


Risposte:


22

Puoi creare uno script e associarlo a una scorciatoia da tastiera:

  • Seleziona Menu Script> Modifica script utente ...
  • Premi il pulsante + e seleziona Nuovo script shell
  • Dagli un nome come "Strip Trailing Spaces" e dagli una scorciatoia come ⌃⇧R.
  • Imposta Input su "Selezione" e Output su "Sostituisci selezione"

Quindi inserisci il seguente script:

#!/usr/bin/perl

while (<>) {
    s/\s+$//;
    print "$_\n";
}

9
Ah, sì, così semplice ... Grazie. C'è un modo per associarlo al salvataggio del file?
Alexander Gladysh

Per lavorare su un intero file (che è probabilmente quello che vorresti fare), imposta Input su "Intero documento" e Output su "Sostituisci contenuto documento". Tuttavia, questo lascia il cursore nella parte inferiore del file.
SMBiggs

7
Questa risposta è obsoleta a partire da Xcode 4.4. Vedi la risposta di Martin Stolz.
Basil Bourque

239

A partire da Xcode 4.4 gli spazi bianchi verranno tagliati automaticamente per impostazione predefinita, a meno che la linea non sia tutta spazi bianchi. Puoi anche attivare Including whitespace-only linesper risolvere questo problema, che non è attivo per impostazione predefinita.

Vai a Xcode > Preferences > Text Editing > While editing

Screenshot delle preferenze di Xcode


15
Questa impostazione taglia solo lo spazio bianco finale di una riga dopo che il cursore ha lasciato quella riga. Quindi, ti consente ancora di salvare un file con una riga di spazio vuoto finale, se il cursore si trova su quella riga al momento del salvataggio.
ma11hew28

7
Perché diavolo non è questo il valore predefinito? Se hai un file esistente con spazi vuoti finali, seleziona tutto, taglia, salva, incolla, salva.
friederbluemle

Questo deve sovrascrivere la soluzione di script hacker su questa risposta.
Urda

7
L'uso di questo + ctrl-isu tutti i file esistenti si prende cura degli spazi
vuoti

24

Sto utilizzando il plug-in Xcode di Google Toolbox per Mac , aggiunge un parametro "Correggi spazi bianchi al salvataggio" che taglia gli spazi vuoti finali al salvataggio. Mi è mancato molto da emacs.


1
Sto usando anche questo plugin. Fa quello che dice.
Nathan

Sarebbe perfetto, sfortunatamente non funziona su Xcode 4 al momento :(
deepwell

6
Ora abbiamo un supporto di base per Xcode 4. Vedere il nostro nuovo plugin
dmaclach

1
Dove posso trovare il parametro "Correggi spazi bianchi al salvataggio"?
jhasse

Alla fine sono riuscito a far funzionare GTM su Xcode 4.3.2, ma le istruzioni di installazione dal wiki di GTM sembravano non essere valide. Invece di inserire il .xcplugin ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins(secondo le istruzioni di Google) ho dovuto inserirlo /Applications/Xcode.app/Contents/PlugInse riavviare Xcode.
Kristofer Sommestad

3

Per Xcode 8, ho installato il plug-in swimat Xcode, per la formattazione del codice Swift, che ha rimosso tutti gli spazi finali e le linee di soli spazi bianchi.

Metodi di installazione

  1. Installa tramite homebrew-cask:

    brew cask install swimat
  2. Scarica direttamente l'app:
    https://github.com/Jintin/Swimat/releases/download/v1.3.5/Swimat.zip

  3. Clona extensionramo e archivia su app Mac.

Utilizzo

Una volta installato, puoi eseguire Swimat in Xcode tramite Editor -> Swimat -> Format.


questo strumento non rimuove le righe vuote.
Mehdico

1

Questo non è possibile in Xcode 3.2

Modificare:

Ho risposto a questa domanda così brevemente perché non c'è modo di farlo correttamente .

Ovviamente, poiché è un software, puoi fare qualsiasi cosa: a partire da hack di Input Manager o altri modi di iniezione di codice nell'intercettazione della tastiera a livello di sistema, puoi modificare il tuo sistema locale per fare qualsiasi cosa in qualsiasi momento. È possibile impostare un'azione della cartella Applescript (arrgh) o utilizzare un demone di lancio e la funzione FSEvents per guardare i file del codice sorgente.

Puoi anche aggiungere un paio di script a Xcode (script utente nel menu, fasi di script nei target, azioni personalizzate nell'organizzatore, c'è anche la possibilità molto sconosciuta uno script di avvio), ma tutte queste soluzioni sono difettose, poiché coinvolge il configurazione utente o personalizzata sulla macchina dell'utente.

Non sono a conoscenza di una soluzione che funzioni semplicemente dopo aver verificato un progetto da SCM. Credo che sia necessario questo e altri script di personalizzazione simili, quindi ho segnalato un bug (radar 7203835, "Funzionalità: più trigger di script utente nel flusso di lavoro Xcode"). Non ho ancora ricevuto alcun feedback.

Ecco il testo completo della voce radar:

Sarebbe utile avere più posti per eseguire gli script in Xcode.

Esempi:

  1. Script di
    pre-compilazione Gli script di pre-compilazione possono essere utilizzati per creare prerequisiti come file * .xcconfig o intestazioni config.h. Ciò non è possibile con "Esegui fasi di creazione dello script", poiché il rilevamento delle dipendenze viene eseguito prima che venga attivata qualsiasi fase di creazione.

  2. Script di post compilazione
    Simile al precedente, ma in esecuzione al termine della compilazione (inclusa la firma del codice, ecc.). Utile per imballaggi aggiuntivi, controllo di validità ecc.

  3. Script di commit pre / post SCM.
    Per verificare l'integrità del progetto.

  4. Script di salvataggio file pre / post.
    Per controllare / modificare un file prima del salvataggio. Ad esempio, esegui abbellimenti cody

  5. Azioni di progetto personalizzate.
    Sono consapevole della capacità dell'organizzatore di definire azioni arbitrarie. Ma questa è una funzionalità per utente (non fa parte del progetto). Vorrei definire azioni come build o clean che vengono visualizzate nel menu build e che fanno parte di un progetto.


Modificato per rispondere al motivo per cui le soluzioni alternative non sono soddisfacenti in questo caso
Nikolai Ruhe,

2
Grazie. Sebbene io sia favorevole a farlo nel modo corretto, mi accontenterei di qualsiasi hack non troppo invadente. Quegli spazi bianchi extra sono davvero fastidiosi.
Alexander Gladysh


0

Il modo migliore e più semplice senza usare script, hack e molto altro. Vai a Trova e sostituisci Il modo migliore e facile senza usare script, hack e molto altro. Basta andare su Trova e sostituisci e premere "alt / opzione + spazio" e premere il pulsante "spazio" nella barra di sostituzione e quindi fare clic su sostituisci tutto. Sostituirà gli spazi bianchi con spazi normali e l'avviso / errore scomparirà !!


1
Questo rimuove solo gli spazi finali come richiesto nella domanda?
Blastfurnace
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.