Pour une raison quelconque, lorsque j'ouvre des fichiers 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. Je n'utilise que le bloc-notes ++ pour éditer les fichiers de ce serveur unix. Existe-t-il un moyen de créer une macro qui convertit automatiquement l'EOL au format Unix chaque fois que j'ouvre un fichier ?
Réponses
Trop de publicités?Cette fonctionnalité est déjà intégrée à Notepad++. Dans le menu "Edition", sélectionnez "Conversion EOL" -> "Format UNIX/OSX".
Vous pouvez également définir l'EOL par défaut dans notepad++ via "Settings" -> "Preferences" -> "New Document/Default Directory" puis sélectionner "Unix/OSX" dans la case Format.
Dans Notepad++, utilisez la fonction "replace all" avec une expression régulière. Cette commande présente l'avantage, par rapport à la commande de conversion dans le menu, de pouvoir opérer sur un dossier entier sans avoir à ouvrir chaque fichier ou à faire un glisser-déposer (sur plusieurs centaines de fichiers, cela deviendra sensiblement plus lent), et vous pouvez également définir un filtre générique pour les noms de fichiers.
(\r?\n)|(\r\n?)
a
\n
Cela correspondra à tous les modèles de fin de ligne possibles (simple \r , \n o \r\n ) de retour à \n. (Ou \r\n si vous convertissez en style Windows)
Pour opérer sur plusieurs fichiers, soit :
- Utilisez "Remplacer tout dans tous les documents ouverts" dans l'onglet "Remplacer". Vous devrez d'abord glisser et déposer tous les fichiers dans Notepad++. C'est une bonne chose que vous puissiez contrôler sur quel fichier 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 fichiers de votre choix, par exemple, *.cpp *.cs dans un répertoire spécifié.
J'ouvre les 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 et que je l'ai ouvert en local (Windows), il s'est ouvert sous Dos/Windows....hmmm.
La solution consistait à convertir le fichier local en "format UNIX/OSX", à le sauvegarder puis à le télécharger.
Maintenant, lorsque j'ouvre le fichier directement depuis le serveur, il s'ouvre en tant que "Dos/Windows" :-)
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 terminaison de ligne obligatoire.
J'ai seulement commencé à l'utiliser, mais c'est bien jusqu'à présent, et les projets open source sur lesquels j'ai travaillé ont inclus des fichiers .editorconfig pendant des années. Le paramètre "EOL Conversion" n'est pas modifié, ce qui peut être un peu déroutant, mais si vous "View > Show Symbol > Show End of Line", vous pouvez voir qu'il ajoute LF au lieu de CRLF, même si "EOL Conversion" et le coin inférieur inférieur montrent autre chose (par exemple Windows (CR LF)).