Emacs:使用正则表达式搜索缓冲区并在新缓冲区中显示结果?

时间:2013-02-13 17:06:47

标签: regex emacs

假设我在拥有1000行的emacs中有一个缓冲区,并在该缓冲区中点缀了unicode引用(例如\u8226)。我想将所有这些引用收集到另一个缓冲区中,然后我可以对其进行排序和统一。

在(* nix)命令行上,我可以执行以下操作:

grep -o "\\\\u[0-9]*" tmpfile | sort | uniq

这是否可以直接在emacs中实现,而不将任何缓冲区保存到磁盘?

2 个答案:

答案 0 :(得分:6)

转到您的缓冲区,使用C-x h选择全部,然后执行M-| grep -o "\\\\u[0-9]*" | sort | uniq(运行shell-command-on-region)。输出将转到*Shell Command Output*,除非输出足够长,否则不会显示,但它始终会创建,无论如何都可以切换到它。

还有occurM-s o)。

答案 1 :(得分:6)

M-x occur RET [[:nonascii:]]+ RET
  M-x other-window
  M-x toggle-read-only
  M-x sort-lines