[R-br] ESS do emacs indentando o código - desabilitar

Marcelo Laia marcelolaia em gmail.com
Terça Fevereiro 10 20:08:47 BRST 2015


Uso o Emacs com ESS para rodar meus scripts. No entanto, a partir de
uma atualização do sistema (tive que instalar o Debian do zero), ele
passou a indentar tudo.

Algo do tipo:

xyplot(Morte ~ log10(Dose)|Isolado, data = data01)

Se eu clicar no final da linha acima e der enter, acontece o seguinte:

               xyplot(Morte ~ log10(Dose)|Isolado, data = data01)
               [local do cursos]

Ele indenta a linha 14 colunas a frente e o curso vai para logo abaixo
da primeira letra da linha.

Já inseri os códigos abaixo no meu ~/emacs.d/init.el e nada de resolver.

(setq-default indent-tabs-mode nil)
(setq auto-indent-assign-indent-level-variables nil)
(setq standard-indent 2)

(which-func-mode)
(add-to-list 'which-func-modes 'ess-mode)

(setq-default mode-line-format
 '("L%l C%c %b"
   global-mode-string " (" mode-name minor-mode-alist "%n)" 
   (which-func-mode (" " which-func-format ""))))

(add-hook 'ess-mode-hook 
          (lambda () 
            (local-set-key (kbd "RET") 'newline)))
  (setq ess-ask-for-ess-directory nil)
  (setq ess-local-process-name "R")
  (setq ansi-color-for-comint-mode 'filter)
  (setq comint-prompt-read-only t)
  (setq comint-scroll-to-bottom-on-input t)
  (setq comint-scroll-to-bottom-on-output t)
  (setq comint-move-point-for-output t)

  (defun my-ess-start-R ()
    (interactive)
    (if (not (member "*R*" (mapcar (function buffer-name)
(buffer-list))))
      (progn
        (delete-other-windows)
        (setq w1 (selected-window))
        (setq w1name (buffer-name))
        (setq w2 (split-window w1))
        (R)
        (set-window-buffer w2 "*R*")
        (set-window-buffer w1 w1name))))

  (defun my-ess-eval ()
    (interactive)
    (my-ess-start-R)
    (if (and transient-mark-mode mark-active)
        (call-interactively 'ess-eval-region)
      (call-interactively 'ess-eval-line-and-step)))

  (add-hook 'ess-mode-hook
            '(lambda()
               (local-set-key [(shift return)] 'my-ess-eval)))

  (add-hook 'inferior-ess-mode-hook
            '(lambda()
               (local-set-key [C-up] 'comint-previous-input)
               (local-set-key [C-down] 'comint-next-input)))
  (require 'ess-site)


  (add-hook 'ess-mode-hook
            '(lambda ()
               (outline-minor-mode)
               (setq outline-regexp "\\(^#\\{4,5\\}
\\)\\|\\(^[a-zA-Z0-9_\.]+ ?<- ?function(.*{\\)")
               (defun outline-level
                 (lambda () (interactive) (cond ((looking-at "^##### ")
1)((looking-at "^#### ") 2)((looking-at "^[a-zA-Z0-9_\.]+ ?<-
?function(.*{") 3) (t 1000)))
               )))

Alguma luz?

-- 
Marcelo


Mais detalhes sobre a lista de discussão R-br