在高锁比赛之间跳跃

时间:2016-03-25 04:11:15

标签: regex emacs

假设我已启用global-hi-lock-mode,并且在html页面的顶部,我有以下hi-lock指令,由先前的M-s h w命令生成

<!-- Hi-lock: (("{{[[:alnum:].]+}}" (0 (quote hi-green) prepend)))
     Hi-lock: (("ng-\\w+" (0 (quote hi-blue) prepend)))
   -->
<div>
  <div> ng-model="Cntrl"</div>
  {{Cntrl.thing}}
</div> 

所以,当我在缓冲区中访问文件时,我有两个正则表达式突出显示为蓝色和绿色(示例中为ng-model{{Cntrl.thing}}。有没有办法在突出显示之间轻松跳转匹配?

1 个答案:

答案 0 :(得分:1)

这个功能能做你想做的吗?它会跳转到下一个当前突出显示的模式(如果在点之后没有出现,则跳转到缓冲区的末尾)。

(defun my/hl-forward ()
  (interactive)
  (goto-char
   (apply
    #'min
    (mapcar
     (lambda (pattern)
       (save-excursion
         (re-search-forward (car pattern) nil 'noerror)
         (point)))
     hi-lock-file-patterns))))

向后对应应该很容易适应:只需向后搜索(re-search-backward)并取max而不是min位置。