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
"лучше", но все еще непригодна.
Ответы
Ответ 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))).