Подтвердить что ты не робот

Emacs Org-Mode: выключение номеров строк

Недавно я перешел от vim в Emacs, потому что я хочу использовать org-mode. Я открыл файл ~ 10000, файл 50 КБ в Emacs23 org-mode и продолжил добавлять около 10 заголовков первого уровня. Производительность на четырехъядерном процессоре с 3 ГБ оперативной памяти в Emacs23 под Ubuntu 10.04/32bit была настолько медленной, что была непригодной для использования. Я нашел два темы в списке сообщений org-mode, в котором обсуждалось это. Кажется, что включение linum приводит к низкой производительности. Я могу жить без номеров строк в файлах .org, если это необходимо, но я не хочу отключать номера строк для всех файлов, которые я редактирую. Если я собираюсь "жить" в "Emacs", мне нужны номера строк для всех других файлов.

Как отключить linum только для некоторых или всех файлов .org? Можно ли это сделать, если у меня есть несколько файлов, открытых в Emacs и переключаться между ними? Я нашел некоторое обсуждение об отключении номеров строк для основных режимов здесь, но я ничего не смог реализовать (хотя linum-off.el script упомянутый на странице выглядит многообещающим, я еще не знаю (E) Lisp, поэтому я не могу его изменить, как я необходимо).

Я обновил org-mode от версии 6.21b, который пришел с Emacs23 до версии 7.5, но это не имело никакого значения. Производительность в графическом интерфейсе Emacs настолько плоха, что приложение вообще не отвечает. Производительность с -nw "лучше", но все еще непригодна.

4b9b3361

Ответ 1

linum-off.el, упомянутый в моем quesiton, решил это. Инструкции находятся в файле: поместите файл в путь загрузки Emacs и добавьте (require 'linum-off) в ~/.emacs. Этот script отключает нумерацию строк только для указанных режимов. Я тестировал его, и он отлично работает.

Ответ 2

Попробуйте добавить это в ваш .emacs:

(defun nolinum ()
  (global-linum-mode 0)
)
(add-hook 'org-mode-hook 'nolinum)

Это предполагает, что вы используете linum, а не что-то другое для номера строк. В любом случае, вы можете добавить этот крючок в орг-режим, чтобы отключить все, что могло бы замедлить работу только в том случае, если вы используете org-mode.

Отказ от ответственности: у меня нет linum, поэтому я не могу проверить это, но он должен работать.

Ответ 3

Если вы введете M-x customize, перейдите в Linum в группе Convenience, измените Linum Eager на off или измените Linum Delay на on, это значительно улучшит производительность.

На моем ноутбуке (3 ГБ оперативной памяти, двухъядерном процессоре) недостаток производительности (от этого и с отключением линии) незаметен, однако на моем нетбуке все еще могут быть некоторые незначительные проблемы с производительностью с файлом размером ~ 3000 строк 130 КБ (~ 50 -150 мс задержка при пейджинге).

Ответ 4

Используйте nlinum, гораздо более быструю альтернативу.

Ответ 5

Я пробовал следующее, которое получилось довольно неплохо:

(defun nolinum ()
  (interactive)
  (message "Deactivated linum mode")
  (global-linum-mode 0)
  (linum-mode 0)
)

(global-set-key (kbd "<f6>") 'nolinum)

(add-hook 'org-mode-hook 'nolinum)

Конечно, вам не нужна привязка клавиш. Я предлагаю вам оставить его для тестирования и отключить его, если все будет хорошо.

Ответ 6

Вам нужно добавить (add-hook 'org-mode-hook (lambda() (linum-mode 0))).