4

我正在编写一种模式来更轻松地处理我拥有的一些日志文件。前几列都是相同的元数据,我想省略它的显示。隐藏此信息的最佳方法是什么 - 遍历每一行并用“不可见的文本属性”标记每一行的该部分?

这些日志文件将只显示,而不是编辑

4

3 回答 3

2

将此添加到您的.emacs

(add-hook 'text-mode-hook (lambda ()
  (font-lock-add-keywords nil '(("\\[.*\\]" (0 '(face default display "meta") append))) t)
  (push 'display font-lock-extra-managed-props)))

这将显示使用正则表达式匹配的元"\\[.*\\]"数据meta

[01/01/2012 14:00 - Message] Hello World!

会暂时变成

meta Hello World!

只需将正则表达式替换为与您的元数据匹配的正则表达式。

希望这可以帮助!

于 2012-08-28T15:01:59.893 回答
2

我会尝试使用添加“不可见”属性的字体锁定关键字。类似于下面 100% 保证未经测试的代码:

(font-lock-add-keywords nil
  '(("^.............." (0 '(face nil invisible t)))))
于 2012-08-29T01:18:03.410 回答
1

我建议编写一个 elisp 函数,该函数读取日志的每一行并在打印之前丢弃您不想要的信息。

于 2012-08-27T22:38:52.880 回答