Heim >Backend-Entwicklung >Python-Tutorial >Best Practices zum Schreiben von Python in Vim

Best Practices zum Schreiben von Python in Vim

高洛峰
高洛峰Original
2017-02-09 10:56:111625Durchsuche

Lass uns zuerst ein Bild posten:

用 Vim 写 Python 的最佳实践

Für einige kleine Python-Projekte ist die Verwendung von vim eine gute Wahl. Der Inhalt dieses Artikels wurde aus meinen Antworten auf Zhihu zusammengestellt. Was ist die beste Vorgehensweise zum Schreiben von Python in Vim? , der folgende Inhalt ist eine Ergänzung zu Zhihus alten Antworten, insbesondere zu einigen, die sich hauptsächlich auf vim8 konzentrieren. Wenn Sie mehr Inhalt wünschen, können Sie sich einige von Zhihus Antworten auf diese Frage ansehen.

Syntaxprüfung

Wenn Sie vim8 verwenden, können Sie die asynchrone Erkennung w0rp/ale anstelle von Syntastic verwenden. Sie müssen Flycheck nicht mehr beneiden und müssen auch nicht wegen der Syntaxprüfung stecken bleiben .

Was die personalisierte Konfiguration von Ale betrifft, ist sie eigentlich etwas „pingelig“. Im Allgemeinen sollte die Verwendung der Standardkonfiguration ausreichen, aber ich mag ausgefallene Dinge, also habe ich es versucht. Die beteiligten Dinge können sehr detailliert sein. Sie können sich direkt die Syntaxprüfung von space-vim ansehen, um die allgemeine Konfiguration zu verstehen. Der Hauptzweck besteht darin, den von ale bereitgestellten Statuszeileninhalt erneut zu extrahieren und anzuzeigen. Liegt kein Syntaxfehler vor, wird dieser nicht in der Statuszeile angezeigt. Liegt eine Warnung oder ein Fehler vor, kann dies durch unterschiedliche Farben unterschieden werden.

用 Vim 写 Python 的最佳实践

Was das Warn- oder Fehlerzeichen an der Seite betrifft, mag ich es sauberer und nutze einfach die Vordergrundfarbe, um es zu unterscheiden. Manchmal sieht es wie Flecken darauf aus. , ich glaube nicht, dass es gut aussieht.

用 Vim 写 Python 的最佳实践

用 Vim 写 Python 的最佳实践

Syntaxverbesserung

Vims integrierte Hervorhebung für Python ist etwas schwach, selbst self wird nicht hervorgehoben me Up, dies kann durch python-mode/python-mode verbessert werden:

    hi pythonSelf            ctermfg=174 guifg=#6094DB cterm=bold gui=bold

Weitere Informationen finden Sie in space-vim hier: Python-Ebene

in Syntax/python of python -mode In .vim können Sie eine detailliertere Hervorhebungsgruppe sehen als in der mit vim gelieferten Syntax/python.vim. Es sollte nicht schwierig sein, jeden Inhalt zu verstehen. Ändern Sie einfach den Hervorhebungsstil entsprechend der Farbtabelle. Dies ist die Terminal-256-Farbvergleichstabelle. 256 Terminal-Farben und ihr 24-Bit-Äquivalent (oder ähnliches). Dies ist die GUI-Farbvergleichstabelle. Vollständiges HTML-True-Color-Diagramm.

Der Vorteil davon besteht darin, dass der gewünschte Effekt vollständig anpassbar ist, es hat jedoch auch Nachteile, da es möglicherweise nicht für alle Vim-Themen geeignet ist. Wenn Sie das Thema wechseln, passen diese an Python angepassten Highlights möglicherweise ein wenig nicht. Selbst wenn wir nur die beliebten Vim-Themen zählen, gibt es wahrscheinlich zweistellige Töne, einige sind warme Töne, einige sind hauptsächlich blau und einige sind hauptsächlich rot. Es dürfte nicht einfach sein, einige vielseitige Farben zu finden. Es kann jedoch sein, dass es nur wenige Themen gibt, die jedem gefallen, also wählen Sie selbst aus ...

Tatsächlich ist der Python-Modus eine Art Meisterwerk, einschließlich vieler Funktionen der Verwendung von vim zum Schreiben von Python, wenn Sie sind interessiert Sie können versuchen, damit „die Welt mit einem Zug zu erobern“. Allerdings gefällt mir im Moment nur dieser Teil.

Codeformatierung

Dies kann über google/yapf erfolgen. Nach der Installation von yapf kann <LocalLeader>= die aktuelle Datei wie folgt formatieren:

autocmd FileType python nnoremap <LocalLeader>= :0,$!yapf<CR>

Autovervollständigung

Das liegt daran, dass ich hauptsächlich vim verwende. Das eigentliche Backend verwendet das bereits erwähnte jedi-vim. Wenn Sie ycmd nicht mögen, können Sie es mit deoplete.nvim versuchen >

importieren, um verschiedene

Importe zu sortieren. Scheint das nicht etwas chaotisch zu sein? Verwenden Sie timothycrosley/isort, um es zu organisieren:

autocmd FileType python nnoremap <LocalLeader>i :!isort %<CR><CR>
Ein-Klick-Bedienung

Dies kann durch skywind3000/asyncrun.vim erweitert werden, ersetzen Sie einfach das vorherige

durch ! In Tatsächlich gibt es noch einige kleine Punkte zu beachten: AsyncRun!

Die Ein-Klick-Bedienung vieler Leute sieht möglicherweise so aus:

...
exec "!g++ % -o %<"
exec "!time ./%<"
...
Sie können das obige

direkt durch ! ersetzen ? Die Antwort ist nein. Wenn Sie den vorherigen Effekt erzielen möchten, sollte es so sein: AsyncRun!

exec "AsyncRun! g++ -stdc++11 % -o %<; time ./%<"
Verwenden Sie Semikolons, um mehrere Befehle zu verknüpfen (Linux) oder &, um mehrere Befehle zu verknüpfen (Windows). , können Sie hier sehen.

Die spezifische und vollständige vim-Konfiguration finden Sie hier: >>> (Wenn Sie denken, dass das Schreiben gut ist, können Sie zu Github gehen und ihm einen Stern geben
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn