2017-03-04 7 views
0

私はESSモードでemacsを使用しています。しばしば私は自分自身が何度も同じソースコードを実行していることを知っているので、リージョンを選択してから「リージョンを送信」バインディングを使用する必要があります。同じリージョンをマウスやキーボードで繰り返し選択することは、私が切り捨てたいボトルネックです。最後に送信された地域を再送信する方法はありますか?emacsでRシェルと同じ領域を再送

答えて

1

ESSには一連のevalコマンドがバンドルされています。すべてのオプションについてはess-infをチェックしてください。私はess-eval-region経由で送信された地域を再送するものは見当たりませんが、その機能を追加するのは難しいことではありません。

たとえば、以前の呼び出しで使用された開始/終了位置をキャッシュするには、その関数をフックしていくつかのローカル変数を作成することによってess-eval-regionを呼び出します。次に、キャッシュされた値を使用してess-eval-regionを呼び出してください。

;; 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))) 
関連する問題