Як очистити екран консолі IRB?
Як очистити екран консолі IRB?
Відповіді:
У Mac OS X або Linux ви можете використовувати Ctrl+, Lщоб очистити екран IRB .
cmd+k
очистить все в термінальному крані, якщо ви використовуєте tmux для розділення області зору, ctrl+L
зробить кращу роботу.
Закинь це все, %userprofile%\.irbrc
і ти добре
def cls
system('cls')
end
system('clear')
також буде працювати на Mac. Слід зазначити, що це залишиться => true
у верхній частині консолі.
На * nix коробках
`clear`
на Windows
system 'cls' # works
`cls` # does not work
на OSX
system 'clear' # works
`clear` # does not work
system('clear')
або Ctrl
+L
system 'clear'
працював на мене, але я отримав: command not found => false
clear
ваш файл pryrc. Дякуємо за обмін
Command+ Kу macOS чудово працює.
На Ubuntu 11.10 система clear
здебільшого очистить вікно irb. Ви отримуєте повернення=> True
друковану вартість.
Великий безлад з некрасивого тексту
ruby-1.9.2-p290 :007 > system 'clear'
що ти отримуєш:
=> true
ruby-1.9.2-p290 :007 >
Щойно це я виявив сьогодні: У Pry (альтернатива IRB) рядок введення, який починається із .
заповіту, буде перенаправлений до командної оболонки. Що означає у mac та Linux, ми можемо використовувати:
. clear
Оновлення: На жаль, це, здається, не працює в Windows.
Джерело: Pryrepl.org
. cls
має працювати в Windows.
Щоб очистити екран, просто виконайте:
puts "\e[H\e[2J"
PS Це було протестовано на Linux.
`clear`
і еквівалентний puts %x(/usr/bin/clear)
.
system 'clear'
Має працювати і для рейок 4.0
У Linux Mint 17 також можна використовувати Ctrl+Shift +L
або
Ctrl+, L щоб очистити екран IRB.
puts `clear`
Очищає екран, а потім повертає => nil
Тестоване на Mac OSX 10.6 Terminal та iTerm2.
Спосіб:
def clear_screen
if RUBY_PLATFORM =~ /win32|win64|\.NET|windows|cygwin|mingw32/i
system('cls')
else
system('clear')
end
end
Або в IRB ви можете використовувати system('clear')
Користувачі Windows просто намагаються,
system 'cls'
АБО
system('cls')
Виглядає так у вікні IRB,
irb(main):333:0> system 'cls'
irb(main):007:0> system('cls')
Чи зробив трюк для мене в рубіні 1.9.3. Однак наступні команди не спрацювали і повернулися => nil
,
system('clear')
system 'clear'
system `cls` #using the backquotes below ESC Key in windows
Я використовував це для виконуваних файлів:
def clear
system("cls") || system("clear") || puts("\e[H\e[2J")
end
clear
system 'cls'
Для мене працює в Windows, з Ruby 2.2.0 і rails 4.0
Я прийшов сюди шукати спосіб скинути tty за допомогою irb, оскільки він не друкував нові рядки або не показував те, що я якось набрав, лише якийсь вихід.
1.9.3-p125 :151 > system 'reset'
нарешті зробив для мене трюк!
`reset`
.
reset
повинні працювати добре
Тут добре відповідей, але я часто віддаляю у вікно Linux з Mintty від Windows. Згадайте вище про використання .irbrc, але придумав це:
def cls
puts "\ec\e[3J"
end
def clear
puts "\e[H\e[2Js"
end
Це дає вам можливості як для "nix" чіткого поведінки, так і для Windows "cls" поведінки, що я часто вважаю кориснішим, якщо я дійсно хочу запустити буфер, а не просто прокручувати його з поля зору.
PS подібний варіант також працює в .bashrc:
alias cls='echo -e "\ec\e[3J"'
Якщо хтось зможе знайти спосіб насправді відобразити це на натискання клавіші, я хотів би почути це. Мені б дуже хотілося, щоб на osx було щось схоже на cmd-k, що працювало б у Mintty.
Для користувачів Windows:
Якщо ви створюєте ім'я файлу bat c.bat, вміст якого:
@echo off
cls
Тоді в IRB можна сказати:
system('c')
для очищення консолі. Я просто думав, що поділюсь, бо вважав це досить крутим. По суті, все на шляху доступне.
->(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]
Це повністю очистить ваш екран IRB, без зайвих порожніх рядків та матеріалів "=> nil". Тестується на Linux / Windows.
Цей одноклапник можна розширити як:
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
Тут використовується безліч хитрощів.
По-перше, irb зателефонує, echo?
щоб перевірити, чи слід надрукувати результат. Я врятував метод, потім переглянув метод, який відновлює визначення, але повертає значення false, тому irb не повторюватиме результат.
По-друге, я надрукував кілька контрольних таблиць ANSI. \e[2J
очистить екран і \e[H
перемістить курсор у верхнє ліве положення екрана. \e[D
надрукує пробіл, а потім перемістить курсор назад, тоді як це є вирішенням для чогось дивного в Windows.
Зрештою, це зовсім не практично. Просто посмішка ;)
Оператор backtick фіксує вихід команди і повертає її
s = `cls`
puts s
працював би краще, я думаю.
cls
=> "\ f"
"\f"
, що у вас є, а потім puts s
виводить це ♀
мені цікаво, чому?
Ctrl+L
також працює в gnome-терміналі, але щось більш програмне єsystem 'clear'