Como pesquisar * apenas * a linha atual

8

Estou trabalhando com arquivos de dados grandes e extra grandes que provavelmente deveria estar visualizando no Excel ... mas prefiro ficar no Emacs. Existe uma função elisp para pesquisar (e tipificar) apenas na linha atual?

wdkrnls
fonte
3
Você pode selecionar a linha, restringir a essa região e fazer a pesquisa incremental antiga simples.
precisa saber é o seguinte
@kaushalmodi: Por favor, poste isso como uma resposta (uma boa). Se uma resposta for aceita, a pergunta não aparecerá mais entre os sem resposta. ;-)
Drew
OP: O que você quer dizer com "(e fontificar)"?
Drew
@ Drew: isearch destaca partidas, o que é legal, mas muito lento.
Wdkrnls
1
Lembre-se de que você pode dizer ao Isearch quantas correspondências destacar em um momento: opção lazy-highlight-max-at-a-time. Veja também outras lazy-highlight-*opções. Mas esse destaque pode tratar uma linha inteira de uma só vez; Não sei. Se isso acontecer, e estas opções não ajuda, considerar a apresentação de uma solicitação de melhoria: M-x report-emacs-bug.
Tirou

Respostas:

8

O Isearch é bastante flexível e se você se cansar de restringir constantemente o buffer (como foi sugerido), convém ter um comando dedicado para isso, por exemplo

(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
fonte
10
  • Selecione a linha atual ( C-a C-SPC C-e)
  • Região estreita ( C-x n n)
  • Realize a pesquisa usando qualquer método
  • Volte ao buffer original, ampliando ( C-x n w)
Kaushal Modi
fonte