VIM: Python-Source-Code falten
Verfasst: Montag 28. August 2006, 11:58
Hallo,
ich verwende meistens VIM (derzeit Version 7.0) als Editor für meine Python-Programme und würde da auch gerne Textfaltungen verwenden.
Bisher habe ich allerdings nichts wirklich brauchbares gefunden ...
"python_fold.vim" ist zwar ganz nett, aber die Anwendung ist mir etwas zu kompliziert.
Eine Suche brachte mich zum Vim Tip #741, was schon eher dem entspricht, was ich suche ... also hab ich den Tip in die Vim-Syntax-Datei für Python integriert:
Zuerst hab ich die Datei "python.vim" in mein "syntax"-Ordner kopiert ($HOME/.vim/syntax).
Danach hab ich diese Datei an folgenden Stellen geändert:
ersetzt durch
Diesen "if"-Block
hab ich um eine Zeile
ergänzt. Und nach dem "if"-Block von "python_highlight_space_errors" hab ich noch diesen
hinzugefügt.
Soweit funktioniert alles so wie ich es haben will ... bis auf eine Kleinigkeit:
Dekoratoren gehören eigentlich mit zur Funktions-Definistion ... und werden leider nicht mit gefaltet ...
Weiss da jemand, wie ich das mit einbauen kann ?
ich verwende meistens VIM (derzeit Version 7.0) als Editor für meine Python-Programme und würde da auch gerne Textfaltungen verwenden.
Bisher habe ich allerdings nichts wirklich brauchbares gefunden ...
"python_fold.vim" ist zwar ganz nett, aber die Anwendung ist mir etwas zu kompliziert.
Eine Suche brachte mich zum Vim Tip #741, was schon eher dem entspricht, was ich suche ... also hab ich den Tip in die Vim-Syntax-Datei für Python integriert:
Zuerst hab ich die Datei "python.vim" in mein "syntax"-Ordner kopiert ($HOME/.vim/syntax).
Danach hab ich diese Datei an folgenden Stellen geändert:
Code: Alles auswählen
syn keyword pythonStatement def class nextgroup=pythonFunction skipwhite
Code: Alles auswählen
"syn keyword pythonStatement def class nextgroup=pythonFunction skipwhite
syn match pythonStatement /\<def\>/ nextgroup=pythonFunction skipwhite
syn match pythonStatement /\<class\>/ nextgroup=pythonFunction skipwhite
Code: Alles auswählen
if exists("python_highlight_all")
let python_highlight_numbers = 1
let python_highlight_builtins = 1
let python_highlight_exceptions = 1
let python_highlight_space_errors = 1
endif
Code: Alles auswählen
let python_enable_folds = 1
Code: Alles auswählen
if exists("python_enable_folds")
syntax region pythonFold start="^\z(\s*\)\%(class\|def\)" end="^\%(\n*\z1\s\)\@!" transparent fold
set foldmethod=syntax
endif
Soweit funktioniert alles so wie ich es haben will ... bis auf eine Kleinigkeit:
Dekoratoren gehören eigentlich mit zur Funktions-Definistion ... und werden leider nicht mit gefaltet ...
Weiss da jemand, wie ich das mit einbauen kann ?