web-dev-qa-db-fra.com

Bloc-notes ignorant les sauts de ligne

La plupart des documents que j'ouvre dans notepad.exe sous Windows 7 ces derniers temps, il n'y a pas de sauts de ligne ... tout va bien ensemble. Les mêmes documents dans tout autre programme, même prévisualisés directement dans Explorer, afficheront les sauts de ligne correctement. cela se produit avec beaucoup de fichiers .info, .css, .js .. mais pas tous.

Je suppose que c'est une sorte de caractère encodant des fins de ligne unix, mais je me demande si je peux faire quelque chose ou si quelqu'un d'autre a eu une expérience similaire et si je peux faire fonctionner le bloc-notes correctement. Je le préfère au bloc-notes ++/autres éditeurs de texte pour certaines utilisations.

35
Damon

Il y a des sauts de ligne, mais différents systèmes d'exploitation reconnaissent différentes séquences pour les sauts de ligne.

Le Bloc-notes ne reconnaît que CR, LF (0x0d, 0x0a), alors que d'autres sources peuvent utiliser uniquement CR, ou LF.

Vous ne pouvez pas faire en sorte que le Bloc-notes se comporte différemment. Votre seule option est donc de vous assurer que le contenu a la bonne séquence pour le Bloc-notes. Notez que notepad est le seul éditeur à avoir cette restriction. Par conséquent, si votre contenu fonctionne dans Notepad, il fonctionnera partout ailleurs.

Un moyen simple de corriger les sauts de ligne consiste à copier et coller le texte dans Word, puis de nouveau dans le bloc-notes et les sauts de ligne seront "corrigés" en séquence CR, LF.

44
Paul

Wordpad

Si votre aversion pour notepad ++ et les autres éditeurs de texte est qu’ils ne font pas partie intégrante de tous les systèmes Windows, utilisez Wordpad. Ce n'est pas aussi rudimentaire que le Bloc-notes.

Wordpad lira et affichera correctement les fichiers texte avec des fins de ligne Unix.

Autre

Si vous êtes opposé aux deux éditeurs de texte vrais, alors notepad ++ est probablement un bon choix.

9
RedGrittyBrick

Tu pourrais écrire un simple script batch:

@ECHO OFF
TYPE %1 | FIND /V "" >%1.1
MOVE %1.1 %1 > NUL 2>&1
START "NOTEPAD" C:\WINDOWS\SYSTEM32\NOTEPAD.EXE %1
EXIT /B

Enregistrez-le sous le nom notepad.bat dans le répertoire de votre choix. Ensuite, au lieu d'ouvrir vos fichiers .info/.css/.js avec Notepad, ouvrez-les avec ce script de traitement par lots. Il convertira automatiquement toutes les fins de ligne Unix en DOS, puis ouvrira le fichier avec Notepad.

Désavantages:

  • Chaque fois que vous ouvrez le programme, il ajoute une nouvelle ligne à la fin du fichier. (Fixé par @ mpag )
  • Ouvre une fenêtre d'invite de commande (Corrigé avec START à la ligne 4)
  • Change la date de création du fichier en date actuelle
5
MD XF

Comme Notepad ++ a été spécifiquement mentionné dans le PO, il dispose (du moins à présent) des paramètres nécessaires sous:

Édition -> Conversion EOL -> Format Windows.

4
Huendli

Vous devez modifier le type d'encodage à la ligne utilisé dans le fichier.

Sous Linux, il existe un programme appelé "unix2dos" qui peut le faire pour vous. Je ne sais pas si Windows est livré avec un tel programme, mais il semble en avoir un similaire disponible ici: http://www.thefreecountry.com/tofrodos/

Il y a plus d'informations sur ce processus dans Wikipedia: http://en.wikipedia.org/wiki/Unix2dos où vous pouvez obtenir des exemples de différentes lignes de commande programmes qui peuvent faire le changement.

3
rgocs

Une autre chose que vous pouvez faire: Ouvrez le fichier dans WordPad, puis enregistrez-le. Cela corrigera les fins de ligne. C'est la méthode la plus rapide.

1
MD XF

Vous avez raison de dire que c'est un problème avec les fins de ligne Unix. Il existe plusieurs fins de ligne différentes , mais trois variantes sont les plus courantes:

  • "U + 000A LINE FEED" (LF): Unix, Linux, macOS, etc.
  • "U + 000D CARRIAGE RETURN" (CR): macOS classique entre autres
  • "U + 000D CARRIAGE RETURN" suivi de "U + 000A LINE FEED" (CRLF): Windows et autres systèmes d'exploitation non Unix/IBM

Les anciennes versions de Notepad ne reconnaissent que CRLF, mais les versions plus récentes prennent en charge CRLF, CR et LF .

Aucun paramètre ne permet de modifier ce comportement dans les anciennes versions de Notepad, mais vous pouvez revenir à l'ancien comportement de la nouvelle version . La plupart des autres programmes grand public fonctionnent avec les trois fins de ligne depuis un certain temps déjà. Par conséquent, si votre contenu fonctionne dans les versions antérieures de Notepad, il devrait fonctionner un peu partout ailleurs.

1
0b10011