Как очистить консоль IRB?

Как очистить экран консоли IRB?

Ответ 1

В Mac OS X или Linux вы можете использовать Ctrl + L, чтобы очистить экран IRB.

Ответ 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

будет работать лучше, я думаю.