Eu tenho o código abaixo:
Hello
There
I am some code
E deseja adicionar código à sua frente, como:
I said Hello
I said There
I said I am some code
Então, como eu adicionaria um prefixo a cada linha?
text-editing
editing
Luke
fonte
fonte
M-x string-insert-rectangle
. É muito semelhante, masstring-insert-rectangle
insere no início de cada linha da seleção, enquantostring-rectangle
substitui ; portanto, com o último, você precisa ser mais preciso sobre sua seleção, se não deseja substituir nada.Você pode usar o modo de cursores múltiplos para colocar um cursor em cada linha. Em seguida, qualquer texto digitado será inserido em cada linha.
Você começaria com o ponto no início do trecho de código:
Então bata C->duas vezes. (Essa é a associação de teclas sugerida; você deve configurá-la por conta própria.) Isso cria dois cursores extras nas duas linhas a seguir:
Então digite
I said
. O texto será adicionado em cada linha:Por fim, pressione RETpara sair do modo de múltiplos cursores e deixar o ponto no último cursor:
Aqui está um vídeo que mostra como funciona.
fonte
Pessoalmente, prefiro
replace-regexp
(substitua "^" por "eu disse").fonte
Outra opção é usar macros, que podem lidar com mais tarefas do que seleções retangulares ou vários cursores, mesmo que seja um pouco mais complicado para esse caso específico.
Posicione o cursor no início da primeira linha e pressione F3para iniciar a gravação, insira o texto, mova o cursor para o início da próxima linha e pressione F4para parar a gravação. Agora pressione F4novamente para repetir a macro, C-2 F4repetir duas vezes ou C-0 F4repetir até que seja encontrado um erro (como ficar sem linhas).
fonte
Você pode instalar o mal e fazê-lo de várias maneiras semelhantes ao vi - prefiro a seleção visual de blocos usando Ctrl+ Vpara marcar cada linha e depois Shift+ Ipara inserir e digite o texto que deseja inserir e, finalmente, pressione ESCpara sair do modo de inserção e o texto será anexado a cada linha. Isso é muito parecido com as seleções de retângulo do emacs, mas com poucas teclas.
fonte
Isso é muito semelhante à resposta de artagnon, mas
replace-regexp
não está vinculado a nenhuma chave.Então, na verdade, eu uso o
query-replace-regexp
que é vinculado por padrãoC-M-%
e, em seguida, substituo^
pelo prefixo fornecidoI said
e digito!
para substituir todos sem solicitar mais.fonte
Se você
cua-mode
ativou, então:I said
como texto a ser inseridoPrefiro a
cua-mode
maneira de trabalhar, em comparação com o retângulo padrão do Emacs, onde o equivalente seria:I said
RET inserir textoEle
cua-mode
salva duas teclas pressionadas em comparação com o retângulo Emacs padrão.Mas para mim, a vantagem adicional do modo cua é que eu posso anexar texto ao retângulo (eu pessoalmente não sei como anexar texto com o retângulo Emacs padrão). Com o modo cua, é RETpressionado apenas uma tecla, inserido antes do
I said
.fonte