2017-03-04 2 views
0

Ich benutze Emacs im ESS-Modus. Oft finde ich, dass ich dieselbe Region des Quellcodes oft wiederhole, also muss ich die Region auswählen und dann die Bindung "Region senden" verwenden. Die selbe Region wiederholt auszuwählen, mit der Maus oder der Tastatur, ist der Flaschenhals, den ich gerne ausschneiden würde. Gibt es eine Möglichkeit, die zuletzt gesendete Region erneut zu senden?dieselbe Region an R-Shell in Emacs senden

Antwort

1

ESS wird mit einer Reihe von Eval-Befehlen ausgeliefert, überprüfen Sie ess-inf für alle Optionen. Ich sehe keine für das Zurücksenden einer Region, die über ess-eval-region gesendet wurde, aber es sollte nicht zu schwer sein, diese Funktionalität hinzuzufügen.

Zum Beispiel können Sie die Anfangs-/Endpositionen, die bei einem vorherigen Aufruf von ess-eval-region verwendet wurden, zwischenspeichern, indem Sie diese Funktion anhängen und einige lokale Variablen erstellen. Dann rufen Sie einfach ess-eval-region mit den zwischengespeicherten Werten ab.

;; cache region start and end position when `ess-eval-region' is called 
(defadvice ess-eval-region (before ess-cache-region activate) 
    (setq-local ess--last-region-beg (ad-get-arg 0)) 
    (setq-local ess--last-region-end (ad-get-arg 1))) 

(defun ess-eval-last-region (toggle) 
    "Resend last region sent by `ess-eval-region'" 
    (interactive "P") 
    (when (bound-and-true-p ess--last-region-end) 
    (ess-eval-region ess--last-region-beg 
        ess--last-region-end toggle))) 
Verwandte Themen