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.

Turion
la source

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.

scronide
la source
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"

inconnus
la source
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.

Abhishek
la source
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 ++.

Peter Mortensen
la source
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
  }
}
Jonathan Lonowski
la source
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.

Aki143S
la source
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.

TheRS
la source
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

Luke
la source
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é.

Sven Ya
la source
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.

imriss
la source
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

kurdtpage
la source
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

Saurav Sahu
la source
1

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

user9717890
la source
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.

tapos ghosh
la source
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

ooi18
la source
0

Essayez de sauvegarder le fichier avant, il sera mis en retrait.

Sh13
la source
Ça pourrait être un commentaire!
Farbod Ahmadian le
Pouvez-vous nous en dire un peu plus?
Toto