Notepad++: désactiver l'auto-indentation après les lignes vides
je trouve un peu bizarre le style autoindent de Notepad++: quand je tape sur une ligne en retrait, je do veux qu'il indente la ligne suivante après avoir appuyé sur Enter (ce qu'il fait correctement). Cependant, lorsque je suis sur une ligne vide (pas d'indentation, pas de caractères) et que j'appuie sur Entrée, elle indente la ligne suivante, en utilisant la même indentation que la dernière ligne non vide. Je trouve cela très ennuyeux; avez-vous déjà rencontré ce problème et savez-vous comment résoudre ce problème?
(Note: je suis en train d'éditer des fichiers HTML/PHP.)
(aussi, les suggestions d'Autres Bons éditeurs libres pour HTML/PHP sont les bienvenues, au cas où il n'y aurait aucun moyen de changer ce comportement.)
7 réponses
Ce comportement peut être désactivé en faisant:
Plugins > NppAutoIndent > ligne précédente
si cette option est désactivée, vous pouvez avoir besoin de vérifier d'abord cette option:
Plugins > NppAutoIndent > Ignorer la langue
je peux confirmer que ce problème se produit avec la version 5.0.3 de Notepad++. Le seul réglage que j'ai trouvé est sous Paramètres > Préférences > MISC > Auto-Indent, mais cela ne fait qu'activer ou désactiver l'auto-indenting.
j'ai utilisé Editra ( http://editra.org ) dans le passé et était heureux avec elle et il semble gérer indenting la façon dont vous décrivez.
j'ai trouvé un autre moyen:
Utiliser la macro "Garniture de Fuite et d'économiser" raccourci "Alt + Maj + S"
I vous avez besoin de cela tout le temps, il suffit d'échanger le raccourci sauver avec la macro "Trim arrière et sauver" raccourci.
j'ai tendance à n'utiliser le bloc-notes++ que lorsque je programmais, donc cela fonctionne bien pour moi.
il est regrettable que Notepad++ ne coupe pas automatiquement la deuxième nouvelle ligne vide. Mais, en tant que solution de rechange, je suis d'accord avec user108570 : une macro serait parfaite.
je tiens à faire une distinction conceptuelle entre "doux" versus en dur "" des sauts de ligne, par analogie, pour les deux types d'onglets. La sortie du premier dépend du style actuel et des paramètres d'indentation. La sortie de la ce dernier, cependant, devrait toujours être une simple, sans additifs, simple vanille nouvelle ligne.
la saveur la plus fréquemment utilisée des graines de lin devrait, bien entendu, être associée à la combinaison plus simple de touches. Pour la plupart de vos modifications, vous voudrez probablement laisser "soft linefeed" associé à la touche "Enter" et changer "Ctrl+Enter" pour déclencher un "hard linefeed".
Dans "Menu -> Paramètres -> Raccourci Mappeur -> Menu Principal", vous verrez que, par défaut, les touches "Ctrl+Enter" mappée à "fin de Mot". Il faut d'abord désactiver cette fonction en l'attribuant à "aucune".
puis simplement enregistrer une macro:
- Menu - > Macro - > Démarrer L'Enregistrement
- Clavier - > Entrée
- Clavier - > Tab
- Clavier - > Maj + Accueil
- Clavier - > Supprimer
- Menu - > Macro - > Arrêt De L'Enregistrement
- Menu -> Macro - > Enregistrer La Macro Courante Enregistrée 1519180920"
la dernière étape ouvrira une boîte de dialogue où vous nommerez la macro (par exemple "Hard Linefeed") et définirez sa correspondance (par exemple "Ctrl+Enter").
à l'étape 3 nous aurions pu ajouter n'importe quoi (imprimable). Son seul but est d'ajouter quelque chose à supprimer s'il n'y avait rien avant, de sorte que tout texte suivant le curseur restera intact.
couper L'espace arrière et sauver est ennuyeux. Vous remarquerez que vous insérez involontairement quelques caractères dans les documents.
enregistrez plutôt une macro et liez-la à votre ctrl + S.
Voici comment faire:
- Macro - > Démarrer L'Enregistrement
- Edit -> Garniture De Fuite De L'Espace
- Fichier - > Enregistrer
- Macro - > Arrêt De L'Enregistrement
- Macro -> Enregistrer macro enregistrée (Garniture et Enregistrer)
- Paramètres - > Coupe Courte
- Menu Principal -> Enregistrer -> Ctrl + Alt + Maj + Enregistrer
- Macros-> Garniture et Enregistrez -> Ctrl + S
ce que je fais dans Notepad++ est:
- il y a une macro "trim trailing spaces" dans TexFX > TexFX Edit.
- utilisez ceci pour construire une macro" trim and save".
- lient cette macro à Ctrl + S , et lient "Save" à quelque chose d'autre.
je vous dirais comment enregistrer une macro qui utilise une autre macro, mais il y a des années je l'ai fait et maintenant je viens copiez le fichier de autour de. Je m'attends à ce que ça fonctionne, ou peut-être que je l'ai fait en éditant manuellement le fichier de raccourcis. Il ressemble à ceci (dans les raccourcis.xml):
<Macro name="Trim and save" Ctrl="no" Alt="yes" Shift="yes" Key="83">
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="0" message="2327" wParam="0" lParam="0" sParam="" />
<Action type="0" message="2327" wParam="0" lParam="0" sParam="" />
<Action type="2" message="0" wParam="42024" lParam="0" sParam="" />
<Action type="2" message="0" wParam="41006" lParam="0" sParam="" />
</Macro>
deux avertissements:
-
La garniture macro est buggé. Il ne fonctionne que si le curseur est à la fin d'une ligne lorsqu'il est utilisé. Je pense parfois à essayer de le réparer ou faire le mien, mais ne peut jamais être ennuyé parce que je travaille réflexivement autour de lui en déplaçant le curseur moi-même avant de l'enregistrer. La même solution de contournement pourrait simplement être intégrée à votre macro "trim and save".
-
certaines personnes se fâchent si vous supprimez les blancs d'espace de fuite de "leurs" fichiers - soit parce qu'ils l'aiment, ou parce qu'ils utilisent parfois diff sans ignorer les blancs d'espace (par exemple dans les rapports de changement) et ne veulent pas voir que vous avez changé la moitié du fichier alors qu'il était vraiment un one-liner. Alors pour ces fichiers, il suffit de laisser les espaces vides tels qu'ils sont et enregistrer avec ctrl-alt-f-s (ou le "quelque chose d'autre" vous avez déplacé enregistrer) au lieu de ctrl-s. Vous avez probablement besoin de mettre Notepad++ ne pas effacer le tampon d'annulation sur enregistrer: dans le cas contraire une erreur ici serait un peu une catastrophe. Mais je mets ça de toute façon.
Pour être honnête, cela me semble un comportement attendu. Les lignes vierges sont beaucoup utilisées par moi - même pour briser le code pour le rendre plus lisible, avoir le programme me faire avoir à nouveau tab out serait très ennuyeux.
je peux comprendre cela comme une frustration avec quelque chose comme Python, mais pas avec PHP... Bien que, avant les bretelles etc etc cela pourrait être ennuyeux.
Essayer Komodo Edit cependant, c'est gratuit, et j'ai trouvé qu'il a généralement été le meilleur pour l'auto-indentation pour moi. Il semble avoir appris mon style de codage (ou y avoir les options pour tous les styles de codage et il reprend ce que vous utilisez) et indente automatiquement tout correctement.
Edit: comme vous l'avez noté dans votre réponse, le problème est avec "trailing whitespace" - Je ne sais pas trop bien Notepad++, mais la plupart des éditeurs modernes conçus pour le codage ont une option "strip trailing whitespace on save" (Je sais que Komodo fait!)