Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre du Club
    Inscrit en
    mars 2007
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 116
    Points : 47
    Points
    47

    Par défaut [Emacs][Linux] ^M apparu étrangement

    Bonjour,
    j'ai ces ^M qui sont apparu pour les retour chariot dans emacs, et que dans celui-ci. Bizarrement, je n'ai pas passé ce fichier par dos (mais il a été créé sous windows et téléchargé par ftp). Tous les autres fichiers sont ok. La seule chose que je me souvienne avoir fait d'un peu spécial est un copié-collé d'une portion de code de Bluefish vers Emacs, mais c'est tout...

    J'ai tenté la solution donnée un peu partout sur le net:
    mais rien...
    Quelqu'un peut me dire pourquoi c'est apparu et comment m'en débarrasser?

  2. #2
    Membre du Club
    Inscrit en
    mars 2007
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 116
    Points : 47
    Points
    47

    Par défaut

    comme je n'ai toujours pas trouvé de solution, je me permet ce petit up...

  3. #3
    Membre éclairé Avatar de satenske
    Homme Profil pro Antoine de Roquemaurel
    Développeur Freelance et Étudiant
    Inscrit en
    mars 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Nom : Homme Antoine de Roquemaurel
    Âge : 22
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Freelance et Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2011
    Messages : 137
    Points : 369
    Points
    369

    Par défaut

    Je ne sais pas si ça vient de la même chose, mais j'avais eu exactement le même problème sous vim, c'était un fichier que j'avais téléchargé...
    La seule solution que j'avais trouvé à ce moment là, c'était de les supprimer "à la main" (avec suppr ) et ensuite d'enregistrer le fichier, une fois cela fait, il n'y 'était plus...
    Même le rechercher remplacer n'avait pas marché.

    Mais je suis resté sur ma fin, à ne pas comprendre pourquoi ils étaient arrivés là.

  4. #4
    Expert Confirmé Avatar de jabbounet
    Homme Profil pro frederic frances
    Consultant informatique
    Inscrit en
    juin 2009
    Messages
    1 902
    Détails du profil
    Informations personnelles :
    Nom : Homme frederic frances
    Âge : 38

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : juin 2009
    Messages : 1 902
    Points : 2 675
    Points
    2 675

    Par défaut

    Citation Envoyé par BlindeKinder Voir le message
    (mais il a été créé sous windows et téléchargé par ftp).
    Pour information bash est pour linux ce que dos est pour windows (ou a peu près).

    Le fait d’éditer un fichier et de le sauver sous windows avec un éditeur qui ne préserve pas le format de fin de ligne fera systématiquement apparaitre des retour charriots (car cet éditeur sous windows fera probablement une conversion implicite au format du systèmes).

    Certains éditeur permette de préserver le format de fichier lors de l'édition a condition de les paramétrer correctement. (emacs/vi/ultraedit/notepad++/...)

    Sous la plupart des unix/linux, la commande dos2unix permet de convertir le fichier au format unix et unix2dos fait le contraire.

    quand cette commande n'existe pas sed peut faire le boulot.

    Code unix2dos :
    1
    2
    sed 's/$/\r/' fichier

    Code dos2unix :
    1
    2
    sed 's/\x0D$//' fichier
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  5. #5
    Membre Expert
    Inscrit en
    avril 2008
    Messages
    942
    Détails du profil
    Informations forums :
    Inscription : avril 2008
    Messages : 942
    Points : 2 088
    Points
    2 088

    Par défaut

    Citation Envoyé par BlindeKinder Voir le message
    Bonjour,
    j'ai ces ^M qui sont apparu pour les retour chariot dans emacs, et que dans celui-ci. Bizarrement, je n'ai pas passé ce fichier par dos (mais il a été créé sous windows et téléchargé par ftp). Tous les autres fichiers sont ok. La seule chose que je me souvienne avoir fait d'un peu spécial est un copié-collé d'une portion de code de Bluefish vers Emacs, mais c'est tout...

    J'ai tenté la solution donnée un peu partout sur le net:
    mais rien...
    Quelqu'un peut me dire pourquoi c'est apparu et comment m'en débarrasser?
    Je ne peux pas dire comment ils sont apparus.

    Il faudrait savoir (mais c'est peut-être un peu tard maintenant!) s'il s'agit d'un vrai caractère ^M ou de 2 caractères (un "^" suivi d'un "M"). Je crois me souvenir avoir déjà vu ça, il y a quelques décennies, en copiant/collant du texte...

    Une manière de savoir le contenu précis du fichier, c'est d'utiliser la commande de base "od" (pour octal dump) od -c fichierS'il s'agit de 2 caractères, "od" devrait afficher quelque chose comme ça:
    Code :
    1
    2
    3
    4
    5
    mac-jack$ echo "A^M" > toto
    
    mac-jack$ od -c toto
    0000000    A   ^   M  \n                                                
    0000002
    auquel cas un simple M-% ^ M RET RET ! devrait suffire.

    S'il s'agit d'un vrai RET, od -c devrait afficher un backslash suivi d'un "r", peut-être suivi d'un backslash suivi d'un "n", auquel cas une solution devrait bien être de faire C-x RET f unix RET (avec C-x et non C-c).
    Le buffer est alors marqué modifié ("**" au début de la modeline). Il faut ensuite le sauver (C-x C-s) pour que le résultat soit effectivement enregistré sur le disque dur.

    Avec echo "A" > toto et différents appels de set-buffer-file-coding-system (C-x RET f unix ou mac ou dos RET), "od" affiche alors les résultats suivants:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    mac-jack$ od -c toto  # Après C-x RET f unix RET C-x C-s
    0000000    A  \n                                                        
    0000002
    mac-jack$ od -c toto  # Après C-x RET f mac RET C-x C-s
    0000000    A  \r                                                        
    0000002
    mac-jack$ od -c toto  # Après C-x RET f dos RET C-x C-s
    0000000    A  \r  \n                                                    
    0000003
    En espérant que cela puisse servir à quelqu'un...
    )jack(

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •