Как очистить экран консоли IRB?
Как очистить консоль IRB?
Ответ 1
В Mac OS X или Linux вы можете использовать Ctrl + L, чтобы очистить экран IRB.
Ответ 2
Бросьте это внутри %userprofile%\.irbrc
, и вы хорошо
def cls
system('cls')
end
Ответ 3
Вкл. * nix boxes
`clear`
в Windows
system 'cls' # works
`cls` # does not work
в OSX
system 'clear' # works
`clear` # does not work
Ответ 4
В системе Ubuntu 11.10 clear
будет в основном очищаться окно irb. Вы получаете напечатанное значение return => True
.
Большой беспорядок уродливого текста
ruby-1.9.2-p290 :007 > system 'clear'
что вы получаете:
=> true
ruby-1.9.2-p290 :007 >
Ответ 5
Cmd + K в MacOSX отлично работает.
Ответ 6
Чтобы очистить экран, просто выполните:
puts "\e[H\e[2J"
P.S. Это было протестировано в Linux.
Ответ 7
puts `clear`
Очищает экран, а затем возвращает => nil
Протестировано на Mac OSX 10.6 Terminal и iTerm2.
Ответ 8
Только что открылся сегодня: в Pry (альтернатива IRB) строка ввода, начинающаяся с .
, будет перенаправлена в командную оболочку. Это означает, что в Mac и Linux мы можем использовать:
. clear
Обновление: К сожалению, он не работает в Windows.
Источник: Pryrepl.org
Ответ 9
В Linux Mint 17 вы также можете использовать Ctrl + Shift + L
или
Ctrl + L для очистки экрана IRB.
Ответ 10
system 'clear'
Должен работать и для рельсов 4.0
Ответ 11
В окнах, используя Rails 4,
system('cls')
работал у меня
Ответ 12
Пользователи 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
Ответ 13
Добавьте к ~/.irbrc
следующий метод:
def clear
conf.return_format = ""
system('clear')
end
Cntrl-L
или Cntrl-K
работают в обычной консоли, но я использую tmux, и они помешают экрану в окне tmux.
conf.return_format= "" берет нуль от возвращаемого значения.
Ответ 14
Я использовал это для исполняемых файлов:
def clear
system("cls") || system("clear") || puts("\e[H\e[2J")
end
clear
Ответ 15
Метод:
def clear_screen
if RUBY_PLATFORM =~ /win32|win64|\.NET|windows|cygwin|mingw32/i
system('cls')
else
system('clear')
end
end
Или в IRB вы можете использовать system('clear')
Ответ 16
Для пользователей Windows:
Если вы создаете имя bat файла c.bat, содержимое которого:
@echo off
cls
Затем в IRB вы можете сказать:
system('c')
чтобы очистить консоль. Я просто подумал, что поделюсь, потому что думал, что это довольно круто. По существу все, что доступно в пути, доступно.
Ответ 17
Я пришел сюда, чтобы найти способ reset tty с irb, так как он не печатал новые строки или не показывал, что я набирал как-то, только некоторый вывод.
1.9.3-p125 :151 > system 'reset'
наконец, помогло!
Ответ 18
->(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, без лишних пустых строк и "= > ноль". Протестировано в 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?
, чтобы проверить, должен ли результат печататься. Я сохранил метод, а затем переопределен методом, который восстанавливает defination, но возвращает false, поэтому irb не будет эхо-результат.
Во-вторых, я напечатал несколько контрольных символов ANSI. \e[2J
очистит экран, а \e[H
переместит курсор в верхнюю левую позицию экрана. \e[D
напечатает пробел, а затем вернет курсор, пока это обходное решение для чего-то странного в Windows.
Наконец, это совсем не практично. Просто улыбайтесь;)
Ответ 19
system 'cls'
Работает для меня в Windows, с Ruby 2.2.0 и rails 4.0
Ответ 20
Тонны хороших ответов здесь, но я часто удаляюсь в ящик Linux с Mintty из окон. Престижность выше об использовании .irbrc, но придумала следующее:
def cls
puts "\ec\e[3J"
end
def clear
puts "\e[H\e[2Js"
end
Это дает вам варианты как для поведения "nix" clear, так и для поведения "cls" Windows, которое я часто нахожу более полезным, если я действительно хочу убрать буфер, а не просто прокручивать его вне поля зрения.
P.S. аналогичный вариант также работает в .bashrc:
alias cls='echo -e "\ec\e[3J"'
Если бы кто-нибудь мог найти способ на самом деле сопоставить это с нажатием клавиши, я бы хотел это услышать. Мне бы очень хотелось иметь что-то похожее на cmd-k на osx, которое будет работать в Mintty.
Ответ 21
Оператор backtick фиксирует вывод команды и возвращает ее
s = `cls`
puts s
будет работать лучше, я думаю.