Comment effacez-vous l'écran de la console IRB?
Comment effacez-vous l'écran de la console IRB?
Réponses:
Sur Mac OS X ou Linux, vous pouvez utiliser Ctrl+ Lpour effacer l' écran IRB .
cmd+k
tout dans un robinet terminal, si vous utilisez tmux pour diviser la zone de la zone visuelle, ctrl+L
fera un meilleur travail.
Jette ça à l'intérieur %userprofile%\.irbrc
et tu es bon
def cls
system('cls')
end
De l' écran clair IRB sur Windows .
system('clear')
fonctionnera également sur un Mac. Il est à noter que cela partira => true
en haut de la console.
Sur les boîtes * nix
`clear`
sous Windows
system 'cls' # works
`cls` # does not work
sur OSX
system 'clear' # works
`clear` # does not work
system('clear')
ou Ctrl
+L
system 'clear'
a travaillé pour moi mais j'ai eu: command not found => false
clear
votre fichier pryrc pour cela. Merci pour le partage
Command+ Kdans macOS fonctionne très bien.
Sur Ubuntu 11.10, le système effacera clear
principalement la fenêtre irb. Vous obtenez une => True
valeur de retour imprimée.
Un gros désordre de texte laid
ruby-1.9.2-p290 :007 > system 'clear'
ce que tu as:
=> true
ruby-1.9.2-p290 :007 >
Je viens de découvrir ceci aujourd'hui: Dans Pry (une alternative IRB), une ligne d'entrée qui commence par un .
sera transmise au shell de commande. Ce qui signifie que sous mac et Linux, nous pouvons utiliser:
. clear
Mise à jour: Malheureusement, cela ne semble pas fonctionner sous Windows.
Source: Pryrepl.org
. cls
devrait fonctionner sur Windows.
Pour effacer l'écran, faites simplement:
puts "\e[H\e[2J"
PS Ceci a été testé sur Linux.
`clear`
, et équivaut à puts %x(/usr/bin/clear)
.
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.
puts `clear`
Efface l'écran, puis renvoie => nil
Testé sur le terminal Mac OSX 10.6 et iTerm2.
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')
Ajoutez la méthode suivante à ~/.irbrc
:
def clear
conf.return_format = ""
system('clear')
end
Cntrl-L
ou Cntrl-K
travailler dans une console normale mais j'utilise tmux et ceux-ci gâchent l'écran dans la fenêtre tmux.
Le conf.return_format = "" supprime la valeur nulle de la valeur de retour.
Les utilisateurs de 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')
A fait l'affaire pour moi dans ruby 1.9.3. Cependant, les commandes suivantes n'ont pas fonctionné et sont retournées => nil
,
system('clear')
system 'clear'
system `cls` #using the backquotes below ESC Key in windows
J'ai utilisé ceci pour les fichiers exécutables:
def clear
system("cls") || system("clear") || puts("\e[H\e[2J")
end
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 connecte souvent à distance dans une boîte Linux avec Mintty à partir de Windows. Félicitations à ce qui précède à propos de l'utilisation de .irbrc, mais j'ai trouvé ceci:
def cls
puts "\ec\e[3J"
end
def clear
puts "\e[H\e[2Js"
end
Cela vous donne les options pour le comportement * nix 'clear' et le comportement Windows 'cls', ce que je trouve souvent plus utile si je veux vraiment détruire le tampon plutôt que de simplement le faire défiler hors de vue.
PS 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 touche, j'aimerais l'entendre. J'aimerais vraiment avoir quelque chose qui ressemble à cmd-k sur osx qui fonctionnerait dans Mintty.
Je suis venu ici à la recherche d'un moyen de réinitialiser le tty avec irb, car il n'imprimait pas de nouvelles lignes ou ne montrait pas ce que j'avais tapé d'une manière ou d'une autre, seulement une sortie.
1.9.3-p125 :151 > system 'reset'
a finalement fait l'affaire pour moi!
`reset`
.
reset
devraient bien fonctionner
Pour les utilisateurs de Windows:
Si vous créez un nom de fichier 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 se trouve 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 trucs «=> nil». Testé sous Linux / Windows.
Ce one-liner pourrait être étendu comme:
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 de nombreuses astuces.
Premièrement, irb appellera echo?
pour vérifier si le résultat doit être imprimé. J'ai sauvegardé la méthode, puis redéfinie avec une méthode qui restaure la définition mais retourne false pour que irb ne fasse pas écho au résultat.
Deuxièmement, j'ai imprimé quelques caractères de contrôle ANSI. \e[2J
nettoiera l'écran et \e[H
déplacera le curseur vers la position supérieure gauche de l'écran. \e[D
va imprimer un espace, puis reculer le curseur alors 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 renvoie
s = `cls`
puts s
fonctionnerait mieux, je suppose.
cls
=> "\ f"
"\f"
quel est ce que vous avez obtenu, puis le puts s
produit ♀
Je me demande pourquoi?
Ctrl+L
fonctionne également dans gnome-terminal, mais quelque chose de plus programmatique estsystem 'clear'