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



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

511   21  

21 ответов:

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

бросьте это внутрь %userprofile%\.irbrc а ты молодец

def cls
  system('cls')
end

С IRB очистить экран на windows.

On * Nix boxes

`clear`

на Windows

system 'cls' # works
`cls` # does not work

на OSX

system 'clear' # works
`clear` # does not work

на Ubuntu 11.10 system clear в основном очистит окно irb. Вы получаете возврат => True стоимость печати.

большой беспорядок уродливого текста

ruby-1.9.2-p290 :007 > system 'clear'

что вы получаете:

 => true 
ruby-1.9.2-p290 :007 > 

команда + K на macOS работает отлично.

для того чтобы очистить экран вобще:

puts "\e[H\e[2J"

P. S. Это был протестирован на Linux.

только что обнаружил это сегодня: в Pry (альтернатива IRB), строка ввода, которая начинается с . будет перенаправлено в командную оболочку. Это означает, что в mac и Linux мы можем использовать:

. clear

обновление: к сожалению, он, кажется, не работает на Windows.

Источник:Pryrepl.org

puts `clear`

очищает экран и возвращает => nil протестировано на терминале Mac OSX 10.6 и iTerm2.

system 'clear'

должно работать и для rails 4.0

на Linux Mint 17 Также можно использовать Ctrl + Shift + L

или

Ctrl + L чтобы очистить экран IRB.

в windows, используя рельсы 4,

system('cls')

работал для меня

пользователи Windows просто попробовать,

system 'cls'

или

system('cls')

выглядит так в окне IRB,

irb(main):333:0> system 'cls'
irb(main):007:0> system('cls')

сделал трюк для меня в Ruby 1.9.3. Однако следующие команды не сработали и вернули => nil,

system('clear')
system 'clear'
system `cls`       #using the backquotes below ESC Key in windows

добавьте следующий метод к ~/.irbrc:

def clear
  conf.return_format = ""
  system('clear')
end

Cntrl-L или Cntrl-K работа в обычной консоли, но я использую tmux и те беспорядок экран внутри окна tmux.

The conf.return_format = "" снимает ноль с возвращаемого значения.

я использовал это для исполняемых файлов:

def clear
    system("cls") || system("clear") || puts("\e[H\e[2J")
end

clear

способ: def clear_screen if RUBY_PLATFORM =~ /win32|win64|\.NET|windows|cygwin|mingw32/i system('cls') else system('clear') end end

или в IRB вы можете использовать system('clear')

system 'cls' 

работает для меня в Windows с Ruby 2.2.0 и Rails 4.0

тонны хороших ответов здесь, но я часто удаляюсь в Linux box с Mintty из windows. Престижность выше об использовании .irbrc, но придумал вот что:

def cls
  puts "\ec\e[3J"
end

def clear
  puts "\e[H\e[2Js"
end

это дает вам варианты как для поведения * Nix' clear', так и для поведения Windows' cls', которое я часто нахожу более полезным, если я действительно хочу уничтожить буфер, а не просто прокручивать его из поля зрения.

С. П. подобный вариант также работает .bashrc следующее:

alias cls='echo -e "\ec\e[3J"'

Если кто-то может найдите способ на самом деле сопоставить это с нажатием клавиши, я бы хотел это услышать. Я бы очень хотел иметь что-то похожее на cmd-k на osx, что будет работать в Mintty.

Я пришел сюда, чтобы найти способ сбросить tty с irb, так как он не печатал новые строки или показывал, что я набрал каким-то образом, только некоторые выходные данные.

1.9.3-p125 :151 >   system 'reset'

наконец-то сделал трюк для меня!

для пользователей 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

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

Comments

    Ничего не найдено.