Comment effacez-vous la console IRB?

Comment effacez-vous l’écran de la console IRB?

    Sous Mac OS X ou Linux, vous pouvez utiliser Ctrl + L pour effacer l’écran IRB .

    Jetez ceci à l’intérieur de %userprofile%\.irbrc et vous êtes bon

     def cls system('cls') end 

    De IRB effacer l’écran sur Windows .

    Sur * nix cases

     `clear` 

    sur Windows

     system 'cls' # works `cls` # does not work 

    sur OSX

     system 'clear' # works `clear` # does not work 

    Sur Ubuntu 11.10, le système clear plupart du temps la fenêtre irb. Vous obtenez un retour => True Valeur réelle imprimée.

    Un gros bordel de texte laid

     ruby-1.9.2-p290 :007 > system 'clear' 

    ce que tu as:

      => true ruby-1.9.2-p290 :007 > 

    Commande + K sous macOS fonctionne très bien.

    Pour effacer l’écran, procédez comme suit:

     puts "\e[H\e[2J" 

    PS Ceci a été testé sur Linux.

    Je viens juste de découvrir cela aujourd’hui: Dans Pry (une alternative à l’IRB), une ligne de saisie qui commence par a . sera transmis au shell de commande. Ce qui signifie que dans Mac et Linux, nous pouvons utiliser:

     . clear 

    Mise à jour: Malheureusement, il ne semble pas fonctionner sur Windows.

    Source: Pryrepl.org

     puts `clear` 

    Efface l’écran et renvoie ensuite => nil Testé sur Mac OSX 10.6 Terminal et iTerm2.

     system 'clear' 

    Devrait également fonctionner pour les rails 4.0

    Sur Linux Mint 17, vous pouvez également utiliser Ctrl + Shift + L

    ou

    Ctrl + L pour effacer l’écran IRB.

    Dans Windows, en utilisant Rails 4,

     system('cls') 

    travaillé pour moi

    Les utilisateurs Windows essaient simplement,

     system 'cls' 

    OU

     system('cls') 

    Cela ressemble à ceci dans la fenêtre IRB,

     irb(main):333:0> system 'cls' irb(main):007:0> system('cls') 

    J’ai fait le tour pour moi dans Ruby 1.9.3. Cependant, les commandes suivantes ne fonctionnaient pas et renvoyaient => nil ,

     system('clear') system 'clear' system `cls` #using the backquotes below ESC Key in windows 

    Ajoutez la méthode suivante à ~/.irbrc :

     def clear conf.return_format = "" system('clear') end 

    Cntrl-L ou Cntrl-K fonctionne dans la console normale mais j’utilise tmux et ceux-ci gâchent l’écran à l’intérieur de la fenêtre tmux.

    Le fichier conf.return_format = “” prend le zéro pour la valeur de retour.

    Je l’ai utilisé pour les fichiers exécutables:

     def clear system("cls") || system("clear") || puts("\e[H\e[2J") end clear 

    Méthode: def clear_screen if RUBY_PLATFORM =~ /win32|win64|\.NET|windows|cygwin|mingw32/i system('cls') else system('clear') end end

    Ou en IRB, vous pouvez utiliser le system('clear')

     system 'cls' 

    Fonctionne pour moi sous Windows, avec Ruby 2.2.0 et rails 4.0

    Des tonnes de bonnes réponses ici, mais je me suis souvent installé dans une boîte Linux avec Mintty depuis Windows. Bravo à ce qui précède à propos de l’utilisation de .irbrc, mais est venu avec ceci:

     def cls puts "\ec\e[3J" end def clear puts "\e[H\e[2Js" end 

    Cela vous donne les options à la fois pour le comportement “clear” de * nix et pour le comportement de “cls” de Windows, que je trouve souvent plus utile si je veux vraiment intervertir le tampon plutôt que de le faire défiler.

    PS une variante similaire fonctionne également dans .bashrc:

     alias cls='echo -e "\ec\e[3J"' 

    Si quelqu’un pouvait trouver un moyen de le faire correspondre à une frappe, j’aimerais l’entendre. Je voudrais vraiment avoir quelque chose de semblable à cmd-k sur osx qui fonctionnerait dans Mintty.

    Je suis venu ici pour chercher un moyen de réinitialiser le tty avec irb, car il ne s’agissait pas d’imprimer de nouvelles lignes ou de montrer ce que j’avais tapé, mais seulement quelques sorties.

     1.9.3-p125 :151 > system 'reset' 

    finalement fait le tour pour moi!

    Pour les utilisateurs de Windows:

    Si vous créez un nom de fichier de chauve-souris c.bat dont le contenu est:

     @echo off cls 

    Ensuite, dans IRB, vous pouvez dire:

     system('c') 

    pour effacer la console. Je pensais juste que je partagerais parce que je pensais que c’était plutôt cool. Essentiellement, tout ce qui est sur le chemin est accessible.

     ->(a,b,c){x=a.method(b);a.send(c,b){send c,b,&x;false};print"\e[2J\e[H \e[D"}[irb_context,:echo?,:define_singleton_method] 

    Cela effacera complètement votre écran IRB, sans lignes vides supplémentaires et “=> nil” stuff. Testé sur Linux / Windows.

    Ce one-liner pourrait être élargi comme suit:

     lambda { original_echo = irb_context.method(:echo?) irb_context.send(:define_singleton_method, :echo?) { send :define_singleton_method, :echo?, &original_echo false } print "\e[2J\e[H \e[D" }.call 

    Cela utilise beaucoup de trucs.

    Tout d’abord, irb appellera echo? pour vérifier si le résultat doit être imprimé. J’ai sauvegardé la méthode, puis redéfini avec une méthode qui restaure la définition mais renvoie false afin que l’irb ne répète pas le résultat.

    Deuxièmement, j’ai imprimé certains caractères de contrôle ANSI. \e[2J nettoiera l’écran et \e[H déplacera le curseur à la position supérieure gauche de l’écran. \e[D imprimera un espace puis reculera le curseur pendant qu’il s’agit d’une solution de contournement pour quelque chose d’étrange sous Windows.

    Enfin, ce n’est pas du tout pratique. Souriez simplement 😉

    L’opérateur backtick capture la sortie de la commande et la retourne

     s = `cls` puts s 

    Je pense que ça fonctionnerait mieux.