2012-12-10 1 views
3

utilisateurs et Emacs Estimé MELD/ESS,Pourquoi est-ce que^M est ajouté à un script.r après avoir été modifié avec Meld?

Ce que je l'ai fait:

  1. Créez un script.r Emacs/ESS.
  2. faire quelques modifications à script.r en tirant quelques lignes de code de another_script.r
  3. Rouvrez another_script.r (ou script.r) dans Emacs/ESS pour continuer à travailler.

Toutes les lignes another_script.r qui étaient pas poussé à script.r fin avec^M

Quelques fois il est dans l'autre sens - seule la ligne qui a été poussé/tiré avec extrémités^Mme. Jusqu'à présent, je n'ai pas isolé exactement quelle action détermine où les^M sont placés. Quoi qu'il en soit, je finis toujours avec^M est partout et je voudrais éviter de les obtenir après avoir utilisé Meld! FWIW: le répertoire est en cours de synchronisation avec Dropbox; dans Meld, Préférences> onglet Encodage, "utf8" est entré dans la zone de texte; toutes les actions sont effectuées sous Linux (Ubunt 12.04) avec Meld v1.5.3, Emacs v23.3.1

Une solution de contournement est en cours d'exécution dans un terminal: dos2unix /path/to/script.r qui supprime ^M s. Mais cela ne devrait pas être nécessaire et j'espère que quelqu'un ici peut me dire comment éviter cela.

Cheers.

+2

Cela ne ressemble pas à un problème R. Peut-être devriez-vous poster ceci sur un forum Meld/Git après avoir identifié quel outil introduit cela (en éliminant un à la fois de vos pas) –

+0

@A_K Je suis d'accord que cela n'a probablement rien à voir avec R- la balise R était désinvolte. Mais stackoverflow a retourné 90% de toutes mes recherches git google, y compris celles liées à '^ M', d'où mon point de départ ici. – kbrand

+0

Comment est-ce hors sujet? La portée du site inclut explicitement les «outils logiciels couramment utilisés par les programmeurs» tels que Git et Meld. –

Répondre

1

Dans un terminal i couru cat script.r | hexdump -C | head et parmi la sortie d'un 0d 0a trouvé ont retourné, ce qui est DOS mise en forme pour une nouvelle ligne (retour chariot 0d immédiatement suivi d'un saut de ligne 0a). J'ai couru la même commande sur another_script.r je fusionnais avec mais seulement observé 0a, pas 0d 0a, indiquant le formatage Unix.

Pour vérifier en outre si cela était la source de la fin de ligne^M, script.r a été converti en forme unix via dos2unix script.r & vérifié que 0d 0a a été converti en utilisant 0a hexdump C comme ci-dessus. J'ai effectué une fusion en utilisant Meld en essayant de répliquer le processus qui a donné^M terminaisons de ligne dans mon script. J'ai ré-oppened les deux fichiers dans Emacs/ESS et trouvé aucune fin de ligne^M. Short de convertir script.r retour pour formater dos et répéter la procédure ci-dessus pour voir si les fins de ligne^M réapparaissent, je crois que j'ai résolu mon problème^M, qui est simplement que, à mon insu, un de mes fichiers a été formaté. Mon message à retenir: dans un environnement dominé par Windows, ne supposez jamais que l'environnement Linux personnel ne contient pas de bits DOS. Ou des fins de ligne.

Questions connexes