2010-04-14 17 views
7

Was ich möchte, wenn für Cc Cc py.test ausführen und die Ausgabe in den anderen Puffer anzeigen, wenn der Name der zu bearbeitenden Datei mit test_ beginnt und normalerweise py-execute-buffer ausgeführt wird Andernfalls. Wie würde ich das tun? Ich benutze Emacs 23.1.1 mit Python-Modus und kann über die Kommandozeile auf py.test zugreifen.Running py.test von Emacs

Antwort

7

Dies ist nicht besonders gut getestet; es ist nur eine ungefähre Idee.

(defun py-do-it() 
    (interactive) 
    (if (string-match 
     (rx bos "test_") 
     (file-name-nondirectory (buffer-file-name))) 
     (compile "py.test") 
    (py-execute-buffer))) 

(add-hook 'python-mode-hook 
      (lambda() 
      (local-set-key 
      (kbd "F5")     ;or whatever 
      'py-do-it))) 
+0

Vielen Dank, ich habe es versucht und es funktioniert gut. – Nikwin

+0

Nachdem ich eine Weile mehr damit gearbeitet hatte, entschied ich, dass py.test nur auf dem aktuellen Puffer laufen sollte, also ersetzte ich (compile "py.test") mit (shell-command (concat "py.test" (buffer -Dateiname))) – Nikwin