Convertir des tabulations en espaces dans Notepad ++


1077

Comment convertir des tabulations en espaces dans Notepad ++?

J'ai trouvé une page Web qui suggère que c'est possible, mais je n'ai trouvé aucune information sur la façon de le faire.

J'aimerais pouvoir le faire, car certains formulaires Web ne respectent pas le code avec des onglets.


4
Retrait de tabulation = 1x caractère, retrait de l'espace = plus de 3x caractères.
Yousha Aleayoub

SciTE le fait assez facilement. Dommage qu'il ne s'étende pas aussi bien que Notepad ++.
bvj

1
Il semble que je suis entré dans la zone crépusculaire. Mon Bloc-notes ++ est toujours à triple espacement pour chaque onglet, et rien de ce que j'ai mis à jour dans l'EDI n'a changé le comportement. Je l'utilise depuis des années et je n'ai jamais rencontré ce problème avant o_o. Même le déclassement n'a pas résolu le problème. Alors oui. Je l'appelle. Fonction Twilight Zone.
kayleeFrye_onDeck

@YoushaAleayoub 1 espace = 1 espace, 1 tabulation = différent pour tout le monde.
csabinho

3
@csabinho c'est le point. Ainsi, tout le monde peut le personnaliser et le régler à sa propre taille. #Liberté :)
Yousha Aleayoub

Réponses:


989

Pour convertir des tabulations existantes en espaces, appuyez sur Edit->Blank Operations->TAB to Space.

Si, à l'avenir, vous souhaitez saisir des espaces au lieu de tabulation lorsque vous appuyez sur la touche de tabulation:

  1. Accédez à Settings->Preferences...->Language(depuis la version 7.1) ou Settings->Preferences...->Tab Settings(versions précédentes)
  2. Vérifier Replace by space
  3. ( Facultatif ) Vous pouvez définir le nombre d'espaces à utiliser à la place d'un onglet en modifiant le Tab sizechamp.

Capture d'écran de Remplacer par l'espace


29
@Algina - vous pouvez modifier les paramètres de Notepad ++ pour convertir automatiquement les tabulations en espaces - allez simplement dans: Paramètres - Préférences - Paramètres des onglets - cochez la case "Remplacer par l'espace" - comme mrzli déjà décrit dans cette réponse.
AddingColor

3
Ceci est affecté par la taille de l'onglet définie dans "Paramètres" - "Préférences" - "Paramètres de l'onglet" - "Taille de l'onglet", naturellement.
caw

6
Je veux juste ajouter que le chemin pour moi était: Settings=> Language Menu/Tab Settings=> Replace by space(Dans le coin inférieur droit). C'est presque comme l'a dit mrzli, mais j'ai eu du mal à remarquer où il était dit Tab Settings. (Je sais que je suis aveugle!)
Dzyann

11
Il n'y a pas de Paramètres -> Préférences ... -> Paramètres des onglets dans Notepad ++ v7.1 Il est maintenant sous Paramètres -> Préférences -> Langue
Dave Burton

3
J'utilise v7.2.2 et je peux changer les tabulations en espaces en utilisant Edit -> Blank Operations -> Tab to Space. Ils Tab Settingssont également maintenant Edit -> Preferences -> Language. Mais je ne comprends pas ce que Tab Settingsça fait. J'ai coché la Replace by spacecase javascript, mais j'obtiens toujours un onglet lorsque j'appuie sur la touche de tabulation. Ne devrait-il pas imprimer 4 espaces à la place?
akinuri

585

Obsolète: cette réponse est correcte uniquement pour une ancienne version de Notepad ++. La conversion entre les tabulations / espaces est maintenant intégrée dans Notepad ++ et le plugin TextFX n'est plus disponible dans la boîte de dialogue Plugin Manager.

  • Définissez d'abord le paramètre "remplacer par des espaces" dans Preferences -> Language Menu/Tab Settings.
  • Ensuite, ouvrez le document avec lequel vous souhaitez remplacer les onglets.
  • Mettez en surbrillance tout le texte ( CTRL+ A).
  • Sélectionnez ensuite TextFX -> TextFX Edit -> Leading spaces to tabs or tabs to spaces.

Remarque: assurez-vous que le plug- in TextFX Characters est installé ( Plugins -> Plugin manager -> Show plugin manager, Installedonglet). Sinon, il n'y aura pas de menu TextFX.


1
Oui, c'est beaucoup plus sensé que de faire de la recherche / remplacement, et TextFX est intégré à Notepad ++.
rjh

130
Juste une fonction mal nommée dans un menu mal placé.
spoulson

14
La meilleure réponse à la question (peut-être pas comme l'auteur le voulait) est le plugin tabs to espaces proposé ci-dessous. La question demande à tous les onglets aux espaces, alors que cette réponse ne convertit plus grands espaces. Si, par exemple, vous devez convertir des données tabulaires espacées avec des tabulations tout en conservant la position des colonnes, cette réponse ne vous aidera pas. Le plugin est la seule solution Notepad ++ à cette question que je peux voir ici.
Binary Phile

4
Je devais aller dans le gestionnaire de plugins et installer le plugin TextFX, mais après l'avoir eu, le reste des instructions était bien.
Rebecca Chernoff

12
Réponse qui semble erronée. Comme l'indique le fichier binaire, il ne convertit que les onglets principaux. Dans les versions ultérieures, il existe également une option Édition -> Opérations vides -> TAB à l'espace, mais cela ne fonctionne pas non plus comme demandé. Pour autant que je le vois, il n'y a aucun moyen actuellement dans NP ++ de sortir de la boîte. Je n'ai pas essayé le plugin mentionné par Binary Phile.
Stijn de Witt,

228

Paramètres ->Préférence ->Modifier les composants (onglet) ->Onglet Paramètres (groupe) ->Remplacer par un espace

Dans la version 5.6.8 (et supérieure):

Paramètres ->Préférences ... ->Menu Langue / onglet Paramètres ->onglet Paramètres (groupe) ->Remplacer par un espace


Merci pour la réponse. J'espérais qu'il y avait un moyen de simplement l'appliquer à un bloc de texte en surbrillance. Je préfère travailler avec des onglets. Je veux juste pouvoir passer aux espaces avant de coller du code dans un formulaire.
Helephant

3
Bien que la réponse de Dror soit certainement la «réponse», il est également utile de la connaître pour d'autres utilisations!
Marc Bollinger

Pas la réponse à la question mais la réponse que je cherchais. A bientôt, Aron.
BrezzaP

Hou la la! Tellement de rumeurs sur une tâche (apparemment) simple. Remplacer par \ t et le commutateur étendu fonctionne bien pour moi
waanders

3
La version 5.9.3 a Édition-> Opérations vierges-> TAB vers l'espace. Voir la réponse de mrzli.
koppor

148

Vous devez remplacer \t - assurez-vous d'utiliser le mode étendu!

Remplacer


22
juste pour souligner, vous devez mettre quatre espaces (ou deux, ou autre) dans la case "remplacer par".
hasen

1
vous pouvez remplacer le \ t (tab) à n'importe quel nombre d'espaces, voir wiki.answers.com/Q/How_many_spaces_is_a_tab
Dror

7
Cela ne fonctionnera correctement que pour les onglets au début d'une ligne. Par exemple, dans une ligne comme celle-ci (en utilisant [tab] pour représenter un onglet): "[tab] foo [tab] bar", avec une taille d'onglet de 4 espaces, le premier onglet doit être de 4 espaces, mais le deuxième onglet doit être seulement 1 espace.
mercator

4
@DaveE Non, le cas de Mercator est le cas universel du fonctionnement de TAB. Bien que mentionné dans un commentaire et non dans la question d'origine, ce que souhaite essentiellement l'OP est un passage transaperent des tabulations aux espaces, c'est-à-dire qu'il ne devrait pas savoir en s'occupant de la conversion, qu'une conversion a été effectuée. En prenant le texte sélectionné et en le développant au début des lignes, on pourrait implémenter un calcul et faire exactement ce que Mercator implique. Il dépend uniquement du texte développé aux limites de ligne. Une décision au cas par cas n'est donc pas nécessaire. C'est exactement ce que fait la commande expand sous UNIX
Paralife

2
Les autres réponses peuvent répondre à la question spécifique, mais je pense que cette réponse est la meilleure, car elle répond à la façon de remplacer tabulation par TOUT, pas seulement des espaces.
Kik

84

Suivez cette procédure pour convertir des espaces en tabulations ou vice-versa:

Espace - Tab


1
Disponible dans Notepad ++ v6.3.2 et plusieurs versions antérieures.
AdrianHHH

Pour la version 7.5.4, cela a fonctionné un charme pour moi, obtenant tous les caractères de tabulation (pas seulement en tête) sans installation de plugin supplémentaire
J. Paulding

Existe-t-il une touche de raccourci pour faire de même? ?
Akshat Chaturvedi

26

Je viens de publier un plugin Notepad ++ pour convertir les tabulations en espaces. Oui, il convertit les tabulations au milieu d'une ligne. Oui, il prend en compte d'autres caractères dans le champ à onglets. Vérifiez-le.


1
Que faire si j'ai une chaîne que je veux définir avec un onglet dedans? Cela change aussi mon code source et mes littéraux de chaîne?
maxwellb

Fonctionne comme un charme pour les onglets aux espaces. C'est tout ce qu'il fait, cependant.
Binary Phile

Merci, c'est super. C'est en fait la seule vraie réponse à la question qui couvre toutes les situations - les grands onglets ou les onglets intégrés, et en tenant compte de l'emplacement dans le texte et de la largeur d'onglet appropriée.
RenniePet

Cela devrait être la réponse à cette question, surtout maintenant que TextFX n'est pas dans l'installation par défaut de Notepad ++. Le plugin fonctionne parfaitement. Je vous remercie!
Brown

2
La version 5.9.3 a Édition-> Opérations vierges-> TAB vers l'espace. Voir la réponse de mrzli.
koppor

10

La manière la plus simple:

  1. Mettez en surbrillance une zone d'onglet unique
  2. Copie
  3. Afficher trouver / remplacer
  4. Coller dans le champ de recherche
  5. Cliquez dans le champ de remplacement et appuyez sur la barre d'espace
  6. Remplacez ensuite tout.

2
c'est l'approche paresseuse, qui est généralement mon MO:]
matt lohkamp

3
C'est aussi la façon de faire les choses du Bloc-notes (pas ++).
maxwellb

Dans Notepad ++ 6.5.5, en essayant TO TABS (à partir de virgules), c'était la seule approche qui fonctionnait pour moi: tapez a tab, sélectionnez-le et copy, et il est collé dans le champ replace. (Mettre /tdans la Replace withboîte n'a pas fonctionné, que je sélectionne Extendedou non Regular Expression.)
Doug_Ivison

5
@Doug_Ivison C'est parce que ce /tn'est pas une séquence d'échappement; c'est une barre oblique et une lettre t. Si vous souhaitez remplacer des onglets, utilisez \t. Par conséquent Extended (\n, \r, \t, \0, \x...).
Dan Bechard

@Dan Tu as raison ... merci. Le copier / coller fonctionne et \tfonctionne.
Doug_Ivison

7

Dans la version 5.8.7:

Paramètres du menu -> Préférences ... -> Paramètres de menu / onglet de langue -> Paramètres d'onglet (vous pouvez sélectionner la langue même pour remplacer les tabulations dans les espaces. C'est cool!) -> Décochez Utiliser la valeur par défaut et cochez Remplacer par espace .

Capture d'écran de la boîte de dialogue Préférences


Qu'entend-on par «la langue même pour remplacer les onglets»?
Peter Mortensen

Cela a encore changé dans la version 7.1 (2016-10-16) (de "Paramètres du menu / onglet" à "Langue" )
Peter Mortensen

7

Je n'ai pas lu toutes les réponses, mais je n'ai pas trouvé la réponse que je cherchais.

J'utilise Python et je ne veux pas faire de recherche / remplacement ou d'opérations vides à chaque fois que je veux compiler du code ...

La meilleure solution pour moi, c'est que ça se passe à la volée !

Voici la solution simple que j'ai trouvée :

Aller à:

  1. Paramètres du menu -> Préférences
  2. Choisissez les paramètres de l'onglet
  3. Choisissez votre type de langue (par exemple Python)
  4. Cochez la case «Utiliser la valeur par défaut»
  5. Cochez la case «Remplacer par un espace»

Entrez la description de l'image ici


Cela a encore changé dans la version 7.1 (2016-10-16) (de "Paramètres du menu / onglet" à "Langue" (et c'était "Paramètres de l'onglet" dans une version encore plus ancienne (comme dans cette réponse))).
Peter Mortensen

3

Il n'y a pas d'onglet «Modifier les composants» dans la configuration des préférences. Vous devez aller dans 'Menu Langue / Paramètres de l'onglet', il y a une option pour contrôler le comportement de l'onglet. Vous pouvez même le configurer pour qu'il fonctionne différemment selon la langue du fichier.


Et après l'avoir défini, utilisez TextFX (TextFX -> TextFX Edit -> Interlignage des espaces vers les tabulations ou tabulations vers les espaces) comme décrit précédemment. C'est certainement la voie à suivre dans la dernière version de Npp.
Cees Meijer

Cela a encore changé dans la version 7.1 (2016-10-16) (de "Paramètres du menu / onglet" à "Langue" )
Peter Mortensen

2

Le plugin CLR Tabs to Spaces devrait être une bonne option. Je l'ai utilisé et cela a fonctionné.


victoire sans faille! mettez en surbrillance le texte, les plugins> CLR Tabs to Spaces> Tabs to Spaces. ce plugin prend en compte le nombre d'espaces requis pour l'onglet, c'est-à-dire que votre sortie espacée est exactement la même que votre sortie à onglets.
sonjz

2

Je suis cette manière simple:

  • Double-cliquez (surligner) seul onglet (par exemple: \ t ).
  • Appuyez sur ctrl + F( Find/repace).
  • Vous ne pouvez pas voir \ t ou une zone d'onglet unique sur le Find What:champ. Mais ne t'inquiète pas.
  • Entrez un champ spacedans Replace With:.
  • Cliquez sur Replce All .

Terminé! :)

Voir:

Remplacez * Tab * par * Space * dans <code> Notepad ++ </code>

Remarque: Cette méthode s'applique également à la casse inverse (remplacer un espace par une tabulation ).


Si vous sélectionnez "Etendu" dans le mode de recherche, vous pouvez entrer \ t et il trouvera également l'onglet. Le problème avec cette solution est qu'elle n'ajuste pas l'espacement de l'onglet, c'est-à-dire que si un onglet a un maximum de 5 espaces, votre texte avant l'onglet peut être de 1 à 4 espaces ...
sonjz

1
Je ne sais pas pourquoi cette réponse a été rejetée, mais pour moi, c'est peut-être la meilleure car elle incarne ce qui suit: KISS. Évidemment, il ne couvrira jamais tous les cas d'angle et la configuration à gogo qu'un plug-in apporterait, mais là encore, avoir à s'appuyer sur un plug-in pour quelque chose d'aussi simple est tout simplement fou pour le cas général. BAISER tout le chemin.
luis.espinal


1

Paramètres> Préférences> Paramètres des onglets Cochez la case "remplacer par un espace". Notez au-dessus, il y a la taille de l'onglet: 4 Cliquez sur les quatre et une fenêtre s'ouvrira avec l'option pour changer la valeur en un autre entier.

Mettez votre entier souhaité et appuyez sur la touche ENTRÉE.

Là vous l'avez <3.


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.