Emacs Org-Mode: отключение номеров строк - PullRequest
23 голосов
/ 08 марта 2011

Я недавно перешел с 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 , упомянутый на странице выглядит многообещающе, я неt (пока) знаю (E) Lisp, поэтому я не могу изменить его так, как мне нужно).

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

Ответы [ 6 ]

10 голосов
/ 08 марта 2011

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

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

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

8 голосов
/ 06 мая 2011

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

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

5 голосов
/ 24 апреля 2014

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

5 голосов
/ 13 мая 2012

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

3 голосов
/ 24 апреля 2015

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

2 голосов
/ 09 марта 2011

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

(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)

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

...