Vim-Format-Python mit formatexpr / prg (gq) liefert ein falsches Ergebnis
Ich habe Probleme mit Pythons Interaktion mit Kommentaren. Diese können in zwei Themen unterteilt werden. Ich gehe davon aus, dass sie verwandt sind, also werde ich beide hier posten.
Fehler 1.
Wenn gqPython-Code automatisch umbrochen wird, führt dies zu einem falschen Ergebnis. Zum Beispiel das gegeben:
# Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod # tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim # veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea # commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
Wenn Sie es auswählen und ausführen, erhalten Sie gq:
# Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod # tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim # veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea # commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
Im Gegensatz dazu führt das Gleiche in YAML oder Coffee-Script aus:
# Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod # tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim # veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea # commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
Man könnte erwarten, dass die Regeln von Python sich an dieselben Prinzipien halten wie Coffee-Script oder YAML oder andere, die #
Zeilenkommentare haben .
Ausgabe 2.
Beim Starten eines Kommentars springt der Cursor an den Anfang der Zeile, wenn er in der aktuellen Tiefe fortgesetzt wird.
Zum Beispiel:
class Hello(object): """Something""" # The comment starts here # or worse def hi(self): # again, here pass
Dies steht im Gegensatz zu dem, was in PEP 8 dargelegt ist : Kommentare blockieren - Ein Kommentar sollte wie folgt eingerückt werden:
class Hello(object): """Something""" # The comment starts here # or worse def hi(self): # again, here pass
die Einstellungen
Ich verwende das fantastische Vundle-Skript und die Plugins, die ich verwende, sind:
Bundle 'gmarik/vundle' " navigation / display Bundle 'kien/ctrlp.vim' Bundle "tpope/vim-fugitive" Bundle "ton/vim-bufsurf" python import sys; sys.path.append("") set rtp +=~/.vim/bundle/powerline/powerline/bindings/vim Bundle 'Lokaltog/powerline' Bundle 'nathanaelkane/vim-indent-guides' Bundle 'altercation/vim-colors-solarized' " syntax Bundle 'jQuery' Bundle 'kchmck/vim-coffee-script' " Bundle 'scrooloose/syntastic' Bundle 'Syntastic' Bundle "groenewege/vim-less" Bundle "skammer/vim-css-color" Bundle "hail2u/vim-css3-syntax" " Editing Bundle 'AndrewRadev/splitjoin.vim' Bundle 'tpope/vim-unimpaired' Bundle 'rstacruz/sparkup.git' Bundle 'klen/python-mode' " Bundle 'sjl/gundo.vim' Bundle 'mbbill/undotree' " file-type based configs filetype plugin indent on
Aus meiner .vimrc
, hier sind die Python-Einstellungen:
let g:syntastic_python_checker = 'pyflakes' let g:syntastic_python_flake8_args = \ '--ignore=W191,E501,E121,E122,E123,E128,E225,W291' let pymode_lint = 0 au FileType python setlocal expandtab shiftwidth=4 tabstop=8 \ formatoptions+=croq softtabstop=4 smartindent \ cinwords=if,elif,else,for,while,try,except,finally,def,class,with let python_highlight_all=1 let python_highlight_exceptions=0 let python_highlight_builtins=0
Zusammenfassung
Da Python etwas älter und reifer ist als YAML und Coffee-Script, bin ich überrascht und frustriert, dass Vim die falschen Ergebnisse liefert. Mir ist nicht klar, was los sein könnte - und ich wäre für alle Gedanken und Anweisungen dankbar. Wenn ich es herausfinde, werde ich natürlich meine Schlussfolgerungen veröffentlichen.
0 Antworten auf die Frage
Verwandte Probleme
-
13
Welche Vim-Funktionen verwenden Sie?
-
8
Mit einem Tastendruck die mit "Leertaste" markierte "Registerkarte" in Vim löschen
-
1
Sie können nicht verstehen, warum ASCII- und HEX-Erkennungen in der Statuszeile von Vim benötigt wer...
-
3
Vim: Wie behandelt man Unicode-Dateien mit Text in mehreren (mehr als zwei) Sprachen?
-
9
Firefox Addons für Vimperator
-
3
Um PWD in Vims Echo zu bestätigen: -Modus für das Dokument
-
1
Gibt es trotzdem vim, dass Sonderzeichen nicht als Wörter gezählt werden?
-
8
Vimperator Kopieren / Einfügen
-
3
Wie kann ich mit Python / AWK / SED ein Inhaltsverzeichnis für ein Markdown-Dokument erstellen?
-
1
So installieren Sie Markdowns Erweiterungen von Python