【问题标题】:Printing long lines in scratch buffer在暂存缓冲区中打印长行
【发布时间】:2019-09-10 22:09:01
【问题描述】:

当评估暂存缓冲区中的长列表时,例如。 load-historyC-u 0C-j (查看整个输出),emacs 基本上冻结了试图处理长行输出。

有没有办法强制将打印输出截断为设定的列宽,以便 emacs 可以轻松处理?

【问题讨论】:

  • 如果您不尝试进行漂亮打印,您会看到同样的结果吗?例如,如果你只是做C-h v load-history?你有visual-line-mode turned on吗? (如果是这样,请尝试将其关闭。)
  • @Drew visual-line-mode 已关闭,C-j 是默认的 eval-print-last-sexp,它的打印效果不佳。我只看到带有长行的 emacs 默认值(emacs -Q)(标题应该是长行而不是长字符串) - 长行的 emacs 处理通常非常慢。你说得对,C-h v 速度很快,因为它确实使用漂亮的打印,所以没有长行。
  • 也许你应该报告这个? M-x report-emacs-bug

标签: string performance emacs read-eval-print-loop


【解决方案1】:

使用 M-x pp-eval-last-sexp 更友好、更快速地漂亮地打印值格式。如果您希望原始缓冲区中的结果,请使用前缀参数;否则它会输出到一个单独的缓冲区。

有趣的是,对我来说,这比使用 C-hv 快得多。后者也可以漂亮地打印该值,但它似乎需要与eval-print-last-sexp 类似的时间来显示它,这表明在重新格式化缓冲区内容之前它可能会受到相同的缓慢来源?

【讨论】:

  • 谢谢,是的,格式要好得多。他们基本上都做同样的事情,C-h v 只是运行了更多的代码。我希望有一个可以截断长行的通用设置,但我认为它不存在。
猜你喜欢
  • 2019-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多