emacs之occur mode笔记

来源:互联网 发布:淘宝店铺代运营方案 编辑:程序博客网 时间:2024/04/19 00:54

occur mode

若只是需要在Emacs所打开的buffer中查询某字段,则occur命令一个对GNU grep的很好的替代.

  • occur命令

    M-x occur会让你输入一个正则表达式,然后在 当前buffer 中进行内容匹配,在Occur Output buffer中显示匹配正则表达式的行,并对匹配部分进行加亮处理.

    M-x multi-occur会让你选择要在哪些buffer中进行内容匹配

    M-x multi-occur-in-matching-buffers会在buffer name符合某正则的buffer中进行内容匹配

    M-x occur-rename-buffer 对默认的*Occur* outputbuffer进行重命名,命名规则为*Occur:匹配的文件名列表,用/分隔*

  • occur-mode的子命令

    • r命令重命名*occur output* buffer

    • g命令重现做一次正则匹配查询

    • M-g M-n / M-g M-p 遍历*occur output* buffer中匹配行的原所在文件位置

    • C-c C-f 开启Next-Error-Follow minor mode

      在开启Next-Error-Follow minor mode后,可用使用M-n和M-p来代替M-g M-n / M-g M-p

    • q命令退出*occur output* buffer

  • 让occur命令作用于某个major mode的所有buffer中

    (eval-when-compile                                                      (require 'cl))                                                      (defun get-buffers-matching-mode (mode)                                 "Returns a list of buffers where their major-mode is equal to MODE"   (let ((buffer-mode-matches '()))                                        (dolist (buf (buffer-list))                                              (with-current-buffer buf                                                 (if (eq mode major-mode)                                                   (add-to-list 'buffer-mode-matches buf))))                      buffer-mode-matches))                                              (defun multi-occur-in-this-mode ()                                      "Show all lines matching REGEXP in buffers with this major mode."     (interactive)                                                         (multi-occur                                                           (get-buffers-matching-mode major-mode)                                (car (occur-read-primary-args))))                                  ;; global key for `multi-occur-in-this-mode' - you should change this.(global-set-key (kbd "C-<f2>") 'multi-occur-in-this-mode)


0 0
原创粉丝点击