Pregunta

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

Lo que realmente quiero es eliminar el retorno del carro y mantener los caracteres de la alimentación de línea. ¿Es el modo HEXL la forma correcta de hacer esto?

¿Fue útil?

Solución

No hay necesidad de modo HEXL para esto. Simplemente haga una búsqueda global y reemplazo de ^j ^m con ^j funciona para mí. :) Luego guarde el archivo, mata el búfer y vuelva a visitar el archivo para que la ventana muestre el nuevo modo de archivo (UNIX vs DOS).

Otros consejos

No es necesario encontrar reemplazo. Solo usa.

M-x delete-trailing-whitespace

También puede configurar el archivo que codifica a través de

C-x RET f unix

Ups. Que ^j ^m debe ingresarse como dos personajes literal. Usar c-q c-j, c-q c-m y para la cadena de reemplazo, use c-q c-j.

También hay una herramienta de línea de comandos llamada unix2dos/dos2unix Eso existe específicamente para convertir las terminaciones de línea.

Suponiendo que desea que un archivo codificado DOS se cambie en codificación UNIX, use el sistema de codificación de archivo de archivo MX (CX RET F) para establecer el sistema de codificación en "UNIX" y guardar el archivo.

Si desea eliminar un retorno de carro (generalmente se muestra como ^M) y deje la línea de alimentación. Puede visitar el archivo sin conversión:

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

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

Una vez que hayas hecho eso, el ^M aparecerá y puedes eliminarlos como lo harías con cualquier personaje.

No necesitas usar HEXL-Mode. En cambio:

  • Abra el archivo de una manera que te muestre esos ^m. Consulte MX Find-File-Literalmente/Path/To/File anterior. En XEMACS también puede hacer Cu CX CF y seleccionar la codificación binaria.
  • Seleccione la cadena que desea reemplazarla y copiarla usando MW
  • hacer m-% (consulta reemplazar) y pegar lo que desea copiar usando cy
  • Presente Ingrese cuando se le solicite lo que lo reemplaza con
  • ¡Posible prensa! Ahora para reemplazar todos los ocurrencias

El punto es que, incluso si no lo hace, ingresa lo que está intentando reemplazar, siempre puede seleccionarlo/copiarlo.

(en modo hexl) No estoy seguro de que puedas Eliminar personajes. Siempre los he convertido en espacios o algún otro personaje, cambiado al editor de texto regular y los eliminé allí.

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

Agrega esto a tu .emacs y ejecutarlo a través de M-x xsteve-remove-control-M o atarlo a una clave más fácil. Se despojará el ^Ms en anymode.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top