Comment remplacer un caractère par un retour à la ligne dans Emacs?
J'essaie de remplacer un caractère - disons ;
- par une nouvelle ligne en utilisant replace-string
et / ou replace-regexp
dans Emacs.
, j'ai essayé les commandes suivantes:
-
M-x
replace-string
RET;
RETn
Cela remplacera
;
par 2 caractères:n
. -
M-x
replace-regex
RET;
RETn
Il en résulte l'erreur suivante (montrée dans le minibuffer):
Utilisation non valide de ' ' dans le texte de remplacement.
Quel est le problème avec l'utilisation de replace-string
pour cette tâche? Est-il un autre moyen de le faire?
Merci.
5 réponses
M-x replace-string
RET ;
RET C-q C-j.
C-q pour
quoted-insert
,C-J est une nouvelle ligne.
Cheers!
Il y a quatre façons que j'ai trouvées de mettre une nouvelle ligne dans le minibuffer.
C-o
C-q C-j
C-q
12
(12 est la valeur octale de saut de ligne)C-x o dans la fenêtre principale, tuer un retour à la ligne avec , C-k, puis , C-x o retour à l'minibuffer, tirer avec C-y
Plus explicitement:
Pour remplacer le caractère point-virgule (;) par un retour à la ligne, procédez comme suit.
- Localisez le curseur en haut à gauche du tampon contenant le texte que vous souhaitez modifier
- Tapez m - x replace-string et appuyez sur RETURN
- , le mini-tampon affichera quelque chose comme ceci: Remplacer la chaîne (par défaut ^ ->):
- Saisissez le caractère que vous souhaitez remplacer. Dans ce cas, ; et appuyez sur retour
- , le mini-tampon affichera quelque chose comme ce: chaîne ; avec:
- exécutez maintenant C-q C-J
- Toutes les instances de point-virgule seront remplacées par une nouvelle ligne (de l'emplacement du curseur à la fin du tampon apparaîtra maintenant)
Un peu plus que l'explication originale ne le dit.
Passer en mode texte
M-x text-mode
Mettre en surbrillance le bloc pour indenter
Tiret
C+M \
Revenez à n'importe quel mode..