Wie formatiere ich den Code automatisch von der Kommandozeile aus?

2124
Clay

Nehmen wir an, ich habe ein JavaScript in someRandomFile.js und möchte einen Befehl ausführen wie:

formatMyCode someRandomFile.js 

Dann wird in der Datei alles auf eine nette Art eingerückt.

Ich möchte auch PHP oder HTML formatieren. In VIM können Sie etwas Text hervorheben und = drücken. Das Format wird automatisch formatiert (auch wenn HTML / PHP / JavaScript gemischt ist). Gibt es eine einfache Möglichkeit, dies zu tun?

6
Sie können [`astyle`] (http://astyle.sourceforge.net/) (sudo apt-get install astyle) ausprobieren, aber vielleicht ist es besser, etwas IDE zu verwenden Hastur vor 8 Jahren 1

2 Antworten auf die Frage

5
Hastur

Wenn Sie vim mögen , können Sie die Aktion über die Befehlszeile aufrufen .

echo -e "G=gg\n:wq\n" | vim ./myfile.php 

Wenn Sie den obigen Befehl warnen, wird Ihre Datei ohne Aufforderung geändert . Machen Sie vorher ein Backup.
Es ist möglich, Beispiele zu finden, die integriert sind find, um die gleiche Arbeit an einer Reihe von Dateien durchzuführen [ 0 ] .

Wenn Sie über den Tellerrand schauen, können Sie eine Vielzahl von Hilfsprogrammen dafür finden, und diese Zahl wird mit der Zeit weiter wachsen. Sie können im Internet nach aktualisierten Versionen suchen und zum Beispiel von hier aus starten:

  • Künstlerischer Stil [ 1 ], astylefür C, C ++, C ++ / CLI, Objective-C, C # und Java-Programmiersprachen.
  • tidy [ 2 ] für Html
  • IDE-Lösungen, die von der Befehlszeile aus gestartet werden kate [ 3 ], für die ein soeben erstelltes Plug-In vorhanden ist; Sie können auch Ihre eigenen Einrückungsskripte erstellen [ 4 ] . Fahren Sie mit UniversalIndentGUI [ 5 ], eclipse [ 5 ] fort ...
Ich hoffte insgeheim, dass jemand ein vim Beispiel geben würde! Danke dir Clay vor 8 Jahren 0
Bitte. Nur ein Vorschlag, beim nächsten Mal direkt danach fragen, es kann noch schneller gehen! (Im Allgemeinen sollten Sie Probleme vermeiden, die denen von [xy one] (http://xyproblem.info/) ähneln. Dies kann Ihr und das Leben des anderen vereinfachen ;-)) Hastur vor 8 Jahren 0
1
wisbucky
vim -c "execute 'normal! =G' | :wq! out.js" input.js 

Sie können +anstelle von auch die alternative Syntax verwenden -c. Es ist das gleiche.

vim +"execute 'normal! =G' | :wq! out.js" input.js 
  1. Es führt den normalen Befehl aus =G, der =jede Zeile bis zum Ende der Datei ( G) autoformat / indent ( ).

  2. Dann :wq! out.jsschreibt es in eine Datei und beendet vim. Wenn Sie nur dieselbe Datei überschreiben möchten, entfernen Sie die out.js.

Außerdem müssen Sie diese Zeile in Ihrer ~/.vimrcListe haben, damit das Plugin für das automatische Einzug von Formaten funktioniert:

filetype plugin indent on