Режим Emacs ESS - вкладка для области комментариев

r emacs ess

4546 просмотра

4 ответа

17989 Репутация автора

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

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

# Comment

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

                                # Comment

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

Автор: Christopher DuBois Источник Размещён: 23.04.2009 08:29

Ответы (4)


29 плюса

27085 Репутация автора

Или

(setq ess-fancy-comments nil)

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

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

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

Автор: Jouni K. Seppänen Размещён: 23.04.2009 09:20

58 плюса

22906 Репутация автора

Решение

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

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

Автор: huaiyuan Размещён: 23.04.2009 10:51

2 плюса

1040 Репутация автора

Ответ Джуни не помог мне. Но я нашел здесь подход: 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)
Автор: Rob Donnelly Размещён: 19.10.2017 05:00

0 плюса

353 Репутация автора

Установка ess-indent-with-fancy-commentsв nil приведет к удалению странного одиночного #отступа, но он должен быть установлен как буфер-локально на крючок (как в ответе Роба), OR перед загрузкой 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, вы должны обязательно установить его до того, как будут определены стили.

Автор: jackkamm Размещён: 24.11.2018 01:53
Вопросы из категории :
32x32