2016-03-25 4 views
1

сказать, что я позволил global-hi-lock-mode и в верхней части HTML-странице, у меня есть следующий привет-стопорное директиву, в результате предыдущей 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}} в примере. Есть ли способ легко прыгать между подсвеченными совпадениями?

+0

Как насчет? 're-search-forward' и/или' re-search-backward' - у вас уже есть 'regexp'. , , Тип: 'M-x описать-функцию RET re-search-forward RET' и' M-x описать-функцию RET re-search-backward RET' для получения дополнительной информации об указанных функциях. – lawlist

+0

, чтобы уточнить, вы после чего-то вроде hl-find-patterns, но специфичны для каждого шаблона, то есть прыгаете на следующий «зеленый» узор или переходите к следующему «синему» шаблону? –

+0

Я быстро взглянул на привет-замок и подумал, что вы можете лаять неправильный тройник. Режим Hi-lock отлично подходит для подсветки на основе шаблона, но он не предназначен для помощи в навигации. Хотя можно было бы расширить его, чтобы делать то, что вы хотите, я думаю, что это будет больше работы, чем того стоит. Вместо этого взгляните на некоторые из других пакетов, которые предназначены для облегчения перехода на новые места курсора. Что лучше всего для вас будет зависеть от того, как вы настраиваете вещи, но я бы посмотрел на гидру и туз-прыжок, чтобы начать. Даунсайд должен поддерживать ваше регулярное выражение в двух местах. –

ответ

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 позиции.

Смежные вопросы