2011-08-11 10 views
16

szukałem szybki sposób AutoFormat/pretty-print JSON w vim drugi dzień i znaleźliśmy ten wspaniały mały polecenia na stos   overflow: :%!python -m json.toolLista przydatnych komend Pythona dla Vima?

który wysłał mnie na poszukiwanie listę innych narzędzi Pythona aby wydrukować zwykłe pliki internetowe, ale nie mogłem znaleźć wiele. Czy istnieje dobry zasób/lista narzędzi Pythona, które uznają za szczególnie przydatne do czyszczenia słabo sformatowanych treści internetowych w Vimie (np. HTML, XML, JavaScript itp.)?

+0

Bardzo fajne i mam nadzieję, że zobaczę więcej z nich - doskonały sposób na poznanie funkcji. – sa125

+1

To zachęca do dyskusji rozszerzonej, a także do formularza "Używam tego, czego używasz?". [Zobacz najczęściej zadawane pytania, dlaczego to pytanie jest wyłączone] (http://stackoverflow.com/faq#dontask). Może być dobrze zaznaczona flaga wiki społeczności. –

+0

@Merlyn Widzę, co masz na myśli, ale moim zamiarem nie było rozpoczęcie listy postów z poszczególnymi poleceniami, ale znalezienie linku do zasobu lub wiki, które już posiada: na przykład "http: //docs.python .org/cool-pretty-print-goodness.html ". Jestem nowy w Vimie, przełączam się z TextMate, a kiedy znalazłem narzędzie Python JSON, zacząłem go szukać, ale nie mogłem znaleźć odpowiedniego zasobu z więcej. – johnmdonahue

Odpowiedz

5

Python

Są po prostu patrząc na zasób dla Pythona jednej wkładki? Możesz przejrzeć the Python standard library documentation, aby znaleźć więcej inspiracji.

Lub po prostu google "python one-liners json.tool", aby znaleźć dodatkowe zasoby. Na przykład ten Reddit Wypowiedź: Suggestion for a Python blogger: figure out what what all the stdlib main functionality is, and document it

linii poleceń

Vim obsługuje więcej niż tylko Python (np HTML Tidy jak Keith sugerowane). Każde narzędzie, które akceptuje potoki/standardowe wejście, będzie dobrze integrować się z Vimem.

Komenda po prostu wybiera zakres obejmujący cały plik i filtry !, które obejmują zewnętrzny program.

Zobacz :help :% i :help :!

+0

Idealny. Dzięki. Jestem nowy w Vimie i nie grałem w ogóle w Pythonie, więc wciąż próbuję uzyskać moje informacje, ale wygląda na to, że potrzebuję grać z różnymi narzędziami - Python lub w inny sposób - i po prostu znaleźć te, które pasują najlepiej w mój przepływ pracy. Dziękuję za linki, dokładnie tego potrzebuję - po prostu krótki pomysł na pomocne narzędzia. – johnmdonahue

2

Vim ma do tego polecenie, = (równe), podobnie jak w ggvG= ponownie wyświetli cały plik. Wypróbuj :help =, aby uzyskać więcej informacji na temat korzystania z funkcji i programów zewnętrznych za pomocą =. Domyślna konfiguracja używa wewnętrznych reguł wcięć, które działają dla większości typów plików.

+0

= G działało dobrze dla HTML, ale dla Pythona mogłem zobaczyć, że łamie on logikę, łącząc blok z resztą funkcji itd. Wolę trasę autopep8 do tego. – Nishant

5

W przypadku plików XHTML i XML można użyć porządku.

:%!tidy -i -asxhtml -utf8 

:`<,`>!tidy -i -xml -utf8 

Ten ostatni działa przy selekcji wizualnej.

+0

To wygląda obiecująco! Czy są dostępne inne flagi dla polecenia schludnego? na przykład -javascript, -php, -ruby itp? – johnmdonahue

+0

@johnmdonahue: Nazywa się to HTML schludnie (schludnie w skrócie). Dotyczy dokumentów HTML i XML. http://tidy.sourceforge.net/#docs –

+0

@ Keith Right! Mam cię. Nie byłam pewna, czy w przypadku innych gatunków pojawił się również duży posmak/ładny wydruk. Wygląda na to, że po prostu muszę złożyć trochę zestawu narzędzi dla dowolnego języka, z którym muszę pracować. Ciągle dostaję tutaj ziemię Vima. Dzięki za pomoc. – johnmdonahue

0

!autopep8 -i % wydaje się działać prawidłowo w vim. Przełącznik -i ma zastąpić istniejący plik na miejscu. Użyj more @ autopep8 --help.

Istnieje wtyczka vim, jeśli naprawdę myślisz o byciu zaawansowanym użytkownikiem. Poza vim możesz go przetestować pod numerem autopep8 -diff {filename} or autopep8 {filename}.

0

Jest wiele dobrych narzędzi, które może konwertować tekst między tymi dwoma formatami:

  1. par: dla ciężkiej zawijania linii.
  2. pandoc: HTML, LaTeX, RST, i cenowych
  3. autopep8: do analizowania kodu Pythona do w AST i wypluwając go jako pep8 zgodny.

    ...

Vim został zaprojektowany do korzystania z takich narzędzi przez potężne ustawienia formatprg. To domyślnie jest mapowane do operatora gq. Działa dobrze z wnioskami Vima Vim obiektów tekstowych, wyborów itp

Na przykład, używam ustawienie poniżej na moich plików Python

au FileType python setlocal formatprg=autopep8\ --indent-size\ 0\ - 

John MacFarlne ma a good article o tworzeniu specjalistycznego skryptu przy użyciu pandoc które możesz umieścić w swoim vimrc.

Powiązane problemy