Fonte de informação: 1
Para usuários do emacs pro:
- Chame dired para listar arquivos em dir ou chame find-dired se você precisar de todos os subdiretórios.
- Marque os arquivos que você deseja. Você pode marcar por regex digitando 【% m】.
- Digite Q para chamar dired-do-query-replace-regexp.
- Digite seu regex de localização e substitua a string. ☛ pattern padrão de regex elisp comum〕
- Para cada ocorrência, digite y para substituir, n para pular. Digite trl Ctrl + g】 para abortar toda a operação.
- Tipo ! para substituir todas as ocorrências no arquivo atual sem solicitar, N para pular toda a substituição possível pelo restante do arquivo atual. (N é emacs apenas 23)
- Para fazer a substituição em todos os arquivos sem perguntar mais, digite Y. (somente no Emacs 23)
- Ligue para o ibuffer para listar todos os arquivos abertos. Digite 【* u】 para marcar todos os arquivos não salvos, digite S para salvar todos os arquivos marcados, digite D para fechá-los todos.
Guia passo a passo para iniciantes do Emacs
Selecionar arquivos de destino
Inicie o emacs digitando “emacs” no prompt da interface da linha de comandos. (Ou clique duas vezes no ícone Emacs se você estiver em um ambiente de interface gráfica do usuário)
Selecionando arquivos em um diretório
Primeiro, você precisa selecionar os arquivos que deseja fazer a substituição. Use o menu gráfico 〖Arquivo ▸ Abrir diretório〗. O Emacs solicitará um caminho de diretório. Digite o caminho do diretório e pressione Enter.
Agora, você verá a lista de arquivos e agora precisa marcar os arquivos nos quais deseja que a regex encontre / substitua para trabalhar. Você marca um arquivo movendo o cursor para o arquivo desejado e pressione m. Desmarque-o pressionando u. (Para listar subdiretórios, mova o cursor para o diretório e pressione i. O conteúdo do subdiretório será listado na parte inferior.) Para marcar todos os arquivos por uma regex, digite 【% m】 e digite seu padrão de regex. Por exemplo, se você quiser marcar todos os arquivos HTML, digite 【% m】 e .html $. (Você pode encontrar uma lista dos comandos de marcação no menu gráfico “Marca” (este menu aparece quando você está no modo direcionado).)
Selecionando arquivos em um diretório e todos os seus subdiretórios
Se você deseja localizar / substituir arquivos em um diretório, incluindo centenas de subdiretórios, aqui está um método para selecionar todos esses arquivos.
Ligue para a localização. (você chama um comando pressionando 【Alt + x】) Em seguida, digite um nome de diretório, ⁖ / Users / mary / myfiles
Nota: se você estiver usando o emacs em um terminal de texto não gráfico unix, e se 【Alt + x】 não funcionar, o toque equivalente da tecla será 【Esc x】.
O Emacs perguntará com o prompt “Run find (with args):”. Se você precisar fazer a substituição em todos os arquivos HTML, digite -name "* html". Se você não se importa com o tipo de arquivo, mas simplesmente com todos os arquivos nesse diretório, digite "-type f".
Agora, marque os arquivos como descrito acima.
Localizar / substituir interativo
Agora, você está pronto para fazer a busca interativa substituir. Por uma questão de simplicidade, digamos que você queira substituir a palavra "rápido" por "super". Agora, chame dired-do-query-replace-regexp. Ele solicitará a sequência regex e a sequência de substituição. Digite "rápido", digite e depois "super".
Agora, o emacs usará seu padrão e verificará os arquivos, parando e mostrando sempre que uma correspondência ocorrer. Quando isso acontece, o emacs solicitará a você, e você poderá fazer a alteração ou ignorá-la. Para fazer a alteração, digite y. Para pular, digite n. Se você simplesmente deseja que o emacs vá em frente e faça todas essas alterações no arquivo atual, digite!
Se você deseja cancelar toda a operação sem salvar as alterações feitas, digite 【Ctrl + g】 e saia do emacs usando o menu 〖Arquivo ▸ Sair do Emacs〗.
Salvando os arquivos alterados
Agora, depois de passar pela provação acima, há mais uma etapa que você precisa executar, que é salvar os arquivos alterados.
Se você estiver usando o emacs versão 22 ou posterior, chame ibuffer para entrar no modo de listagem de buffer, digite 【* u】 para marcar todos os arquivos não salvos e digite S para salvar todos eles. (isso é turnos)
Se você estiver usando uma versão 21 do emacs, poderá fazer o seguinte: buffers de lista de chamadas, mova o cursor para o arquivo que deseja salvar e digite s. Ele marcará o arquivo para uma ação posterior salva. Digite u para desmarcar. Quando terminar, digite x para executar o salvamento de todos os arquivos marcados para salvar. (no emacs, o arquivo aberto é chamado de "buffer". Desconsidere outras coisas lá.)
Alternativa às opções acima, você também pode chamar save-some-buffers (Ctrl + xs). Em seguida, o emacs exibirá cada arquivo não salvo e perguntará se você deseja que ele seja salvo.
Nota: o regex do emacs não é o mesmo que o Perl ou o Python, mas é semelhante. Para um resumo e padrões comuns, consulte: Emacs Regex.