Conversion EOL dans notepad ++


113

Pour une raison quelconque, lorsque j'ouvre des fichiers à partir d'un serveur unix sur ma machine Windows, ils ont parfois une conversion EOL Macintosh, et lorsque je les modifie / enregistre à nouveau, ils ne fonctionnent pas correctement sur le serveur unix. J'utilise uniquement notepad ++ pour éditer des fichiers à partir de ce serveur Unix, alors existe-t-il un moyen de créer une macro qui convertit automatiquement EOL au format Unix chaque fois que j'ouvre un fichier?



1
Votre problème peut provenir du programme FTP que vous utilisez. Par exemple, j'utilise WinSCP pour accéder à distance à un serveur Unix, Notepad ++ est défini comme mon éditeur par défaut, mais je devais entrer dans les paramètres de WinSCP et définir le mode de transfert Binarysur afin de conserver les fins de ligne. Ainsi, vous pourrez peut-être reconfigurer votre programme FTP / SCP / etc pour transférer les fichiers d'une manière différente.
Slicktrick

Réponses:


200

Cette fonctionnalité est déjà intégrée à Notepad ++. Dans le menu "Edition", sélectionnez "Conversion EOL" -> "Format UNIX / OSX".

capture d'écran de l'option pour une recherche encore plus rapide (ou différentes versions linguistiques)

Vous pouvez également définir la valeur EOL par défaut dans notepad ++ via "Paramètres" -> "Préférences" -> "Nouveau document / répertoire par défaut" puis sélectionnez "Unix / OSX" dans le champ Format.


7
Je connais la conversion dans le menu d'édition, et les paramètres que vous avez mentionnés ne concernent que les nouveaux documents. Je veux effectuer automatiquement la conversion pour chaque fichier que j'ouvre (ou chaque fichier que je sauvegarde)
Jeff

Le problème est que lorsque j'ouvre un fichier Unix existant, le format "EOL Conversion" -> UNIX / OSX est grisé. Notepad ++ est trop frustrant à utiliser avec des fichiers UNIX, donc j'utilise Notetab Lite qui me permet de sauvegarder tous les fichiers sous UNIX, pas seulement les nouveaux.
Off The Gold

3
@OffTheGold L'option UNIX EOL est grisée car il s'agit de la sélection actuelle.
blakeoft

Bien sur. Merci depuis novembre 2017 via Google.
SDsolar

Cela ne fonctionne pas pour moi. Je continue à sélectionner "Conversion EOL -> Unix", mais cela ne fait rien. Je retourne dans le menu et vois que Windows est l'option grisée (donc sélectionnée?), Donc je clique à nouveau sur Unix. J'ai même essayé de sélectionner tout mon texte d'abord au cas où cela ne fonctionnerait que sur la sélection, puis j'ai de nouveau sélectionné Unix. Cela ne fait toujours rien.
Loduwijk

16

Dans Notepad ++, utilisez remplacer tout par une expression régulière. Cela présente un avantage par rapport à la commande de conversion dans le menu que vous pouvez utiliser sur un dossier entier sans avoir à ouvrir chaque fichier ou glisser-déposer (sur plusieurs centaines de fichiers, cela deviendra sensiblement plus lent) et vous pouvez également définir un filtre générique de nom de fichier.

(\r?\n)|(\r\n?)

à

\n

Cela correspondra à chaque motif de fin de ligne possible (simple \ r, \ n ou \ r \ n) de retour à \ n. (Ou \ r \ n si vous effectuez une conversion au style Windows)

Pour opérer sur plusieurs fichiers, soit:

  • Utilisez "Tout remplacer dans tous les documents ouverts" dans l'onglet "Remplacer". Vous devrez d'abord faire glisser et déposer tous les fichiers dans Notepad ++. Il est bon que vous ayez le contrôle sur le fichier sur lequel opérer, mais cela peut être lent s'il y a plusieurs centaines ou milliers de fichiers.
  • "Remplacer dans les fichiers" dans l'onglet "Rechercher dans les fichiers", par le filtre de fichier de votre choix, par exemple * .cpp * .cs sous un répertoire spécifié.

Cela peut entraîner une perte d'EOL en raison du remplacement d'un \ r \ n \ r \ n par un seul \ n. Je pense.
Sunspawn

Confirmez travaillé dans Notepad ++ 6.9.1. Il cherchera en avant, donc ne remplacera pas récursivement ceux qui sont en retard.
Wappenull

En répondant à: "Cela peut entraîner une perte de fin de vie en remplaçant un \ r \ n \ r \ n par un seul \ n" >> Ce ne sera pas le cas, car il utilise | (ou) opérateur entre 2 groupes possibles.
Wappenull

3

J'ouvre des fichiers "directement" depuis WinSCP qui ouvre les fichiers dans Notepad ++ J'avais un fichier php sur mon serveur linux qui s'ouvrait toujours au format Mac quoi que je fasse :-(

Si j'ai téléchargé le fichier puis que je l'ai ouvert depuis local (Windows), il était ouvert en tant que Dos / Windows .... hmmm

La solution était de convertir EOL le fichier local au "Format UNIX / OSX", de l'enregistrer et de le télécharger.

Maintenant, lorsque j'ouvre le fichier directement depuis le serveur, il est ouvert sous le nom "Dos / Windows" :-)


1

En fonction de votre projet, vous pouvez envisager d'utiliser EditorConfig ( https://editorconfig.org/ ). Il existe un plugin Notepad ++ qui chargera un .editorconfig où vous pouvez spécifier "lf" comme fin de ligne obligatoire.

Je n'ai commencé à l'utiliser, mais c'est bien jusqu'à présent, et les projets open source sur lesquels j'ai travaillé incluent des fichiers .editorconfig depuis des années. Le paramètre "Conversion EOL" n'est pas modifié, il peut donc être un peu déroutant, mais si vous "Affichage> Afficher le symbole> Afficher la fin de la ligne", vous pouvez voir qu'il ajoute LF au lieu de CRLF, même lorsque "Conversion EOL "et le coin inférieur inférieur montre autre chose (par exemple Windows (CR LF)).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.