web-dev-qa-db-fra.com

Comment remplacer un personnage par une nouvelle ligne dans Emacs?

J'essaie de remplacer un personnage - disons ; - avec une nouvelle ligne utilisant replace-string et/ou replace-regexp à Emacs.

J'ai essayé les commandes suivantes:

  • M-x replace-string RET ; RET \n

    Cela remplacera ; avec 2 caractères: \n.

  • M-x replace-regex RET ; RET \n

    Cela entraîne l'erreur suivante (affichée dans le mini-tampon):

    Utilisation non valide de "\" dans le texte de remplacement.

Quel est le problème avec l'utilisation de replace-string pour cette tâche? Y a-t-il un autre moyen de le faire?

Merci.

261
Lei

M-x replace-string RET ; RETC-q C-j.

  • C-q pour quoted-insert,

  • C-j est une nouvelle ligne.

À votre santé!

394
Jonathan Arkell

J'ai trouvé quatre manières de mettre une nouvelle ligne dans le mini-tampon.

  1. C-o

  2. C-q C-j

  3. C-q 12 _ (12 est la valeur octale de newline)

  4. C-x o dans la fenêtre principale, tuez une nouvelle ligne avec C-k, puis C-x o retournez au mini-tampon, tirez dessus avec C-y

65
slipmthgoose

N'oubliez pas que vous pouvez toujours couper et coller dans le mini-tampon.

Vous pouvez donc simplement copier un caractère de nouvelle ligne (ou n’importe quelle chaîne) à partir de votre mémoire tampon, puis tirez-le à la demande du texte de remplacement.

23
Bloat

Plus explicitement:

Pour remplacer le caractère point-virgule (;) par une nouvelle ligne, procédez comme suit.

  1. localisez le curseur en haut à gauche du tampon contenant le texte que vous souhaitez modifier
  2. Tapez m-x replace-string et appuyez sur RETOUR
  3. le mini-tampon affichera quelque chose comme ceci: Remplace une chaîne (par défaut ^ ->):
  4. Tapez le caractère que vous souhaitez remplacer. Dans ce cas, ; et appuyez sur RETOUR
  5. le mini-tampon affichera quelque chose comme ceci: string; avec:
  6. Maintenant, exécutez C-q C-j
  7. Toutes les occurrences de point-virgule seront remplacées par une nouvelle ligne (l'emplacement du curseur jusqu'à la fin de la mémoire tampon apparaîtra maintenant)

Un peu plus que l'explication originale.

8
afc

Passer en mode texte

M-x text-mode

Mettre en surbrillance le bloc à mettre en retrait

Retrait

C+M \

Revenez à n'importe quel mode ..

2
rebelbass