hl-line-mode + scroll-step + highlight-круглые скобки -> emacs сходит с ума - PullRequest
1 голос
/ 03 апреля 2012

Вчера я настраивал свой emacs. Сегодня я работал в Emacs, когда неожиданно наткнулся на интересный эффект. После некоторого исследования я выяснил минимальную инициализацию, которая приводит к этому эффекту. Тем не менее эффект не кажется стабильным. Я надеюсь, что вы сможете воспроизвести его.

Сначала оцените следующий код elisp:

(add-to-list 'load-path "~/.emacs.d/")
(require 'highlight-parentheses)
(global-hl-line-mode 1)
(setq scroll-step 1)

Чтобы быть уверенным, что никакое другое расширение не появится на пути, я использую файл с этим кодом в качестве файла инициализации.

Вам также понадобится модуль выделение-скобки , конечно.

Тогда вам понадобится файл, в котором эффект может быть обнаружен. К сожалению, я не смог выяснить точные условия, которые раскрывают эффект. Попробуйте файл README.md с расширением Видимые закладки . Я прошу прощения за загрузку некоторых конкретных файлов, чтобы увидеть эффект, но я не знаю другого пути.

Если вы все еще не напуганы, откройте файл README.md и включите режим выделения скобок:

M-x highlight-parentheses-mode RET

Затем нажмите и удерживайте клавишу со стрелкой вниз. Указатель начнет двигаться построчно. Но когда он покидает строку 45 (которая в данный момент находится внизу экрана), он внезапно возвращается к середине экрана (строка 24). W-что!?

И это происходит каждый раз, когда вы приближаетесь к линии 46, когда она находится прямо под нижним краем экрана. Более того, кажется, что это влияет и на другие расширения (например, визуальные закладки начинают создавать странные вещи, например, портят порядок закладок).

Я новичок в elisp, поэтому вряд ли могу найти ошибку в источнике этих трех режимов. Если это вообще ошибка.

Если это имеет значение, я использую emacs 23.2.1 под Debian squeeze. Извините за мой английский и спасибо за ваше внимание.

1 Ответ

2 голосов
/ 04 апреля 2012

Это должно быть исправлено в Emacs-24, IIUC.Кстати, удалите (add-to-list 'load-path "~/.emacs.d/"), потому что в каталоге .emacs.d есть файлы, чье имя будет конфликтовать.Т.е. если вы хотите поместить пакеты Elisp где-нибудь в ~ / .emacs.d, поместите их в подкаталог.

...