Comment rechercher * juste * la ligne actuelle

8

Je travaille avec de gros fichiers de données extra-larges que je devrais probablement voir dans Excel ... mais je préfère rester dans Emacs. Existe-t-il une fonction elisp pour rechercher (et faire police) uniquement sur la ligne actuelle?

wdkrnls
la source
3
Vous pouvez sélectionner la ligne, restreindre à cette région et faire la recherche incrémentielle simple et ancienne.
Kaushal Modi
@kaushalmodi: Veuillez poster cela comme une réponse (une bonne). Si une réponse est acceptée, la question n'apparaît plus parmi les personnes sans réponse. ;-)
Drew
OP: Que voulez-vous dire par "(et fontify)"?
attiré le
@Drew: isearch met en évidence les correspondances, ce qui est bien, mais vraiment lent.
wdkrnls
1
Gardez à l'esprit que vous pouvez indiquer à Isearch le nombre de correspondances à mettre en évidence à la fois: option lazy-highlight-max-at-a-time. Voir également d'autres lazy-highlight-*options. Mais cette mise en évidence pourrait traiter une ligne entière à la fois; ne sais pas. Si elle le fait, et ces options ne aident pas, envisager de déposer une demande d'amélioration: M-x report-emacs-bug.
Drew

Réponses:

8

Isearch est assez flexible et si vous en avez assez de rétrécir constamment le tampon (comme cela a été suggéré), vous voudrez peut-être avoir une commande dédiée pour cela, par exemple

(defun isearch-line-forward (&optional regexp-p)
  (interactive "P")
  (let* ((beg (line-beginning-position))
         (end (line-end-position))
         (isearch-message-prefix-add "[Line]")
         (isearch-search-fun-function
          `(lambda ()
             (lambda (string &optional bound noerror)
               (save-restriction
                 (narrow-to-region ,beg ,end)
                 (funcall (isearch-search-fun-default)
                          string bound noerror))))))
    (isearch-forward regexp-p)))
politza
la source
10
  • Sélectionnez la ligne actuelle ( C-a C-SPC C-e)
  • Région étroite ( C-x n n)
  • Effectuer une recherche à l'aide de n'importe quelle méthode
  • Revenez au tampon d'origine en élargissant ( C-x n w)
Kaushal Modi
la source