Estou tentando substituir um personagem - digamos ;
- por uma nova linha usando replace-string
e / ou replace-regexp
no Emacs.
Eu tentei os seguintes comandos:
M-x
replace-string
RET;
RET\n
Isso irá substituir
;
com 2 personagens:\n
.M-x
replace-regex
RET;
RET\n
Isso resulta no seguinte erro (mostrado no minibuffer):
Uso inválido de `\ 'no texto de substituição.
O que há de errado em usar replace-string
para esta tarefa? Existe alguma outra maneira de fazer isso?
Obrigado.
quote-insert
que cita o próximo caractere.C-j
é um0x0a
código de controle literal , versus oRet
qual é a chave ao lado de sua cotação e a envia0x0d
. en.wikipedia.org/wiki/C0_and_C1_control_codesC-j
no emacs , enquantoC-m
no vim .Encontrei quatro maneiras de colocar uma nova linha no minibuffer.
C-o
C-q C-j
C-q
12
(12 é o valor octal da nova linha)C-x opara a janela principal, mate uma nova linha com e C-k, em seguida, C-x ovolte ao minibuffer, puxe-a comC-y
fonte
C-o
! Um toque de tecla a menos em comparação comC-q C-j
. Não tinha pensado em usá-lo antes.C-o
não move o ponto depois de inserir a nova linha no minibuffer, portanto, você ainda precisará pressionar a tecla de seta para a direita se quiser inserir algo após a nova linha na sequência de substituição.C-o
digite uma nova linha na janela principal ao usar a pesquisa, enquantoC-q C-j
digitará a nova linha no minibuffer.C-o
funciona com consulta - substitua embora.Não esqueça que você sempre pode recortar e colar no minibuffer.
Assim, você pode simplesmente copiar um caractere de nova linha (ou qualquer string) do seu buffer e puxá-lo quando for solicitado o texto de substituição.
fonte
Mais explicitamente:
Para substituir o caractere de ponto e vírgula (;) por uma nova linha, siga estas etapas exatas.
Um pouco mais do que a explicação original diz.
fonte
Mudar para o modo de texto
Destaque o bloco para recuar
Recuar
Volte para qualquer modo ..
fonte
inline just:
C-M-S-%
(se as chaves de ligação ainda estiverem padrão) quereplace-string
^Jfonte