Emacs ESS Mode - вкладка для области комментариев - PullRequest
48 голосов
/ 23 апреля 2009

Я использую режим Emacs-Speaks-Statistics (ESS) для Emacs. При редактировании кода R любые строки комментариев (начинающиеся с #) автоматически переходят в крайнее правое положение, когда я создаю новую строку над ним. Как мне изменить мой файл .emacs.el, чтобы это исправить?

Например, у меня есть:

# Comment

Теперь, поместив курсор в начало строки и нажав Enter, я получаю:

                                # Comment

Спасибо за любые подсказки.

Ответы [ 4 ]

62 голосов
/ 23 апреля 2009

Используйте '###', если вы не хотите оставлять комментарии. Согласно инструкции ,

По умолчанию комментарии начинаются с ‘###’ выровнены по началу линия. Комментарии начинаются с "##" выровнены к текущему уровню отступ для блока, содержащего комментарий. Наконец, комментарии начиная с «#», выровнены по столбец справа (40-й столбец по умолчанию, но это значение контролируется переменной столбец комментария) или сразу после выражение в строке, содержащей комментарий, если он выходит за рамки колонка отступа.

31 голосов
/ 23 апреля 2009

Или

(setq ess-fancy-comments nil)

, если вы никогда не хотите делать отступ для одного- # комментариев или

(add-hook 'ess-mode-hook 
          (lambda () 
            (local-set-key (kbd "RET") 'newline)))

если вы хотите изменить поведение Enter, чтобы оно не отступало.

2 голосов
/ 24 ноября 2018

Установка ess-indent-with-fancy-comments в ноль удалит странный одиночный - # отступ, но он должен быть установлен либо локально в буфере в хуке (как в ответе Роба), ИЛИ до загрузки ESS:

(setq ess-indent-with-fancy-comments nil)
(require 'ess)

Другие способы убедиться, что он установлен перед загрузкой ESS, это установить его в M-x configure или установить в разделе :init в use-package.

То, что происходит, заключается в том, что ESS определяет стили при инициализации в ess-style-alist, а затем применяет стиль по умолчанию в каждом буфере. Поэтому, чтобы убедиться, что эти стили соответствуют ess-indent-with-fancy-comment, вы должны обязательно установить его до определения стилей.

2 голосов
/ 19 октября 2017

Ответ Джуни не сработал для меня. Но я нашел подход, который делает: https://stat.ethz.ch/pipermail/ess-help/2016-May/010970.html

   (defun my-ess-settings ()
     (setq ess-indent-with-fancy-comments nil))
   (add-hook 'ess-mode-hook #'my-ess-settings)
...