web-dev-qa-db-fra.com

Comment effacer la console IRB?

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

181
John Topley

Sur Mac OS X ou Linux vous pouvez utiliser Ctrl + L pour effacer l'écran IRB .

263
John Topley

Jeter ceci à l'intérieur %userprofile%\.irbrc et tu es bon

def cls
  system('cls')
end

À partir de écran vide IRB sous Windows .

59
Ben Hoffstein

Sur les boîtes * nix

`clear`

sous Windows

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

sur OSX

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

Sur le système Ubuntu 11.10, clear effacera principalement la fenêtre irb. Vous obtenez un retour => True valeur imprimée.

Un gros bazar de texte laid

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

ce que tu as:

 => true 
Ruby-1.9.2-p290 :007 > 
16
TW Scannell

Command + K dans macOS fonctionne très bien.

16
user1323136

Je viens de découvrir ceci aujourd'hui: In Pry (une alternative IRB), une ligne d’entrée qui commence par un . sera transmis à la commande Shell. Ce qui signifie dans Mac et Linux, nous pouvons utiliser:

. clear

Mise à jour: Malheureusement, cela ne semble pas fonctionner sous Windows.

Source: Pryrepl.org

9
Chandresh Pant
system 'clear'

Devrait fonctionner pour Rails 4.0 aussi

8
Arvind singh

Pour effacer l'écran, il suffit de:

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

P.S. Cela a été testé sur Linux.

8
Sujit Kumar

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

ou

Ctrl + L pour effacer l’écran IRB.

7
thatway_3
puts `clear`

Efface l'écran puis retourne => nil Testé sur les terminaux Mac OSX 10.6 et iTerm2.

Dans Windows, utilisez Rails 4,

system('cls')

a travaillé pour moi

4
Clay H

J'ai utilisé cela pour les fichiers exécutables:

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

clear
3
avinashbot

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

Ou dans IRB, vous pouvez utiliser system('clear')

3
Stephen Ross

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

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

Cntrl-L ou Cntrl-K fonctionne en console normale mais j'utilise tmux et ceux-ci masquent l'écran à l'intérieur de la fenêtre tmux.

Le conf.return_format = "" supprime le nil de la valeur de retour.

3
TheFed

Les utilisateurs de Windows essaient simplement,

system 'cls'

OR

system('cls')

Ressemble à ceci dans la fenêtre IRB,

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

Est-ce que l'astuce pour moi dans Ruby 1.9.3. Cependant, les commandes suivantes ne fonctionnaient pas et donnaient => nil,

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

Fonctionne pour moi sous Windows avec Ruby 2.2.0 et Rails 4.0

1
saadibabar

Des tonnes de bonnes réponses ici, mais je passe souvent dans une boîte Linux avec Mintty de Windows. Félicitations à ce qui précède sur l’utilisation de .irbrc, mais a proposé ceci:

def cls
  puts "\ec\e[3J"
end

def clear
  puts "\e[H\e[2Js"
end

Cela vous donne les options pour le comportement 'clear' * et le comportement 'cls' de Windows, que je trouve souvent plus utiles si je veux vraiment supprimer le tampon plutôt que de simplement le faire défiler.

P.S. une variante similaire fonctionne également dans .bashrc:

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

Si quelqu'un pouvait trouver un moyen d'associer cela à une frappe, j'adorerais l'entendre. Je voudrais vraiment avoir quelque chose qui ressemble à cmd-k sur osx qui fonctionnerait dans Mintty.

1
erich2k8

Je suis venu ici pour chercher un moyen de réinitialiser le terminal avec irb, car ce n'était pas l'impression de nouvelles lignes ou l'affichage de ce que j'avais dactylographié, mais seulement une sortie.

1.9.3-p125 :151 >   system 'reset'

a finalement fait le tour pour moi!

0
Marcos
->(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]

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

Ce one-liner pourrait être étendu 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.

Premièrement, irb appellera echo? pour vérifier si le résultat doit être imprimé. J'ai enregistré la méthode, puis redéfini avec une méthode qui restaure la définition mais retourne false afin que irb ne répercute pas le résultat.

Deuxièmement, j'ai imprimé des caractères de contrôle ANSI. \e[2J nettoiera l'écran et \e[H déplacera le curseur en haut à gauche de l'écran. \e[D imprimera un espace puis reculera le curseur alors qu'il s'agit d'une solution de contournement pour un problème étrange sous Windows.

Enfin, ce n'est pas du tout pratique. Souriez simplement ;)

0
orzFly

Pour les utilisateurs de Windows:

Si vous créez un fichier bat nommé c.bat dont le contenu est le suivant:

@echo off
cls

Ensuite, à la CISR, vous pouvez dire:

system('c')

pour effacer la console. Je pensais juste partager, parce que je trouvais ça plutôt cool. Essentiellement, tout ce qui se trouve dans le chemin est accessible.

0
accident-prone