Hallo zusammen!
Ich habe mal eine Frage an die VIM-Nutzer unter Euch: In Python-Dateien gibt es ja in der Regel eine ganze Reihe von Zeilen, die sich zumindest innerhalb eines Projektes nicht ändern und in allen Dateien zum Einsatz kommen. Ich denke hier an die Shebang, Encoding, Autor- und Lizenzinformationen sowie einige Imports, die man eigentlich immer macht (__future__). Bisher habe ich solche Zeilen in einer separaten Datei definiert und "importiere" sie mittels ':r' . Was mich an dieser Lösung noch mit am meisten stört, ist die dabei entstehende Leerzeile ganz am Anfang der Datei, die ich dann manuell entfernen muß. Das ist zwar schon ein Riesenfortschritt gegenüber der manuellen Eingabe, ist aber doch irgendwo lästig.
Aber VIM wäre nicht VIM wenn es nicht noch eine elegantere Lösung für dieses Problem gäbe. Und da wollte ich mich jetzt mal von Euch inspirieren lassen.
Also: Wie macht Ihr das? Welche Plugins benutzt Ihr ggf.?
Edit: Der Befehl heißt natürlich ':r' , nicht ':\r' . Guten Morgen.
VIM und Standardtextblöcke
Aus dem Wiki.Viele die den Mac OS X-Editor TextMate kennen, werden seine Features für Codeschnippsel fehlen. Vim bot zwar mittels der Abbreviations die Möglichkeit Codeschnippsel einzufügen, snippetsEmu führt dies aber noch viel weiter. Damit ist es möglich Schnippsel mit Platzhaltern zu verwenden und somit möglichst große Stücke Quellcode aus den Schnippseln zu generieren. Im Moment ist die Anzahl der bereits verfügbaren Schnippsel eher klein, aber man kann ohne weiteres eigene Schnippsel selbst definieren.
Ich selbst benutze derartiges aktuell noch nicht, da ich doch recht schnell tippe und außer Shebang eigentlich nichts per se hinzufügen muss. Hat aber auch was mit der Faulheit zu tun.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Steht doch im Wiki, [wiki]Python-Programmieren mit Vim#Snippetsemu[/wiki], man muss es nur lesenPekh hat geschrieben:Aber VIM wäre nicht VIM wenn es nicht noch eine elegantere Lösung für dieses Problem gäbe. Und da wollte ich mich jetzt mal von Euch inspirieren lassen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
wer dafür kein Plugin installieren müssen möchte, kann folgendes auch nach ~/.vim/ftplugin/python.vim schreiben:
Code: Alles auswählen
ia pyhead #!/usr/bin/env python<CR># -*- coding:utf-8 -*-<CR><CR>"""
ia iftrick if __name__ == '__main__':<CR> main()
Ne invoces expellere non possis
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Ich benutze:
D.h. mehr oder weniger das gleiche wie tiax, nur halt in der .vimrc
Code: Alles auswählen
iabbrev _py #!/usr/bin/env python<cr># -*- coding utf-8 -*-<cr>
Vielen Dank für eure Antworten. Von Abbreviations bzw. SnippetsEmu hatte ich zuvor schon gehört / gelesen, sie aber irgendwie nicht als Lösungsansätze für mein Problem wahrgenommen. Es klang für mich irgendwie mehr nach einer Art Codevervollständigung. Da ich eine solche nicht gebrauchen kann habe ich die entsprechenden Fährten nicht weiter verfolgt. Ehrlich gesagt gefällt mir mein bisheriger Ansatz aber besser, was irgendwo aber auch eine gute Erkenntnis ist.
Vielen Dank noch einmal und bis zum nächsten Mal
Vielen Dank noch einmal und bis zum nächsten Mal
Code: Alles auswählen
map <F3> :r ~/docs/python/tmp.py <CR> 1Gdd