Ctrl+Lfonctionne également dans gnome-terminal, mais quelque chose de plus programmatique estsystem 'clear'
vol7ron
Avec zsh ctrl + L ne fonctionne pas, ctrl + K fonctionne. (Oh My ZSH pour être précis)
SidOfc
@SidneyLiebrand J'ai testé sur Oh My ZSH et seul Ctrl + L a fonctionné
pluralisme
2
@fanaugen Sur MacOS, effacera cmd+ktout dans un robinet terminal, si vous utilisez tmux pour diviser la zone de la zone visuelle, ctrl+Lfera un meilleur travail.
Fan Yer
60
Jette ça à l'intérieur %userprofile%\.irbrcet tu es bon
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.
Je viens d'essayer cela en utilisant l'irb brut sous Ruby 2.0.0p481 sur Windows et cela ne fonctionne pas.
John Topley
Oui. Il semble que cela ne fonctionne pas sous Windows. Mais cela fonctionne sûrement sous Mac et Linux.
Chandresh Pant
J'aime le mieux cette réponse. Vous n'avez rien à modifier et c'est juste des bombardements. Simple à retenir aussi. Btw, . clsdevrait fonctionner sur Windows.
Eric Boehs
Je me demande quelle commande fonctionnerait avec tmux. Je pense que Ctrl + L est celui que dit thatway_3 ci-dessous.
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:
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.
simplifier l' utilisation des tiques dos: `reset`.
The Tin Man
@the Tin Man - les backticks ne fonctionnent pas toujours comme vous le pensez, mais resetdevraient bien fonctionner
vol7ron
Les backticks fonctionnent toujours comme j'attends, mais ensuite, je les utilise dans différentes langues depuis des années et des années.
the Tin Man
En effet, parfois, ce qui ressemble à un backtick peut effectivement être une autre créature UTF-8. De temps en temps, je corrige des documents "texte" avec des guillemets supérieurs et inférieurs qui sont en fait! = Le caractère ANSI / ASCII ". Comme dans les fichiers SRT commerciaux, où tout l'enfer se déchaîne.
Marcos
0
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.
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[2Jnettoiera l'écran et \e[Hdéplacera le curseur vers la position supérieure gauche de l'écran. \e[Dva 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 ;)
Ctrl+L
fonctionne également dans gnome-terminal, mais quelque chose de plus programmatique estsystem 'clear'
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 bondef cls system('cls') end
De l' écran clair IRB sur Windows .
la source
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
la source
system('clear')
ouCtrl
+L
system 'clear'
a travaillé pour moi mais j'ai eu: command not found => false
clear
votre fichier pryrc pour cela. Merci pour le partageCommand+ Kdans macOS fonctionne très bien.
la source
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 >
la source
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:Mise à jour: Malheureusement, cela ne semble pas fonctionner sous Windows.
Source: Pryrepl.org
la source
. cls
devrait fonctionner sur Windows.Pour effacer l'écran, faites simplement:
puts "\e[H\e[2J"
PS Ceci a été testé sur Linux.
la source
`clear`
, et équivaut àputs %x(/usr/bin/clear)
.system 'clear'
Devrait également fonctionner pour les rails 4.0
la source
Sur Linux Mint 17, vous pouvez également utiliser Ctrl+ Shift+L
ou
Ctrl+ L pour effacer l'écran IRB.
la source
puts `clear`
Efface l'écran, puis renvoie
=> nil
Testé sur le terminal Mac OSX 10.6 et iTerm2.la source
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')
la source
Sous Windows, en utilisant Rails 4,
system('cls')
travaillé pour moi
la source
Ajoutez la méthode suivante à
~/.irbrc
:def clear conf.return_format = "" system('clear') end
Cntrl-L
ouCntrl-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.
la source
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
la source
J'ai utilisé ceci pour les fichiers exécutables:
def clear system("cls") || system("clear") || puts("\e[H\e[2J") end clear
la source
system 'cls'
Fonctionne pour moi sous Windows, avec Ruby 2.2.0 et rails 4.0
la source
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.
la source
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!
la source
`reset`
.reset
devraient bien fonctionnerPour les utilisateurs de Windows:
Si vous créez un nom de fichier chauve-souris c.bat dont le contenu est:
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.
la source
->(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 ;)
la source
L'opérateur backtick capture la sortie de la commande et la renvoie
s = `cls` puts s
fonctionnerait mieux, je suppose.
la source
cls
=> "\ f""\f"
quel est ce que vous avez obtenu, puis leputs s
produit♀
Je me demande pourquoi?