Seite 1 von 1

vim

Verfasst: Mittwoch 17. Januar 2007, 09:50
von gorba
Hi

Ich benutze nun vim schon sehr lange, allerdings biser nur um c zu programmieren.

Nun habe ich mich ein wenig in python eingearbeitet, und wollte mir das mal anschauen. Zu meinen Fragen:

- kann im python scripts in vim in einer neuen shell ausführen oder geht das nur im gleichen fenster
- gibt es für python was, dass so sexy ist wie den ex befehl :make? Damit "vim" das ganze kompiliert (den compiler aufruft) der dann (falls welche auftauchen) direkt zum fehler hüpft?

Verfasst: Mittwoch 17. Januar 2007, 10:18
von birkenfeld
Wo willst du in Python kompilieren?

(Gut, du kannst .py zu .pyc kompilieren, aber dabei findest du nur Syntaxfehler.)

Verfasst: Mittwoch 17. Januar 2007, 11:28
von mawe
Hi!

Ich hab gerade in meiner .vimrc folgendes gefunden (Alzheimer lässt grüssen. Kann mich nicht erinnern das mal dort reingeschrieben zu haben. Verwende es natürlich auch nie :) Oh Mann ...):

Code: Alles auswählen

" save code, run python, show output in preview windo
function! Python_eval_vsplit() range
  let src = tempname()
  let dst = tempname()
  execute ": " . a:firstline . "," . a:lastline . "w " . src
  execute ":silent ! python " . src . " > " . dst . " 2>&1 "
  execute ":pclose!"
  execute ":redraw!"
  execute ":vsplit"
  execute "normal \<C-W>l"
  execute ":e! " . dst
  execute ":set pvw"
  execute "normal \<C-W>h"
endfunction

vmap <silent> <F7> :call Python_eval_vsplit()<cr>
nmap <silent> <F7> mzggVG<F7>`z
imap <silent> <F7> <ESC><F7>a
map  <silent> <S-F7> <C-W>l:bw<cr>
imap <silent> <S-F7> <ESC><S-F7>a
Ich muss sagen, dass ich beim Programmieren, egal in welcher Sprache, immer mit 2 bzw. 3 Fensterchen arbeite. Eines für vim, eines zum Kompilieren bzw. ausführen, eines für den interaktiven Modus (wenn die Sprache sowas hat).

Gruß, mawe

Verfasst: Mittwoch 17. Januar 2007, 14:32
von Leonidas
Ich beantworte zwar im Moment keine Fragen dazu, aber wenn mir was einfällt, schreib ich auf [wiki]Python-Programmieren mit Vim[/wiki] etwas dazu. Dort ist auf jeden Fall schon mal der [F5]-Befehl, der aber natürlich nicht besonders kompliziert ist. Aber was anderes brauche ich in der Regel nicht.

Verfasst: Mittwoch 17. Januar 2007, 14:54
von rafael
Ich verwende meistens das ein wenig umständlichere

Code: Alles auswählen

:! python /pfad/zum/skript.py

Verfasst: Mittwoch 17. Januar 2007, 15:20
von gorba
nun ja...
ich werde wohl auch auf :pyf file verzeichten und das ganze in ner neuen shell ausführen, da vim so oder so nicht an die entsprechende fehlerstelle springt

evt. warte ich bis mal wer etwas für python in viom implementiert das :make nahekommt =) *faul*

geht ja auch mit 2 shells, nur hasse ichs immer 100 fenster offen zu haben

Verfasst: Mittwoch 17. Januar 2007, 15:58
von mawe
gorba hat geschrieben:evt. warte ich bis mal wer etwas für python in viom implementiert das :make nahekommt
Nur für den Fall dass du dir das Snippet von mir nicht genau angesehen hast:
Wenn du F7 drückst, splittet vim das Fenster auf, ins neue kommt die Ausgabe des Scripts dass gerade im Buffer ist, oder eine Fehlermeldung. Ich finde das ist ein halbwegs brauchbarer make-Ersatz.

Verfasst: Donnerstag 18. Januar 2007, 09:20
von gorba
Jo hab ich mir angeschaut. Denke auch das dies eine gute Notlösung ist!
Warum hast du das ganze nicht auf F12 gemappt? =) die taste wär noch frei

Verfasst: Donnerstag 18. Januar 2007, 14:24
von Leonidas
gorba hat geschrieben:Warum hast du das ganze nicht auf F12 gemappt? =) die taste wär noch frei
Das anzupassen sollte nun wirklich eine Kleinigkeit sein :roll:

Verfasst: Sonntag 21. Januar 2007, 11:32
von mitsuhiko
gorba hat geschrieben:Jo hab ich mir angeschaut. Denke auch das dies eine gute Notlösung ist!
Warum hast du das ganze nicht auf F12 gemappt? =) die taste wär noch frei
Nicht bei mir. F12 ist Eject ;)

Verfasst: Sonntag 21. Januar 2007, 14:47
von Joghurt
blackbird hat geschrieben:Nicht bei mir. F12 ist Eject ;)
Programmierst du wirklich so entsetzlichen Code, dass du einen Schleudersitz brauchst? :-P

Verfasst: Sonntag 21. Januar 2007, 15:07
von mitsuhiko
Joghurt hat geschrieben:
blackbird hat geschrieben:Nicht bei mir. F12 ist Eject ;)
Programmierst du wirklich so entsetzlichen Code, dass du einen Schleudersitz brauchst? :-P
Zu warty Zeiten konnte man eingelegte CDs nicht auswerfen wenn sie gemounted waren. Deswegen hab ich F12 zu umount und eject gemappt. So nach dem MacOS X Vorbild ;) Und jetzt bin ichs schon gewohnt und nutz das nach wie vor.

Verfasst: Mittwoch 24. Januar 2007, 14:23
von gorba
haha nice =)
Jo hab mir neulich K darauf gemappt. Also manpage für das Wort unter dem cursor. Allerdings bin ich mir bewusst geworden, dass ich nicht schneller bin mit F12 anstatt von K. Evt. im insert mode aber ansonsten...

=)