Comment faire le caractère de tabulation 4 espaces au lieu de 8 espaces en nano?

152

Lorsque j'appuie sur TAB dans l' nanoéditeur, le curseur saute avec 8 espaces comme ceci:

def square(x):
        return x * x
def cube(y):
        return y * y * y

comment puis-je définir la largeur de la tabulation à 4 espaces pour s'afficher comme ceci:

def square(x):
    return x * x
def cube(y):
    return y * y * y
Satan déchu
la source
Nano est un éditeur assez basique. Il y a de fortes chances que cela ne supporte tout simplement pas cela.
millimoose
umm non seulement en nano, mais aussi en retrait de 8 espaces lorsque j'utilise l'interpréteur python dans Terminal.
Fallen Satan
2
Ceci est répondu sur SuperUser et doit être fermé en double: superuser.com/questions/110421/tab-character-width-in-terminal
millimoose
6
@millimoose, changer les taquets de tabulation dans le terminal n'affecte pas le nano. Cette question devrait porter spécifiquement sur nano ou sur la configuration des taquets de tabulation pour Python, mais pas sur les deux et pas sur la définition interactive des taquets de tabulation avec la tabcommande, qui n'affecte pas tous les programmes.
Chris Page

Réponses:

254

Si vous utilisez nano avec un langage comme python (comme dans votre exemple), c'est également une bonne idée de convertir les tabulations en espaces.

Modifiez votre fichier ~ / .nanorc (ou créez-le) et ajoutez:

set tabsize 4
set tabstospaces

Si vous avez déjà un fichier avec des onglets et que vous souhaitez les convertir en espaces, je vous recommande la expandcommande (shell):

expand -4 input.py > output.py
Sven Rojek
la source
J'utilise mint et quand je règle la taille de l'onglet de 8 à 4 dans / etc / nanorc et que je reviens au fichier, j'obtiens toujours 8 espaces dans l'onglet, j'ai même essayé de copier ce fichier nanorc dans ~ /. mais cela ne fonctionne pas, terminal fermé et rouvert, mais je ne peux toujours pas obtenir 4 espaces sur l'onglet à moins d'utiliser nano -T4. Merci
Alex
@Alex vérifiez que votre fichier commence par un point .nanorcnon nanorc. Cela doit être placé dans le répertoire personnel de vos utilisateurs, c'est-à-dire /home/your-username/.nanorc.
Sven Rojek
1
Merci, j'ai fini par créer un autre .nanorc différent de celui de / etc, je l'ai placé dans le répertoire home et cela a fonctionné. Ce sont les 3 seules lignes que j'ai incluses dans le nouveau .nanorc pour toute personne intéressée: définir nowrap, définir tabsize 4 et définir tabstospaces
Alex
5
S'il s'agit de votre jouet, vous pouvez rendre cette modification disponible à l'échelle du système, il vous suffit de modifier le fichier global /etc/nanorc. Il existe quelques autres options dont vous pourriez profiter.
fcm
Salut @Alexey. Cette commande Linux Shell fonctionne pour tous les fichiers, mais assurez-vous de spécifier un autre fichier de sortie, sinon votre fichier sera vidé.
Sven Rojek
91

Indicateur de ligne de commande

De man nano:

-T cols (--tabsize=cols)
    Set the size (width) of a tab to cols columns.
    The value of cols must be greater than 0. The default value is 8.
-E (--tabstospaces)
    Convert typed tabs to spaces.

Par exemple, pour définir la taille de l'onglet sur 4, remplacer les onglets par des espaces et éditer le fichier "foo.txt", vous exécuteriez la commande:

nano -ET4 foo.txt

Fichier de configuration

De man nanorc:

set tabsize n
    Use a tab size of n columns. The value of n must be greater than 0.
    The default value is 8.
set/unset tabstospaces
    Convert typed tabs to spaces.

Modifiez votre ~/.nanorcfichier (créez-le s'il n'existe pas) et ajoutez-y ces commandes. Par exemple:

set tabsize 4
set tabstospaces

Nano utilisera ces paramètres par défaut à chaque lancement, mais les indicateurs de ligne de commande les remplaceront.

Pommes
la source
umm ... je ne trouve pas le fichier .nanorc dans le répertoire ~ /
Fallen Satan
1
OK, pas grave. Je trouve nanorc dans le répertoire / etc. merci bien
Fallen Satan
5
@FallenSatan, vous devez généralement éviter de modifier / etc / nanorc, sauf si vous devez effectuer des personnalisations à l'échelle du système. Créez ~ / .nanorc s'il n'existe pas déjà et mettez-y vos personnalisations.
Chris Page
1
Notez que dans la réponse ci-dessus, vous devez ajouter la ligne "set tabsize 4", et non "set tabspace 4"
Thomas N
1
sudo nano ne prendra pas ~ / .nanorc pour une raison évidente; donc l'indicateur de ligne de commande est une solution plus pratique au problème.
user608800
11

Dans nano 2.2.6, la ligne dans ~ / .nanorc pour faire cela semble être

set tabsize 4

La configuration de tabspace m'a donné l'erreur: "Indicateur inconnu" tabspace ""

Harry Detering
la source
4

Pour les futurs téléspectateurs, il y a une ligne dans mon fichier / etc / nanorc près de la ligne 153 qui dit "set tabsize 8". Le mot devra peut-être être tabsize au lieu de tabspace. Après avoir remplacé 8 par 4 et décommenté la ligne, cela a résolu mon problème.

Caleb
la source
0

Pour tous ceux qui pourraient tomber sur cette vieille question ...

Il y a une chose qui, à mon avis, doit être réglée.

~/.nanorcest utilisé pour appliquer vos paramètres utilisateur spécifiques à nano, donc si vous éditez des fichiers qui nécessitent l'utilisation de sudo nanopour les autorisations, cela ne fonctionnera pas.

Lorsque sudovous utilisez vos fichiers de configuration utilisateur personnalisés ne seront pas chargés lors de l'ouverture d'un programme, car vous n'exécutez pas le programme à partir de votre compte, donc aucune de vos modifications de configuration ~/.nanorcne sera appliquée.

Si c'est la situation dans laquelle vous vous trouvez (voulant exécuter sudo nano et utiliser vos propres paramètres de configuration), vous avez trois options:

  • utilisation des indicateurs de ligne de commande lors de l'exécution sudo nano
  • éditer le /root/.nanorcfichier
  • modification du /etc/nanorcfichier de configuration globale

Gardez à l'esprit qu'il /etc/nanorcs'agit d'un fichier de configuration global et qu'en tant que tel, il affecte tous les utilisateurs, ce qui peut ou non être un problème selon que vous disposez d'un système multi-utilisateur.

De plus, les fichiers de configuration utilisateur remplaceront le fichier global, donc si vous deviez modifier /etc/nanorcet ~/.nanorcavec des paramètres différents, lorsque vous l'exécuterez, nanoil chargera les paramètres à partir de ~/.nanorcmais si vous exécutez, sudo nanoil chargera les paramètres à partir de /etc/nanorc.

Il en va de même pour /root/.nanorccela remplacera /etc/nanorclors de l'exécutionsudo nano

L'utilisation d'indicateurs est probablement la meilleure option, sauf si vous avez beaucoup d'options.

typedef Miles_Williams MILO
la source