Question

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

Était-ce utile?

La solution

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

Autres conseils

Jetez ceci dans % userprofile% \. irbrc et vous êtes bon

def cls
  system('cls')
end

De écran clair de la CISR sous Windows .

Sur les boîtes * nix

`clear`

sous Windows

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

sur OSX

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

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

Un gros bazar de texte laide

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

ce que vous obtenez:

 => true 
ruby-1.9.2-p290 :007 > 

La commande + K dans macOS fonctionne très bien.

Je viens de découvrir ceci aujourd'hui: dans Pry (une alternative IRB), une ligne d'entrée commençant par . sera transmise au shell de commande. Ce qui signifie dans mac & amp; Linux, nous pouvons utiliser:

. clear

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

Source: Pryrepl.org

Pour effacer l'écran, il suffit de:

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

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

system 'clear'

Devrait également fonctionner pour les rails 4.0

puts `clear`

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

Sous Linux Mint 17, vous pouvez également utiliser Ctrl + Maj + L

ou

Ctrl + L pour effacer l'écran IRB.

Dans Windows, à l'aide de Rails 4,

system('cls')

a travaillé pour moi

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

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

Cntrl-L ou Cntrl-K fonctionne dans la console standard, mais j'utilise tmux et ceux-ci masquent l'écran dans la fenêtre de tmux.

Le conf.return_format = "" enlève le zéro de la valeur de retour.

Les utilisateurs de Windows essaient simplement,

system 'cls'

OU

system('cls')

Cela ressemble à la fenêtre IRB,

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

Fait le tour pour moi en ruby ??1.9.3. Cependant, les commandes suivantes ne fonctionnaient pas et renvoyaient = > néant ,

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

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    si RUBY_PLATFORM = ~ /win32|win64|\.NET|windows|cygwin|mingw32/i       système ('cls')     autre       système ('clear')    fin fin

Ou dans IRB, vous pouvez utiliser le système ('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 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 à la fois pour le comportement 'clear' et le comportement 'cls' de Windows, ce que je trouve souvent plus utile si je veux vraiment supprimer le tampon plutôt que de simplement le faire défiler hors de la vue.

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

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

Si quelqu'un pouvait trouver un moyen de mapper cela sur une frappe, j'adorerais l'entendre. J'aimerais vraiment avoir quelque chose qui ressemble à cmd-k sur osx et qui fonctionnerait dans Mintty.

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 tapé, mais seulement une sortie.

1.9.3-p125 :151 >   system 'reset'

a finalement fait le tour pour moi!

Pour les utilisateurs de Windows:

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

@echo off
cls

Ensuite, dans IRB, 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.

->(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 & # 8220; = > néant & # 8221; des trucs. Testé sous Linux / Windows.

Ce one-liner pourrait être développé 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 d’astuces.

Tout d'abord, 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 nettoie l’écran et \ e [H déplace 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 quelque chose d'étrange sous Windows.

Enfin, cela n’est pas du tout pratique. Il suffit de sourire;)

L'opérateur de backtick capture le résultat de la commande et le renvoie

s = `cls`
puts s

fonctionnerait mieux, je suppose.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top