logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:editeurs:nano [07/04/2014 18:35]
captnfab [Utilisation de base]
doc:editeurs:nano [12/09/2020 19:47]
Beta-Pictoris [Liens :]
Ligne 2: Ligne 2:
  
   * Objet : L'​éditeur de textes nano.   * Objet : L'​éditeur de textes nano.
-  * Niveau requis : {{tag>​débutant}}+  * Niveau requis : {{tag>​débutant ​avisé}}
   * Commentaires : //Un éditeur simple d'​utilisation pour, entre autres choses, administrer son système.//   * Commentaires : //Un éditeur simple d'​utilisation pour, entre autres choses, administrer son système.//
   * A savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * A savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
-  * Suivi : {{tag>​à-tester}} ​ +  * Suivi :  
-    * Création par **smolski** 12/06/2009+    * Création par [[user>smolski]] le 12/06/2009 
 +    * Révision par [[user>​milou]] et [[user>​paskal]] le 11/​10/​2015 
 +    * Tests réalisés par [[user>​milou]] le 11/10/2015
   * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=1448 | Lien vers le forum concernant ce tuto]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))   * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=1448 | Lien vers le forum concernant ce tuto]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
  
Ligne 17: Ligne 19:
  
 Comme son nom le laisse deviner (le terme "//​nano//"​ représente une toute petite unité), il s'agit d'une application : Comme son nom le laisse deviner (le terme "//​nano//"​ représente une toute petite unité), il s'agit d'une application :
-  - très simple, +  - plutôt ​simple, ​mais néanmoins puissant. 
-  - possédant ​peu de fonctions ​(comparé ​à la commande ​d'​édition [[:​doc:​editeurs:​vim:​]] ​par exemple)+  - possédant ​moins de fonctions comparé ​aux commandes ​d'​édition [[:​doc:​editeurs:​vim:​]] ​ou [[:​doc:​editeurs:​emacs:​]].
  
 mais qui convient tout à fait lorsque l'on commence à utiliser un éditeur de texte ou que nos besoins ne sont pas trop grands. mais qui convient tout à fait lorsque l'on commence à utiliser un éditeur de texte ou que nos besoins ne sont pas trop grands.
  
-''​Un //​éditeur ​de texte// n'est pas un //​traitement de texte//.''​+Voici une liste de ses fonctionnalités les plus intéressantes : 
 +  - Annulation multiple. 
 +  - Coloration syntaxique 
 +  - Auto-Complétion 
 +  - Correcteur orthographique 
 +  - Macro
  
-===== Édition d'un fichier ​=====+<note important>​Un //éditeur de texte// n'est pas un //​traitement de texte//​.</​note>​ 
 + 
 +===== Utilisation ​=====
  
 Pour une édition en tant qu'​utilisateur du fichier ''​monfichier''​ Pour une édition en tant qu'​utilisateur du fichier ''​monfichier''​
Ligne 30: Ligne 39:
 <code user>​nano monfichier</​code>​ <code user>​nano monfichier</​code>​
  
-Pour une édition en tant que root du fichier ''​monfichier''​+Pour une édition ​[[doc:​systeme:​superutilisateur|en tant que root]] du fichier ''​monfichier''​
 <code root>​nano monfichier</​code>​ <code root>​nano monfichier</​code>​
  
-=== Commandes de base ===+<note warning>​Si certaines commandes utilisant la touche <​key>​Alt</​key>​ ne fonctionnent pas, utilisez la touche <​key>​Echap</​key>​ à la place.</​note>​
  
-|  Opération ​ |  Raccourcis clavier ​ | +==== Les commandes principales ====
-| Quitter  |  ''​Ctrl''​ + ''​x'' ​ | +
-| Sauvegarder ​ |  ''​Ctrl''​ + ''​o'' ​ |+
  
-=== Commandes avancées ===+Ces raccourcis clavier s'​appliquent pour un clavier Azerty Français
  
-| Opération ​ |  Raccourcis clavier ​ | +=== Commandes ​de base ===
-| Couper ​ |  ''​Ctrl''​ + ''​k'' ​ | +
-| Coller ​ |  ''​Ctrl''​ + ''​u'' ​ | +
-| Rechercher ​ |  ''​Ctrl''​ + ''​w'' ​ | +
-| Remplacer ​ |  ''​Ctrl''​ + ''​w''​ suivi de ''​Ctrl''​ + ''​r'' ​ | +
-| Page précédente ​ |  ''​Ctrl''​ + ''​y'' ​ | +
-| Page suivante ​ |  ''​Ctrl''​ + ''​v'' ​ | +
-| Justifier ​ |  ''​Ctrl''​ + ''​j'' ​ |+
  
 +^   //​Opération// ​ ^   //​Raccourcis clavier// ​  ^
 +| Afficher l'​aide  |<​key>​C+g</​key>​ |
 +| Sauvegarder avec confirmation ​ |<​key>​C+o</​key>​ puis valider par <​key>​Entrée</​key>​ |
 +| Sauvegarder sans confirmation ​ |<​key>​C+s</​key>​ |
 +| Fermer l'​espace en cours / Quitter ​ |<​key>​C+x</​key> ​ |
  
 +=== Commandes de déplacement rapide ===
  
-===== nano par l'exemple - TP 01 =====+^   //​Déplacer le curseur// ​ ^   //​Raccourcis clavier// ​  ^ 
 +| vers le haut, le bas, la gauche, la droite ​ |<​key>​C+p</​key>​ , <​key>​C+n</​key>​ , <​key>​C+b</​key>​ , <​key>​C+f</​key>​ (Previous , Next , Backward , Forward) | 
 +| au début de la ligne, ​ la fin de la ligne  |<​key>​C+a</​key>​ , <​key>​C+e</​key>​ | 
 +| à l'écran précédent,​ à l'​écran suivant ​ |<​key>​C+y</​key>​ , <​key>​C+v</​key>​ | 
 +| au début du fichier, à la fin du fichier |<​key>​Alt+\</​key>​ , <​key>​Alt+/</​key>​ |
  
-==== À savoir : ==== 
  
-  * commande linux : [[:​doc:​systeme:​mkdir|COMMANDE MKDIR]] DÉBUTANT Création ​de répertoire en ligne de commande +=== Commandes ​de déplacement avancé ===
-  * commande linux : [[:​doc:​systeme:​ls|COMMANDE LS]] DÉBUTANT Commande de listage des répertoires +
-  * commande linux : [[:​doc:​systeme:​cat|COMMANDE CAT]] DÉBUTANT Commande pour ouvrir la lecture d'un fichier. +
-  * commande linux : [[:​doc:​systeme:​rm|COMMANDE RM]] DÉBUTANT Commande pour supprimer des fichiers.+
  
 +^   //​Déplacer le curseur// ​ ^   //​Raccourcis clavier// ​  ^
 +| d'un mot en avant, d'un mot en arrière ​ |<​key>​C+Espace</​key>​ , <​key>​Alt+Espace</​key>​ |
 +| au paragraphe précédent,​ au paragraphe suivant ​ |<​key>​C+Up</​key>​ , <​key>​C+Down</​key> ​ |
 +| au début du paragraphe, à la fin du paragraphe ​ |<​key>​Alt+(</​key>​ , <​key>​Alt+)</​key> ​ |
 +| sur la ligne l (et sur la colonne c)   ​|<​key>​A+g</​key>​ puis entrer le numéro de la ligne (et de la colonne) |
 +| sur le crochet (accolade, parenthèse,​ ... ) adjoint à celui sous le curseur ​  ​|<​key>​A+]</​key> ​  |
  
 +=== Commandes de suppression ===
  
-==== But de l'​exercice ====+^   //​Supprimer// ​ ^   //​Raccourcis clavier// ​  ^ 
 +| le caractère se trouvant sous le curseur ​ |<​key>​C+d</​key> ​ | 
 +| le caractère se trouvant à la gauche du curseur ​ |<​key>​C+h</​key> ​ | 
 +| le mot se trouvant à la gauche du curseur ​ |<​key>​S+C+Suppr</​key>​ | 
 +| le mot se trouvant à la droite du curseur ​ |<​key>​C+Suppr</​key>​ | 
 +| la ligne courante ​ |<​key>​Alt+Suppr</​key>​ |
  
-<note tip>Dans cet exercice, remplacer ​''<​mon_user>''​ par votre pseudo ''​user''​ personnel. \\  +=== Commandes d'annulation ===
-:-) +
-</​note>​ +
- \\  +
- \\  +
-Dans notre ''/​home/<​mon_user>''​ +
-  - nous allons créer un répertoire **test** +
-  - puis créer un fichier nommé **test1** +
-  - et dans ce fichier //test1// nous rédigerons ce texte //test nano//+
  
-==== Créez un répertoire ====+^   //​Opération// ​ ^   //​Raccourcis clavier// ​  ^ 
 +| Annuler la dernière opération ​ |<​key>​A+u</​key>​ | 
 +| Refaire la dernière opération annulée ​ |<​key>​A+e</​key>​ |
  
-Ouvrir un terminal sous la session de votre user puis tapez et validez : +=== Commandes d'​édition utilisant le presse-papiers ===
-<code user>​mkdir /​home/<​mon_user>/​test</​code>​+
  
-Vérifiez la présence ​de ce répertoire en validant ​la commande : +^   //​Opération// ​ ^   //​Raccourcis clavier// ​  ^ 
-<code user>ls /home/<mon_user>/</code+| Marquer le texte à partir ​de la position courante du curseur ​ |<​key>​A-a</​key>​ | 
-   test+| Couper la ligne courante ou la zone sélectionnée ​ |<key>C-k</key> | 
 +| Couper le texte à partir de la position courante du curseur jusqu'​à la fin du fichier ​ |<key>A-t</key> | 
 +| Copier la ligne courante ou la zone sélectionnée ​ |<​key>​A+^</key| 
 +| Insérer le contenu du presse-papiers à la position du curseur ​ |<​key>​C-u</​key>​ |
  
-==== Créez ​et rédigez un fichier user ====+Pour sélectionner du texte, le copier ​et le coller :
  
-Avec nanocréez le fichier **test1** dans le répertoire **test** ainsi : +  - Se déplacer avec les flèches <​key>​Up</​key>​ <​key>​Down</​key>​ <​key>​Left</​key>​ <​key>​Right</​key>​ pour se placer à l'​endroit voulu, 
-<code user>nano /home/<mon_user>/test/test1</code+  - Faire <​key>​A-a</​key>​ pour marquer ​le début de la sélection, 
-et écrivez les mots : +  - Se déplacer avec les flèches ​<key>Up</key> <​key>​Down<​/key> ​<key>Left</key> <​key>​Right<​/key> pour sélectionner la zone de texte à copier, 
-   test nano+  - Copier cette sélection avec <​key>​A</key>+<​key>​^</​key>,​ 
 +  - Se déplacer à l'​endroit voulu pour le collage, 
 +  - Coller avec <​key>​C-u</​key>​.
  
-  - Validez par ''​Ctrl o''​ +=== Commandes d'insertion ===
-  - Quittez par ''​Ctrl x''+
  
-Comme le signale zodar (le chieur mais attentif quand même !) sur le forum, nous pouvons, sans enregistrer,​ passer directement ​à la phase : +^   //​Opération// ​ ^   //​Raccourcis clavier// ​  ^ 
-  * Quittez par ''​Ctrl x''+| Insérer une tabulation ​à la position du curseur |<​key>​C+i</​key> ​ 
 +| Insérer un passage à la ligne à la position du curseur |<​key>​C+m</​key>​ | 
 +| Insérer un autre fichier dans l'espace en cours  |<​key>​C+r</​key>​ puis entrer le chemin du fichier | 
 +| Auto-Complétion ​ |<​key>​C+]</​key>​ |
  
-Il nous sera alors demandé ​de validez nos modifications par : +=== Commandes ​de recherche et remplacement ===
-   ​o ​oui +
-   ​n ​non +
-//Pas belle la vie ?//+
  
-==== Vérification ====+^   //​Opération// ​ ^   //​Raccourcis clavier// ​  ^ 
 +| Rechercher une chaîne ou une expression rationnelle ​ |<​key>​C+w</​key>​ puis entrer la chaîne à rechercher | 
 +| Rechercher la suivante ​ |<​key>​Alt+w</​key>​ | 
 +| Rechercher la précédente ​ |<​key>​Alt+q</​key>​ | 
 +| Remplacer une chaîne ou une expression rationnelle |<​key>​C+\</​key>​ puis entrer la chaîne à rechercher, puis la chaîne à remplacer ​ |
  
-Vérifiez par : +=== Commandes spéciales ===
-<code user>cat /​home/<​mon_user>/​test/​test1</​code>​ +
-   test nano+
  
-Et voilà !+^   //​Opération// ​ ^   //​Raccourcis clavier// ​  ^ 
 +| Indenter la ligne courante ou les lignes sélectionnées |<​key>​A+}</​key>​ | 
 +| Désindenter la ligne courante ou les lignes sélectionnées |<​key>​A+{</​key>​ | 
 +| Commenter ou décommenter la ligne courante ou les lignes sélectionnées |<​key>​A+3</​key> ​ | 
 +| Démarrer/​Arrêter l'​enregistrement d'une macro  |<​key>​A+:</​key> ​ | 
 +| Lancer la macro  |<​key>​A+;</​key> ​ | 
 +| Lancer le correcteur orthographique ( [[:​doc:​editeurs:​nano#​exemple-de-fichier-nanorc|Voir aussi le fichier nanorc]] )  |<​key>​C+t</​key> ​ | 
  
-==== Suppression des données de l'​exercice ==== 
- 
-Pour supprimer ce répertoire test et le fichier test1 qui y est contenu, tapez : 
-<code user>rm -r /​home/<​mon_user>/​test</​code>​ 
-Puis vérifiez cette suppression avec la commande ls. 
- 
-//Hop là !// :-D 
  
 ===== Utilisation avancée ===== ===== Utilisation avancée =====
  
-==== Commandes clavier ​====+==== Options ​====
  
-=== Déplacements ​===+=== Option -c ===
  
-    * Ctrl P : déplace ​le curseur vers le haut +Pour que nano affiche en permanence les coordonnées ligne/​colonne,​ il est possible de le lancer avec l'​option ''​-c''​ 
-    * Ctrl N déplace le curseur vers le bas +<​code>​nano -c <​fichier></​code>​
-    * Ctrl F : déplace le curseur vers la droite +
-    * Ctrl B : déplace le curseur vers la gauche+
  
-    * Ctrl espace : se déplace d'un mot en avant +=== Option -m === 
-    * Alt Maj espace : se déplace d'un mot en arrière +Pour utiliser la souris dans le terminal, lancer nano avec l'​option ''​-m'​'
-    * Ctrl Y : écran précédent +
-    * Ctrl V : écran suivant+
  
-    * Ctrl A : saute au début ​de la ligne +Par défaut gpm donne le support ​de l'​utilisation ​de la souris dans le terminal ​(+ copier-coller en un clic), nous allons voir comment faire pour positionner le curseur ​à l'​endroit ​du clic. 
-    * Ctrl E : saute à la fin de la ligne +
-    * Alt : saute au début du paragraphe +
-    * Alt : saute à la fin du paragraphe +
-    * AltGr \ : saute au début du fichier +
-    * Alt Maj / : saute à la fin du fichier+
  
-=== Recherche ===+Pour que nano place le curseur où vous cliquez :
  
-Pour rechercher une <//​chaîne de caractères//>​ : +Installer ​[[doc:autres:gpm | gpm]]
-    * Ctrl W puis tapez la <//​chaîne//>​ cherchée et [Validez]. +
-Ainsi, **nano** vous déplacera jusqu'​à la première occurrence de la chaîne trouvée. +
-    * Alt W Pour répéter la dernière recherche effectuée.+
  
-=== Édition ===+Lancer nano avec l'​option -m:
  
-    * Ctrl K : Couper la ligne courante +<​code>​nano -m <​fichier></​code>​
-    * Alt ^ : Copier la ligne courante +
-    * Ctrl U : Coller+
  
-==== nano Options ====+=== Option ​-===
  
-=== Option -c === +L'​option permet de sauvegarder ​l'ancienne version ​du fichier. Il est donc possible ​de récupérer ​cette version en cas d'​erreur
- +Le fichier sera renommé avec le suffixe **~**, on retrouvera alors le fichier ''​<fichier>''​ et ''​<fichier>~'' ​sa sauvegarde.
-Vous pouvez ouvrir un fichier simplement : +
-<code user>​nano <​fichier></​code>​ +
- +
-Ou bien l'ouvrir avec la possibilité de connaître en continue les coordonnées Ligne/​Colonne ​du pointeur : +
-<code user>​nano -c <fichier></​code>​ +
- +
-==== Créer un alias ==== +
- +
-=== Créer un alias de cette option pour votre user seul=== +
- +
-Editez : +
-<code user>nano /.bashrc</code> +
-Et tapez la ligne d'alias suivante : +
-   alias nano='nano -c' +
- +
-=== Créer un alias de cette option pour tout le monde===+
  
-Comme on sait jamais on prend pas de risque en faisant d'​abord une copie : +Lancer ​nano avec l'option ​-B:
-<code root>cp /​etc/​bash.bashrc /​etc/​bash.bashrc.back</​code>​ +
-et on copie  la ligne d'​alias en fin de fichier : +
-<code root>​echo "​alias ​nano='nano -c'"​ >> /​etc/​bash.bashrc</​code>​ +
-Et quand on est content, on fait de la place en supprimant le fichier de sauvegarde ​: +
-<code root>rm /​etc/​bash.bashrc.back</​code>​+
  
-//De phlinux et captnfab...//​ :-D+<​code>​nano -B <​fichier><​/code>
  
-===== nano avancé - Configuration ​=====+==== Configuration ====
  
-On peut aussi configurer nano ainsi :+On peut configurer nano ainsi :
  
 En local en créant un : En local en créant un :
Ligne 201: Ligne 182:
 <code root>​nano /​etc/​nanorc</​code>​ <code root>​nano /​etc/​nanorc</​code>​
  
-Gagner de la place à l'​écran en n'​affichant pas les raccourcis, décommenter la ligne **set nohelp** : +<file bash nanorc>​ 
-<file bash /etc/nanorc>​ +Utiliser le correcteur orthographique GNU Aspell
-## Don't display the helpful shortcut lists at the bottom of the screen+set speller "​aspell -x -c"
-#set nohelp +
-</​file>​+
  
-Faire disparaître ​la barre de status, décommentez **set quickblank** : +# Ctrl+Espace s'​arrêtera d'​abord après le dernier mot de la ligne courante avant de passer sur la ligne suivante 
-<file bash /​etc/​nanorc>​ +set afterends
-## Do quick statusbar blanking. ​ Statusbar messages will disappear after +
-## 1 keystroke instead of 26.  Note that "​const"​ overrides this. +
-## +
-#set quickblank +
-</​file>​+
  
-A l'​inverse on peut préférer avoir un affichage plus complet comme le défilement de numéros de lignes, colonnes, etc... \\  +Auto-Indentation
-Et si vous consultiez : +
-<code user>man nanorc</​code>​ +
- +
-Essayer, c'est l'​adopter ! Merci **tux12** ;-) +
- +
-==== Exemple de fichier nanorc : ==== +
- +
-<file bash /​etc/​nanorc>​ +
-## Sample initialization file for GNU nano. +
-## +
-## Please note that you must have configured nano with --enable-nanorc +
-## for this file to be read!  Also note that this file should not be in +
-## DOS or Mac format, and that characters specially interpreted by the +
-## shell should not be escaped here. +
-## +
-## To make sure a value is disabled, use "unset <​option>"​. +
-## +
-## For the options that take parameters, the default value is given. +
-## Other options are unset by default. +
-## +
-## Quotes inside string parameters don't have to be escaped with +
-## backslashes. ​ The last double quote in the string will be treated as +
-## its end.  For example, for the "​brackets"​ option, ""'​)>​]}"​ will match +
-## ", ', ), >, ], and }. +
- +
-#Use auto-indentation.+
 set autoindent set autoindent
  
-## Backup files to filename~. +Ctrl+K coupera la ligne à partir de la position courante du curseur au lieu de couper toute la ligne 
-set backup+set cutfromcursor
  
-## The directory to put unique backup files in. +Garde l'​historique de recherche entre chaque session 
-set backupdir ""​+set historylog
  
-[...]+# Affiche les numéros de ligne 
 +set linenumbers
  
-## Enable mouse support, if available for your system. ​ When enabled, +Utiliser la souris dans nano
-## mouse clicks can be used to place the cursor, set the mark (with a +
-## double click), and execute shortcuts. ​ The mouse will work in the X +
-## Window System, and on the console when gpm is running. +
-##+
 set mouse set mouse
  
-[...]+# Ouvrir plusieurs fichiers en même tempsUtilisez Ctrl+R pour charger un fichier, et Alt+← ou Alt+→ pour changer de fichier. 
 +set multibuffer
  
-## Make the Home key smarter. ​ When Home is pressed anywhere but at the +N'​ajoute pas de nouvelle ligne vide en fin de fichier qui n'en contient pas 
-## very beginning of non-whitespace characters on a line, the cursor +set nonewlines
-## will jump to that beginning (either forwards or backwards). ​ If the +
-## cursor is already at that position, it will jump to the true +
-## beginning of the line. +
-set smarthome+
  
-[...]+# Les portions de lignes coupées par le bord droit de l'​écran ne seront pas affichées 
 +set nowrap
  
-## Nanorc files +Le curseur se souviendra de sa dernière position entre chaque session 
-include "/​usr/​share/​nano/​nanorc.nanorc"​+set positionlog
  
-## C/C++Ctrl+A se positionnera d'​abord sur le premier caractère non "​espace". 
-include ​"/​usr/​share/​nano/​c.nanorc"​+set smarthome
  
-## Cascading Style Sheets +Ctrl+Z suspendra ​nano 
-include "/​usr/​share/​nano/​css.nanorc"​+set suspend
  
-## Debian files +Une tabulation aura une longueur de 4 caractères 
-include "/​usr/​share/​nano/​debian.nanorc"​+set tabsize 4
  
-## Gentoo files +Utilise des caractères ​"espace" ​pour les tabulations 
-include ​"/​usr/​share/​nano/​gentoo.nanorc"+set tabstospaces
  
-## HTML +Ctrl+Espace considérera la ponctuation comme faisant partie des mots 
-include "/​usr/​share/​nano/​html.nanorc"​+set wordbounds
  
-## PHP +Donner des couleurs aux éléments de l'​interface de nano 
-include "/​usr/​share/​nano/​php.nanorc"​ +set titlecolor brightwhite,​blue 
- +set statuscolor brightwhite,​green 
-[...]+set errorcolor brightwhite,​red 
 +set selectedcolor brightwhite,​magenta 
 +set numbercolor cyan 
 +set keycolor cyan 
 +set functioncolor green
 </​file>​ </​file>​
 +
  
 ===== Liens : ===== ===== Liens : =====
 +  * [[https://​openclassrooms.com/​courses/​reprenez-le-controle-a-l-aide-de-linux/​nano-l-editeur-de-texte-du-debutant|Nano,​ l'​éditeur de texte du débutant]],​ sur OpenClassrooms
 +  * [[http://​www.nano-editor.org/​|Le site officiel de GNU nano]] (us)
  
-Le lien en français pour tout comprendre des options nanorc : \\  
-http://​www.linuxcertif.com/​man/​5/​nanorc/​ 
  
-Le site officiel de GNU nano : \\  
-http://​www.nano-editor.org/​ 
  
doc/editeurs/nano.txt · Dernière modification: 25/02/2022 21:30 par Beta-Pictoris

Pied de page des forums

Propulsé par FluxBB