workshop usar sirve que program para hxd como emacs hex hex-editors

usar - En emacs, ¿cómo quitar CR(^ M) y dejar caracteres LF(^ J)?



hxd hex editor 64 bit download (9)

(en modo hexl) No estoy seguro de que puedas eliminar caracteres . Siempre los convertí en espacios o en algún otro personaje, cambié al editor de texto normal y los eliminé allí.

Estoy tratando de usar el modo hexl para eliminar manualmente algunos caracteres especiales de un archivo de texto y no veo cómo eliminar nada en el modo hexl.

Lo que realmente quiero es eliminar el retorno de carro y mantener los caracteres de salto de línea. ¿Es el modo Hexl la manera correcta de hacer esto?


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))))))

Agregue esto a sus .emacs y ejecútelo a través de Mx xsteve-remove-control-M o Mx xsteve-remove-control-M a una clave más fácil. Despojará a los ^M s en cualquier modo.


No es necesario encontrar reemplazo. Solo usa.

M-x delete-trailing-whitespace

También puede establecer la codificación del archivo a través

C-x RET f unix


No hay necesidad de modo hexl para esto. Simplemente haz una búsqueda global y reemplaza ^ J ^ M con ^ J Funciona para mí. :) A continuación, guarde el archivo, elimine el búfer y revise el archivo para que la ventana muestre el nuevo modo de archivo (Unix frente a DOS).


No necesita usar el modo hexl. En lugar:

  • abra el archivo de una manera que le muestre esas ^ M''s. Ver Mx find-file-literally / path / to / file más arriba. En XEmacs también puedes hacer Cu Cx Cf y seleccionar codificación binaria.
  • seleccione la cadena que desea reemplazar y cópiela usando Mw
  • hacer M-% (reemplazar consulta) y pegar lo que desea copiar con Cy
  • presente Ingrese cuando se le pregunte a qué lo reemplaza con
  • posible presionar! ahora para reemplazar todas las apariciones

El punto es que incluso si no sabe cómo ingresar lo que está tratando de reemplazar, siempre puede seleccionarlo / copiarlo.


Oops. Eso ^ J ^ M debe ingresarse como dos caracteres literales. Use cq cj , cq cm y para la cadena de reemplazo, use cq cj .


Si desea eliminar un retorno de carro (generalmente se muestra como ^M ) y dejar el salto de línea. Usted puede simplemente visitar el archivo sin ninguna conversión:

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

Porque un archivo con retornos de carro generalmente se muestra en modo DOS (ocultando los retornos de carro). La línea de modo probablemente se mostrará (DOS) en el lado izquierdo.

Una vez que hayas hecho eso, se mostrará ^M y podrás eliminarlos como lo harías con cualquier personaje.


Suponiendo que desea que un archivo codificado en DOS se cambie a codificación UNIX, utilice Mx set-buffer-file-coding-system (Cx RET f) para establecer el sistema de codificación en "unix" y guarde el archivo.


También hay una herramienta de línea de comandos llamada unix2dos/dos2unix que existe específicamente para convertir los finales de línea.