2013-10-03 2 views
3

Я пробовал linum и nlinum. Оба имеют ужасную производительность в файлах со 100k + линиями.Emacs линия нумерация производительность

$ for x in {1.100000}; do echo $x; done > 100k.txt 
$ emacs -q 100k.txt 
M-x load-library linum 
M-x linum-mode 
M-> ;; it's not too bad to go to end of file 
M-< ;; now this completely locks up emacs 

Та же операция с редакторами, как joe происходит мгновенно.

Есть ли какие-либо решения, кроме того, чтобы отключать номера строк с большими файлами (точно такие типы файлов, которые вы хотите перемещать по номерам строк?) Я имею в виду локализацию строк ошибок в связанных файлах Javascript)?

Или просто используйте другой редактор?

+0

Номер строки отображается в строке режима. –

+0

Это мгновенно для меня на Emacs 24.3.50.1 – Tyler

+0

@Tyler для меня это не мгновенно, работает 24.3.1 на Ubuntu точный 3.5.0-40-generic и с настройкой по умолчанию (как вы можете видеть, я используя -q). Запуск в окне rxvt. –

ответ

1

Я думаю, вы нашли ошибку, и вы можете сообщить об этом (report-emacs-bug). Согласно комментарию Тайлера, он, возможно, уже был решен.

вещи, которые могут помочь вам в то же время ... line-number-mode, goto-line, narrow-to-region и это дешевки-номер-мои-линии-в-ТМП-буфера трюк:

(shell-command-on-region (point-min) (point-max) 
    (concat "grep -n^" buffer-file-name) 
    (get-buffer-create "*tmp-linum*") nil t) 
2

Насколько я знаете, как linum, так и производные строки nlinum, даже если вы их не видите. В случае линий 100k + это может быть медленным, если нумерация отдельной строки занимает более нескольких десятых миллисекунды. Для меня (Fedora 19, Emacs 24.3.1) нет заметной задержки. Попробуйте line-num.el, который отображает только строки, которые в данный момент видны, и посмотрите, устраняет ли проблема проблему.

Смежные вопросы