Por que o Emacs insere ^ m no final de cada linha?

7

Por que o Emacs insere o ^ m no final de cada linha no meu ambiente Linux?

    
por Zubair 29.11.2010 / 19:37

4 respostas

14

Retorno de linha do Emacs e Windows, Unix, Mac, tudo isso ^ M ^ J ^ L

Q: Why does emacs show ^M in a buffer?

A: The “^M” is ASCII caret notation for unprintable Carriage return char (ASCII 13). If emacs shows that, it's probably because you have mixed characters of ^M and ^J and emacs cannot interpret them consistently as newlines.

To fix it, call “set-buffer-file-coding-system”, then give one of: “mac”, “dos”, “unix”. Then, save the file. If that does not fix it, you can use find and replace to remove it manually.

    
por 29.11.2010 / 21:00
1

Eu sei que é uma questão antiga, mas para o registro, há outras razões pelas quais ^ M aparece no final dos arquivos. Eu acabei de ter o mesmo problema. Aqui está o que aconteceu:

  1. Todo dia eu uso o mesmo arquivo de texto no Emacs e nunca vi ^ M. Eu uso esse arquivo para fazer anotações pessoais.
  2. Na última vez em que usei o arquivo, copiei e colei o conteúdo de um e-mail que recebi no MS Outlook.
  3. Hoje eu abri o mesmo arquivo antigo e cada linha tinha um ^ M no final, e todos os caracteres não-ASCII foram substituídos por códigos estranhos como ???.

Como corrigir:

Abra o mesmo arquivo no VI (sim, eu sei, o arquiinimigo) e procure por caracteres que aparecem em uma cor de destaque. No meu terminal é azul. Remova esses caracteres e tudo funcionará bem no Emacs.

Causa:

O problema foi causado por alguns caracteres estranhos de aspas que vieram do Outlook. O mais engraçado é que o Emacs não mostra esse problema até você reabrir o arquivo, dificultando a identificação do problema imediatamente.

    
por 11.11.2013 / 11:39
1

Eu sei que esta questão foi resolvida, mas eu queria mencionar que Dos2Unix é uma parte útil de um kit de ferramentas para operação de arquivos entre máquinas UNIX / DOS / Mac. É uma abordagem baseada em comandos fácil para adicionar / remover terminações de linha preferidas do SO.

    
por 11.11.2013 / 17:24
0

Se você estiver usando o Emacs em um ambiente DOS / Windows, o Emacs deve reconhecer corretamente o sistema de terminação de linha e lidar com isso de maneira transparente.

Você pode ver ^ M aparecer de repente em um arquivo porque ele foi editado, talvez com um script, que adicionou linhas com terminações de linha do UNIX e, agora, as terminações de lline estão misturadas.

Você pode corrigir essas linhas adicionando ^ M de volta a elas, salvar o arquivo, eliminar o buffer e reabri-lo. Agora deve parecer normal e dizer (DOS) como a marcação de codificação na linha de status.

O regexp para procurar é \ ([^^ M] \) $ e substitua por \ 1 ^ M. Lembre-se de usar Ctrl-Q para 'citar' os caracteres Ctrl-M.

    
por 25.07.2014 / 19:38

Tags