Как интегрировать что-нибудь в режиме isearch - PullRequest
0 голосов
/ 05 мая 2011

Мне очень нравится anything.el.Интерфейс ничего удивительный.

Я также очень часто использую isearch, и он обеспечивает привязку клавиш Ms o для вызова occur с использованием входной строки isearch.Но собственный режим возникновения не достаточно мощный.

В occur-mode вы не можете снова отфильтровать результат.И функция прыжка тоже является базовой.

Я считаю anything-occur более мощным, чем occur, вы можете отфильтровать результат, прыгнуть на позицию в любом стиле.

а есть проблема, как интегрировать anything-occur?Моя последняя попытка:

(defun occur-in-isearch ()
  (interactive)
  (let ((case-fold-search isearch-case-fold-search))
    (occur (if isearch-regexp isearch-string (regexp-quote isearch-string)))))

Я заменяю occur на anything-occur, но это бесполезно.anything-occur - определение без параметров.Я не могу передать строку поиска в anything-occur.

Как мне интегрировать anything-occur?Или есть лучший способ использовать anything-occur в пределах isearch-mode?

Ответы [ 2 ]

1 голос
/ 01 июня 2011

Я не пользователь ничего, но этот код делает 99% того, что вы хотите.Единственное предостережение в том, что начальная строка ввода не обновляется должным образом при вводе backspace .Я не знаю, почему это так.Все остальное работает, кажется, работает как ожидалось.

(eval-after-load "isearch"
  '(define-key isearch-mode-map (kbd "M-s o") 'isearch-anything-occur))

(defun isearch-anything-occur (regexp &optional nlines)
  "isearch anything occur"
  (interactive
   ;; from isearch-occur
   (list
    (cond
     (isearch-word (concat "\\b" (replace-regexp-in-string
                                  "\\W+" "\\W+"
                                  (replace-regexp-in-string
                                   "^\\W+\\|\\W+$" "" isearch-string)
                                  nil t)
                           "\\b"))
     (isearch-regexp isearch-string)
     (t (regexp-quote isearch-string)))
    (if current-prefix-arg (prefix-numeric-value current-prefix-arg))))
  ;; from occur-anything
  (let ((anything-compile-source-functions
         ;; rule out anything-match-plugin because the input is one regexp.
         (delq 'anything-compile-source--match-plugin
               (copy-sequence anything-compile-source-functions))))
    (anything :sources 'anything-c-source-occur
              :input regexp
              :buffer "*Anything Occur*")))
0 голосов
/ 20 августа 2011

Очень похоже -

В Сосульки , во время Isearch хит S-TAB. Нажмите RET, чтобы принять тот же шаблон поиска, или сначала отредактируйте его, а затем нажмите RET.

Открывается Сосульки поиск со всеми совпадениями в качестве контекстов поиска. Чтобы сузить / отфильтровать эти контексты с помощью дополнительного шаблона, просто введите больше текста.

Для постепенной фильтрации по нескольким рисункам нажмите M-SPC между рисунками. Переключайтесь между матчами, используя C-down (и т. Д.), Или завершайте любой из них, или нажимайте C-mouse-2 на любом из них в *Completions.

http://www.emacswiki.org/emacs/Icicles_-_Isearch_Enhancements#IciclesSearchFromIsearch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...