Lass uns zuerst ein Bild posten:
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.
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.
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.
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.
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>
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>
durch !
In Tatsächlich gibt es noch einige kleine Punkte zu beachten: AsyncRun!
... exec "!g++ % -o %<" exec "!time ./%<" ...
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 ./%<"