web-dev-qa-db-fra.com

Comment puis-je entrer un caractère littéral <TAB> dans IntelliJ/IDEA/PyCharm?

Ma configuration est en retrait avec quatre espaces et je souhaite le garder. De temps en temps (par exemple dans un Makefile), je souhaite saisir un caractère de tabulation littéral.

Comment puis-je forcer les IntelliJ-IDE à saisir un onglet ou un espace, alors que ce ne serait pas le cas lorsque j'appuierai sur l'onglet ou sur l'espace dans cette instance?

14
Robert Siemer

Installez le plugin pour le support Makefile: https://plugins.jetbrains.com/plugin/9333-makefile-support

Quand je l'ai essayé aujourd'hui, cela utilisait automatiquement des onglets durs dans les éditeurs pour les fichiers Makefile.

3
Weiming

Ouvrez un autre éditeur de texte, tapez une tab, puis copiez-collez-le dans l'éditeur PyCharm. Sous MacOSX, cela fonctionnait pour moi en utilisant à la fois Sublime Text 2 et TextEdit.

2
safay

Vous semblez poser deux questions ici:

1. Comment forcer IntelliJ IDE à entrer un onglet, alors que ce ne serait pas le cas lorsque j'appuierai sur l'onglet?

et 

2. Comment forcer IntelliJ IDE à saisir un espace, alors que je ne le ferais pas lorsque je frappe un espace?

Je ne comprends pas comment le deuxième cas peut survenir. Cependant, j'ai fourni une solution à cela aussi.

Cas 1. Insérez un caractère de tabulation lorsqu'un IntelliJ IDE veut le remplacer par des espaces en raison de la configuration.

Solution

Utilisez rechercher et remplacer. 

Détails

  1. Placez le curseur où vous voulez que l'onglet soit
  2. Appuyez sur la touche X
  3. Sélectionnez la X que vous venez de taper
  4. Dans le menu principal, choisissez Edition | Trouver | Remplacer pour afficher le volet Rechercher et remplacer
  5. Assurez-vous qu'il y a une X dans le champ de recherche
  6. Entrez \t dans le champ de remplacement
  7. Assurez-vous que l'option Regex est cochée
  8. Assurez-vous que l'option In Selection est cochée
  9. Cliquez sur le bouton Replace

Cas 2. Insérez un caractère d'espacement lorsqu'un IntelliJ IDE ne vous laissera pas simplement en taper un (???)

Solution

Utilisez rechercher et remplacer. 

Détails

  1. Placez le curseur où vous voulez que l'espace soit
  2. Appuyez sur la touche X
  3. Sélectionnez la X que vous venez de taper
  4. Dans le menu principal, choisissez Edition | Trouver | Remplacer pour afficher le volet Rechercher et remplacer
  5. Assurez-vous qu'il y a une X dans le champ de recherche
  6. Entrez un seul espace dans le champ de remplacement
  7. Assurez-vous que l'option In Selection est cochée
  8. Cliquez sur le bouton Replace
1
Arno Dverjging

Je ne peux penser à aucun moyen "direct". Le moyen le plus simple auquel je puisse penser est probablement d’écrire un Live Template pour le faire. Voir le page d'aide sur les modèles Live pour plus d'informations. Lorsque vous l'écrivez, vous devrez peut-être copier et coller un caractère de tabulation à partir d'une autre application.

Cependant, lorsque je l'ai essayé, IDEA l'a vu uniquement comme un texte vide et ne l'enregistrait pas. J'ai donc utilisé une variable avec la fonction "capitalize" pour mettre en majuscule un caractère de tabulation.

Screenshot of Live Template

Voici le modèle que j'ai créé et que vous pouvez coller dans vos modèles. Maintenant, je tape tab, cliquez sur le bouton Tab clé et je reçois un caractère de tabulation. Bien sûr, vous pouvez changer l'abréviation.

<template name="tab" value="$TAB$" description="Enter a tab Character" toReformat="false" toShortenFQNames="true">
  <variable name="TAB" expression="capitalize(&quot;&#9;&quot;)" defaultValue="&#9;" alwaysStopAt="false" />
  <context>
    <option name="OTHER" value="true" />
  </context>
</template>

Vous pouvez élargir l’idée pour en avoir plusieurs qui entrent dans plusieurs onglets. Par exemple, tab pour entrer 1 onglet, tab2 pour 2 onglets, etc.

Capture d'écran après utilisation: Screenshot of tabs used in code

Il peut également y avoir un moyen de pirater une macro pour le faire. Vous pouvez ensuite affecter la macro à un raccourci clavier. Je verrai si je peux trouver quelque chose et le mettre à jour si je le fais.

0
Javaru

Réponse basée sur le commentaire de @ Morfic à la question. Je pense que c’est la réponse la plus propre et la plus sensée ici, alors j’ai pensé qu’elle méritait une place comme réponse (et il va sans dire que cela a fonctionné pour moi).

Si ce sont des types de fichiers différents, vous pouvez configurer Fichier -> Paramètres -> Editeur -> Style de code -> Onglets et retraits pour chacun d’eux en utilisant l’espace ou les onglets selon votre choix.

0
Avision