К сожалению ess-smart-underscore
не будет работать в режиме ошибок.
Простой ответ будет:
(define-key ess-bugs-mode-map [f8] (lambda() (interactive) (insert " <- ")))
это просто связывает f8 для вставки <-
.
Чтобы добиться того же поведения в ошибках, что и в ess, добавьте в ваш .emacs следующее:
(define-key ess-bugs-mode-map (kbd "_") 'bugs-smart-underscore)
(defun bugs-smart-underscore ()
(interactive)
(let ((assign-len (length ess-S-assign)))
(if (and
(>= (point) (+ assign-len (point-min))) ;check that we can move back
(save-excursion
(backward-char assign-len)
(looking-at ess-S-assign)))
;; If we are currently looking at ess-S-assign, replace it with _
(progn
(delete-backward-char assign-len)
(insert "_"))
(delete-horizontal-space)
(insert ess-S-assign))))
Теперь, нажав _ один раз, вы получите <-
, дважды - _
.