21 ответов:
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 >
только что обнаружил это сегодня: в Pry (альтернатива IRB), строка ввода, которая начинается с
.будет перенаправлено в командную оболочку. Это означает, что в mac и Linux мы можем использовать:. clearобновление: к сожалению, он, кажется, не работает на Windows.
Источник:Pryrepl.org
пользователи 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')
тонны хороших ответов здесь, но я часто удаляюсь в 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