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?


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)))

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)
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.