【问题标题】:Emacs line numbering performanceEmacs 行号性能
【发布时间】:2013-10-03 11:15:47
【问题描述】:

我试过linum 和nlinum。两者在超过 100k 行的文件上都有可怕的性能。

$ 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 文件中定位错误行)之外,还有其他解决方案吗?

或者只是使用不同的编辑器?

【问题讨论】:

  • 行号显示在模式行中。
  • 在 Emacs 24.3.50.1 上这对我来说是即时的
  • @Tyler 这对我来说不是即时的,在 Ubuntu 精确 3.5.0-40-generic 上运行 24.3.1,并加载了默认配置(如您所见,我正在使用 -q) .在 rxvt 窗口中运行。
  • @abo-abo 模式线的视觉间隙太大,无法在光标之间来回扫描
  • @Tyler 我正在使用 Damien Cassou 的 PPA 在 Ubuntu 上获得一个半新的 emacs。您知道我如何无需自己构建即可获得更新的版本吗?

标签: performance emacs line-numbers


【解决方案1】:

据我所知,linum 及其派生的 nlinum 数行,即使您没有看到它们。在 100k+ 行的情况下,如果对单个行进行编号需要超过十分之几毫秒的时间,这可能会很慢。对我来说,(Fedora 19,Emacs 24.3.1),没有明显的延迟。试试line-num.el,它只给当前可见的行编号,看看它是否能解决问题。

【讨论】:

    【解决方案2】:

    我认为您发现了一个错误,您可以报告(report-emacs-bug)它。根据 Tyler 的评论,它可能已经解决了。

    同时可能对您有所帮助的事情...line-number-mode、goto-line、narrow-to-region 和这个cheapo-number-my-lines-in-a-tmp-buffer 技巧:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-16
      • 2011-07-10
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多