O cursor para uma correspondência, editar, o cursor para a próxima correspondência, editar - como em um diretório?

2

Blecaute algorítmico:

  1. problema: encontre os arquivos que correspondem a
  2. problema: empilhar / armazenar em buffer as correspondências
  3. mova o cursor para o próximo arquivo da pilha e, assim, para o local da correspondência
  4. repita o passo 2

Coisas que usei anteriormente para resolver o problema.

Vi / m: (o abaixo funciona em um servidor ubuntu, talvez configurado pelo sysadmin, mas não consegue fazê-lo funcionar localmente)

:grep -r "[^|]*|[^|]*|[^|]*|.*" * 
<edit something>
:cn
<edit something>
:cn
<damn forgot it>
:bn
<forward and so on>

emacs: M-x grep Enter e, em seguida, ter grep -r "[^|]*|[^|]*|[^|]*|.*" * , mas agora em mistério. Como você pode fazer as rápidas edições hierárquicas?

shellesque: uma vez eu criei um one-liner selvagem com alguns grep-xargs-algo-coisas-vi, mas estou começando a cheirar a reinventar a roda.

Me desculpe pela justaposição do vim / emacs, mas eu não me importo com qual ferramenta você usa, use o mais conveniente (xargs / emacs / vi / m apenas exemplos).

    
por jimmij 16.03.2011 / 02:05

1 resposta

1

Mx grep no Emacs, então eu posso usar as chaves habituais para seguir os links representando as correspondências encontradas, e também as chaves usuais de uso geral do Emacs para alternar entre buffers de um lado para o outro (ou para qualquer coisa que eu queira).

Também é possível aprender as teclas especializadas para pular para a próxima partida.

A chave "especializada" para pular imediatamente para a próxima correspondência encontrada é bem fácil de lembrar: é Mg n ( g o para n ext) (ou Cx ') para next-error . next-error é um comando mais genérico que apenas para grep ; da ajuda (por Ch kk Mg n ):

[It] normally uses the most recently started compilation, grep, or occur buffer.

(Na verdade, primeiro eu aprendi isso para a "compilação" do LaTeX.)

Mais dos comandos gerais "vá para" ligados a chaves no meu Emacs (conforme M-g C-h ):

Global Bindings Starting With M-g:
key             binding
---             -------

M-g ESC      Prefix Command
M-g g        goto-line
M-g n        next-error
M-g p        previous-error

M-g M-g      goto-line
M-g M-n      next-error
M-g M-p      previous-error
    
por 16.03.2011 / 03:08