383 votes

Comment afficher la numérotation des lignes dans nano lors de l'ouverture d'un fichier ?

Existe-t-il un moyen de dire à nano d'afficher automatiquement la numérotation des lignes chaque fois que j'ouvre un fichier ?

393voto

Paul Beckingham Points 7460

La combinaison de touches permettant d'afficher le numéro de la ligne en cours lorsque vous utilisez nano est la suivante CTRL + C .

Alternativement, pour afficher la position du numéro de la ligne et de la colonne, vous pouvez simplement utiliser la fonction -c lors du lancement de nano, c'est-à-dire

nano -c [filename]

Pour rendre cela permanent, nano utilise une configuration dans votre dossier personnel ~/.nanorc

Ainsi, pour afficher toujours les numéros de ligne lors de l'utilisation de nano...

nano ~/.nanorc

(ne vous inquiétez pas s'il est vide - ce fichier n'existe pas par défaut)

type set constantshow

N.B. la syntaxe dépréciée set const est montré dans l'animation

Sauvez

enter image description here


animation1

Puisque vous utilisez des numéros de ligne, souvenez-vous que vous pouvez utiliser ALT + G pour passer à un numéro de ligne spécifique.

109voto

Gregor Godler Points 1101

J'ai accidentellement trouvé un joli raccourci : Alt + # ce qui, dans certaines dispositions de clavier, peut être fait avec Alt + Shift + 3 .

click me gently

86voto

topher217 Points 1097

Selon la page de manuel de GNU nano 2.9.3 (également vérifié sur la version 4.8) , vous avez deux options pour ouvrir automatiquement avec les numéros de ligne affichés et une pour les activer/désactiver une fois que nano est ouvert :

Drapeaux de ligne de commande

Vous pouvez utiliser le -l o --linenumbers drapeaux.

       **\-l**, **\-****\-l****inenumbers**
              Display line numbers to the left of the text area.

par exemple
nano -l foo.txt
nano --linenumbers foo.txt

Via le(s) fichier(s) de configuration

Alternativement, selon la page de manuel de nanorc, vous pouvez ajouter set linenumbers en ~/.nanorc , $XDG_CONFIG_HOME/nano/nanorc o ~/.config/nano/nanorc .

INITIALIZATION FILE nano will read two configuration files: first the system's nanorc (if it exists), and then the user's nanorc (if it exists), either ~/.nanorc or $XDG_CONFIG_HOME/nano/nanorc or ~/.**config**/nano/nanorc, whichever is encountered first. See nanorc(5) for more information on the possible contents of those files.

       **set** **linenumbers**
          Display line numbers to the left of the text area.

Donc le contenu de mon fichier ~/.nanorc est simplement :

 1 set **linenumbers**
 2

Par le biais d'une liaison de touches

Ce n'est pas exactement ce que l'OP demandait, mais pour être complet, vous pouvez aussi activer/désactiver le numéro de ligne via le raccourci clavier par défaut (depuis la v4.8) de Alt+N .

Vous pouvez également relier cette clé via la méthode mentionnée dans le fichier de manuel :

REBINDING KEYS Key bindings can be changed via the following three commands:

      **bind** key function menu
             Rebinds the given key to the given function in the given menu (or in all menus where the function exists when **all** is used).

The format of key should be one of:

          **^**X     where X is a Latin letter, or one of several ASCII characters (@, \], \\, ^, \_), or the word "Space".  Example: ^C.

          **M-**X    where X is any ASCII character except \[, or the word "Space".  Example: M-8.

          **Sh-M-**X where X is a Latin letter.  Example: Sh-M-U.  By default, each Meta+letter keystroke does the same as the corresponding Shift+Meta+letter.  But when any Shift+Meta bind is made, that  will
                 no longer be the case, for all letters.

          **F**N     where N is a numeric value from 1 to 24.  Example: F10.  (Often, **F13** to **F24** can be typed as **F1** to **F12** with Shift.)

          **Ins** or **Del**.

       Rebinding **^M** (Enter) or **^I** (Tab) is probably not a good idea.  On some terminals it's not possible to rebind **^H** (unless **\--raw** is used) because its keycode is identical to that of the Backspace key.

       Valid function names to be bound are:

...

**line****numbers**
            Toggles the display of line numbers in front of the text.

Concernant les fichiers de configuration alternatifs :

En réponse aux commentaires sur les fichiers de configuration alternatifs, d'après la description de l'application man nanorc :

During startup, **nano**  will  first
       read  the system-wide settings, from **/****etc****/nanorc** (the exact path might be different on your
       system), and then the user-specific settings,  either  from  **~/.nanorc**  or  from  $XDG\_CON
       FIG\_HOME**/nano/nanorc** or from **~/.config/nano/nanorc**, whichever is encountered first.

En général, je ne conseille pas aux autres de modifier le fichier de configuration du système, sauf si vous avez une bonne raison de le faire, car il sera probablement écrasé lors des mises à jour et ne sera probablement pas inclus dans les sauvegardes du système, qui ne comprennent généralement que le répertoire d'origine.

Utilisation avec sudo

Comme indiqué par un commentateur, cela peut ne pas fonctionner comme prévu si vous devez utiliser sudo avec nano, par ex. sudo nano myFile . C'est parce que lorsque vous utilisez sudo, vous faites tout ce qui suit sudo comme "super utilisateur", d'où le nom (super utilisateur do ..). Si vous avez modifié votre fichier de configuration non super utilisateur (par ex. ~/.nanorc o /home/myUserName/.nanorc ) cela ne sera pas exécuté lorsque vous utilisez sudo car vous n'exécutez pas nano en tant que myUserName plus longtemps. Vous avez donc quelques options.

  1. Le plus simple est d'utiliser l'option -l et il fonctionnera tel quel.
  2. Copiez le contenu de votre ~/.nanorc a /root/.nanorc car il représente le répertoire personnel du super utilisateur. En supposant que vous avez votre ./nanorc comme vous le souhaitez, et que vous ne disposez pas déjà d'une /root/.nanorc alors vous pouvez simplement exécuter sudo cp /home/myUserName/.nanorc /root/ . Notez que cela écrasera tout fichier nanorc existant dans le répertoire /root et vous devez remplacer myUserName par votre nom d'utilisateur réel. Je n'ai pas testé, mais je suppose que vous ne pouvez pas utiliser l'opérateur tilde, c'est-à-dire ``sudo cp ~/.nanorc /root/ as it would likely interperet this to be /root` plutôt que votre nom d'utilisateur car encore une fois, vous lui dites "super user do cp from home directory".

27voto

deCastongrene Points 174

Compiler Nano à partir des sources :

git clone git://git.savannah.gnu.org/nano.git;cd nano;./autogen.sh;./configure;sudo make install 

Ajoutez ensuite les éléments suivants à votre .nanorc fichier :

set linenumbers

Vous pouvez utiliser Meta + # pour activer et désactiver les numéros de ligne à partir de Nano.

13voto

Si nano -c filename ne fonctionne pas, utilisez nano filename entonces Ctrl + _ . Il vous demandera le numéro de la ligne à laquelle vous devez vous rendre.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X