Indentation automatique dans Notepad ++


189

Nous écrivons toujours du code comme ceci formel:

void main(){
  if(){
    if()
    }

Texte alternatif

Mais lorsque j'utilise Notepad ++ , l'affichage est:

void main(){
if(){
if()
}

Texte alternatif

Comment utiliser Notepad ++ pour l'indentation automatique?

Merci à Jonathan , je l'ai réglé, mais cela ne prend aucun effet. L'instantané est ci-dessous:

Texte alternatif

J'utilise Notepad ++ version 5.1.3.

Réponses:


137

Notepad ++ insérera automatiquement les retraits suivants uniquement si vous indentez manuellement la première ligne d'un bloc; sinon, vous pouvez ré-indenter votre code après coup en utilisant TextFX > TextFX Edit > Reindent C++ code.


1
Si votre version ne contient pas la DLL, vous pouvez l'obtenir à partir de la version ZIP 5.9.0. Certaines des versions ultérieures n'incluaient pas cette DLL. notepad-plus-plus.org/download/v5.9.0.html
Fostah

2
J'ai en fait trouvé cela en cherchant un moyen de formater le code javascript. Il s'avère que cela fonctionne également pour les fichiers .js!
Sacredfaith

7
@Fostah: vous pouvez également installer le "Text FX Character" via> Plugins> Plugin Manager> Show Plugin Manager
Adrien Be

@scronide, y a-t-il une touche de raccourci pour cela?
Pacerier

Notez que malgré le nom, il a également correctement ré-indenté le code javascript que j'essayais de corriger l'indentation. Aucune raison pour laquelle je m'attendrais à ce que ce ne soit pas le cas, je le mentionne simplement, car le nom est assez spécifique. Je ne sais pas pourquoi l'auteur de cette bibliothèque a estimé qu'il devait donner une préférence particulière au C ++ ...: D
neminem

100

Si le menu TextFX n'existe pas, vous devez télécharger et installer le plugin. Plugins-> Plugin Manager-> Show Plugin Manager , puis vérifiez les caractères du plugin TextFX . Cliquez sur «installer», redémarrez Notepad ++.

Dans la version Notepad ++ v6.1.3, je résolve avec: Plugin Manager-> Show Plugin Manager ** puis vérifie le plugin "Indent By Fold"


2
Le retrait par pli est génial. Le fait qu'il fonctionne dans un formatage arbitraire ( XML, C / ++ / #, etc. ) est génial. Le seul problème avec cela est la pile "annuler". Lorsqu'il est utilisé, si vous souhaitez annuler jusqu'à un point avant le retrait, vous devez annuler à chaque ré-indentation de ligne, car elle n'est pas ajoutée à la pile en une seule commande. En gros, soyez prudent lorsque vous travaillez avec des fichiers longs .
Dan Lugg

Salut @Dan, le problème d'annulation semble avoir été corrigé dans la nouvelle version de retrait par pli ...
538ROMEO

2
Oui, cela n'existe pas et il n'y a pas de gestionnaire de plugins.
Beyondo

31

Il semble y avoir au moins une option pour le formatage automatique de XML. Il peut être trouvé à TextFX -> TextFX HTML Tidy -> Tidy: reindent XML.


2
vous avez besoin du plugin TextFx pour cela
arviman

29

La plupart des développeurs de programmes d'édition de texte abusent de ce nom (indentation automatique). Le nom correct est "maintenir l'indentation". Le retrait automatique est ce que vous voulez réellement, mais il n'est pas implémenté.

J'aimerais également voir cette fonctionnalité dans Notepad ++.


22

Dans la dernière version (au moins), vous pouvez le trouver via:

  • Paramètres (menu)
  • Préférences ...
  • MISC (onglet)
  • liste de cases à cocher en bas à gauche
  • " Auto-indent " est la deuxième option de ce groupe

[ EDIT ] Cependant, je ne pense pas que ce soit la meilleure implémentation de l'indentation automatique. Donc, assurez-vous que vous avez la version 5.1 - l'auto-indent a récemment fait l'objet d'une refonte, donc il corrige automatiquement votre indentation.


Notez également qu'il vous manque le bloc pour le 2ème if:

void main(){
  if(){
    if() { }  # here
  }
}

8
Notez que ce paramètre d'indentation automatique dans Notepad ++ suppose que vous effectuez manuellement le premier retrait d'un bloc; il ne formate pas automatiquement le code pour vous.
scronide

J'ai compris votre sens à l'instant, pardonnez à mon pauvre Eng ... Ma langue maternelle est le chinois ...
Turion

14

Vous pouvez utiliser le plugin 'Indent by fold'. Installez-le depuis le gestionnaire de plugins. Ça fonctionne bien pour moi.


2
Le retrait par pli est génial, sauf qu'il ne se met en retrait que par pli;) Dans les situations où vous avez indenté une initialisation de liste, à moins que le langage n'utilise un caractère de pliage pour délimiter l'initialiseur, il finira par annuler le retrait. Un exemple est une initialisation de tableau multiligne en PHP en utilisant array( ... ), où ()sont non pliables.
Dan Lugg

5

Dans la version 6.6.8, j'ai installé le plugin NppAutoIndent depuis Plugins> Plugin Manager> Show Plugin Manager. Ensuite, j'ai sélectionné l'option Smart Indent dans Plugin> NppAutoIndent. J'espère que cela t'aides.


5

Pour ceux qui utilisent Notepad ++ v6.8.1 et versions ultérieures, le paramètre d'indentation automatique est maintenant placé dans le menu ParamètresPréférencesMISC. Indentation automatique .

Entrez la description de l'image ici


4

Une petite mise à jour: vous pouvez ignorer le plugin TextFX et utiliser simplement Tidy2 . Ici, vous pouvez configurer vos propres règles de mise en forme pour différents types de codes. Facile à installer et à retirer

Notepad ++> Plugins> Plugin Manager> Afficher le Plugin Manager

et recherchez simplement Tidy2 et installez-le. Terminé.


Pouvez-vous expliquer un peu plus?
Dieter Meemken

Plus d'informations sur la configuration peuvent être trouvées ici: stackoverflow.com/questions/14865770/using-tydy2-for-notepad
Sven Ya

c'est assez difficile à utiliser par rapport à d'autres plugins
Gaurav khurana

3

Essayez le plugin UniversalIndentGUI pour Notepad ++. Il réindente le code en fonction de certains paramètres. Ça a bien marché pour moi.


3
Notez que le lien est direct vers le téléchargement. Le site Web est: universalindent.sourceforge.net . En outre, cela semble être une interface graphique pour configurer un outil de reformatage, plutôt que de formater automatiquement le texte correctement pour commencer.
Martin Bonner soutient Monica

2

Cela peut sembler idiot, mais dans la question initiale, Turion éditait un fichier texte brut. Assurez-vous de choisir la bonne langue dans le menu Langue


2
Menu TextFX → TextFX Edit → Reindent C++ code

entrez la description de l'image ici

Mais Notepad ++ n'est pas fourni avec ce plugin "Text FX Character". Vous devrez l'installer via

Plugins → Plugin Manager → Show Plugin Manager.

Pour ajouter un raccourci pour l'indentation .

Cliquez sur ParamètresMappeur de raccourcis ... définissez la touche de raccourci que vous préférez. Je préfère Ctrl+ =.

Entrez la description de l'image ici


1

Installez le plugin Tidy2. J'ai Notepad ++ v6.2.2, et Tidy2 fonctionne très bien jusqu'à présent.


1

Tout d' abord télécharger le plugin gestionnaire ce lien puis décompressez le dossier zip et copiez dans votre programme / notepad ++ dossier. puis redémarrez votre notepad ++. puis vous voyez le gestionnaire de plugins dans le menu des plugins. puis cliquez sur gestionnaire de plugins puis cliquez sur afficher le gestionnaire de plugins. Il montre toute votre liste de plugins. dans la liste en bas, recherchez les outils XML, vérifiez-les et installez-les. puis redémarrez votre notepad ++. Après avoir ouvert un document, puis plugins / outils xml / pretty plain (texte en retrait) puis profitez-en.


0

Pour ceux qui utilisent la version 7.8.5, les paramètres de retrait automatique se trouvent maintenant dans "Paramètres" -> "Préférences ..." -> "Auto-complétion".

entrez la description de l'image ici


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.