Comment effacez-vous l'écran de la console IRB?
Sur Mac OS X ou Linux vous pouvez utiliser Ctrl + L pour effacer l'écran IRB .
Jeter ceci à l'intérieur %userprofile%\.irbrc
et tu es bon
def cls
system('cls')
end
À partir de écran vide IRB 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 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 >
Command + K dans macOS fonctionne très bien.
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
system 'clear'
Devrait fonctionner pour Rails 4.0 aussi
Pour effacer l'écran, il suffit de:
puts "\e[H\e[2J"
P.S. Cela a été testé sur Linux.
Sur Linux Mint 17, vous pouvez aussi utiliser Ctrl + Shift + L
ou
Ctrl + L pour effacer l’écran IRB.
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
J'ai utilisé cela 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 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
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.
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
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 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.
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!
->(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 ;)
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.