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