Question

J'essaie d'utiliser le mode hexl pour supprimer manuellement des caractères spéciaux d'un fichier texte et je ne vois pas comment supprimer quoi que ce soit en mode hexl.

Ce que je veux vraiment, c'est de supprimer le retour du chariot et de conserver les caractères de randonnée. Le mode hexl est-il la bonne façon de le faire?

Était-ce utile?

La solution

Pas besoin de mode hexl pour cela. Faites simplement un secourir et un lieu mondial de ^ j ^ m avec ^ j œuvres pour moi. :) Ensuite, enregistrez le fichier, tuez le tampon et revisitez le fichier afin que la fenêtre affiche le nouveau mode fichier (UNIX vs dos).

Autres conseils

Pas besoin de trouver le remplacement. Utilisez simplement.

M-x delete-trailing-whitespace

Vous pouvez également définir le fichier Encoding via

C-x RET f unix

Oops. Que ^ j ^ m doit être entré comme deux caractères littéraux. Utilisation c-q c-j, c-q c-m Et pour la chaîne de remplacement, utilisez c-q c-j.

Il y a aussi un outil de ligne de commande appelée UNIX2DOS / DOS2UNIX Cela existe spécifiquement pour convertir les terminaisons des lignes.

En supposant que vous souhaitez qu'un fichier encodé DOS soit changé en codage UNIX, utilisez MX SET-BUFFER-FILE-CODING-System (CX RET F) pour définir le système de codage sur "UNIX" et enregistrer le fichier.

Si vous souhaitez retirer un retour de chariot (généralement affiché comme ^M) et laisser le flux de ligne. Vous pouvez simplement visiter le fichier avec toute conversion:

M-x find-file-literally /path/to/file

Parce qu'un fichier avec chariot revient est généralement affiché en mode DOS (cacher les retours de chariot). La ligne de mode s'affichera probablement (DOS) sur le côté gauche.

Une fois que vous avez fait cela, le ^M apparaîtra et vous pouvez les supprimer comme vous le feriez pour n'importe quel personnage.

Vous n'avez pas besoin d'utiliser le mode hexl. À la place:

  • Ouvrez le fichier d'une manière qui vous montre ces ^ m. Voir MX Find-File-Literally / Path / To / Fichier ci-dessus. Dans Xemacs, vous pouvez également faire CU CX CF et sélectionner le codage binaire.
  • Sélectionnez la chaîne que vous souhaitez remplacer et le copier à l'aide de MW
  • faire m-% (requête remplacer) et coller ce que vous voulez copier en utilisant CY
  • Présenter Entrez lorsque vous êtes invité à le remplacer par
  • presse possible! Maintenant pour remplacer toutes les occurrences

Le fait est que même si vous ne savez pas comment saisir ce que vous essayez de remplacer, vous pouvez toujours le sélectionner / le copier.

(en mode hexl) Je ne suis pas sûr que vous puissiez Supprimer les caractères. Je les ai toujours convertis en espaces ou dans un autre personnage, je suis passé à l'éditeur de texte ordinaire et je les ai supprimés là-bas.

De http://www.xsteve.at/prg/emacs/xsteve-functions.el:

;02.02.2000
(defun xsteve-remove-control-M ()
  "Remove ^M at end of line in the whole buffer."
  (interactive)
  (save-match-data
    (save-excursion
      (let ((remove-count 0))
        (goto-char (point-min))
        (while (re-search-forward (concat (char-to-string 13) "$") (point-max) t)
          (setq remove-count (+ remove-count 1))
          (replace-match "" nil nil))
        (message (format "%d ^M removed from buffer." remove-count))))))

Ajoutez ceci à votre .emacs et exécutez-le via M-x xsteve-remove-control-M ou le lier à une clé plus facile. Il dépouillera le ^Ms dans AnyMode.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top