문제

IRB 콘솔 화면을 어떻게 지우나요?

도움이 되었습니까?

해결책

~에 맥 OS X 또는 리눅스 당신이 사용할 수있는 Ctrl 키 + 지우기 위해 IRB 화면.

다른 팁

이것을 안에 던져라 %userprofile%\.irbrc 그리고 당신은 괜찮아요

def cls
  system('cls')
end

에서 Windows의 IRB 클리어 스크린.

*nix 박스에

`clear`

윈도우즈에서

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

OSX에서

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

우분투 11.10 시스템에서 clear 대부분 irb 창을 지웁니다.당신은 수익을 얻습니다 => True 값이 인쇄됩니다.

추악한 텍스트의 큰 혼란

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

무엇을 얻을 것인가:

 => true 
ruby-1.9.2-p290 :007 > 

명령 + 케이 ~에 맥 OS 훌륭하게 작동합니다.

오늘 방금 이것을 발견했습니다.Pry(IRB 대안)에서 다음으로 시작하는 입력 줄은 다음과 같습니다. . 명령 셸로 전달됩니다.이는 Mac 및 Linux에서 다음을 사용할 수 있음을 의미합니다.

. clear

업데이트:아쉽게도 Windows에서는 작동하지 않는 것 같습니다.

원천: Pryrepl.org

화면을 지우려면 다음을 수행하십시오.

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

추신이것은 Linux에서 테스트되었습니다.

system 'clear'

Rails 4.0에서도 작동합니다.

puts `clear`

화면을 지운 다음 돌아갑니다. => nil Mac OSX 10.6 터미널 및 iTerm2에서 테스트되었습니다.

Linux Mint 17에서도 다음을 사용할 수 있습니다. Ctrl 키 + 옮기다 +

또는

Ctrl 키 + IRB 화면을 지우려면

Windows에서는 Rails 4를 사용하여

system('cls')

나를 위해 일했다

다음 메소드를 추가하세요. ~/.irbrc:

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

Cntrl-L 또는 Cntrl-K 일반 콘솔에서 작업하지만 tmux를 사용하고 있어서 tmux 창 내부의 화면이 엉망이 됩니다.

그만큼 conf.return_format = ""는 반환 값에서 nil을 제거합니다.

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

실행 파일에 이것을 사용했습니다.

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' 

Ruby 2.2.0 및 Rails 4.0을 사용하여 Windows에서 작동합니다.

여기에는 좋은 답변이 많이 있지만 Windows에서 Mintty를 사용하여 Linux 상자에 원격으로 접속하는 경우가 많습니다..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"'

누군가 실제로 이를 키 입력에 매핑하는 방법을 찾을 수 있다면 듣고 싶습니다.저는 Mintty에서 작동하는 osx의 cmd-k와 비슷한 것을 갖고 싶습니다.

나는 irb를 사용하여 tty를 재설정하는 방법을 찾기 위해 여기에 왔습니다. 개행 문자를 인쇄하지 않거나 내가 입력한 내용을 표시하지 않고 일부 출력만 표시하기 때문입니다.

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]

이렇게 하면 추가 빈 줄이나 "=> nil" 항목 없이 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? 결과를 인쇄해야 하는지 확인하려면나는 메소드를 저장한 다음 정의를 복원하지만 false를 반환하여 irb가 결과를 에코하지 않도록 하는 메소드로 재정의했습니다.

둘째, 일부 ANSI 제어 문자를 인쇄했습니다. \e[2J 화면을 청소하고 \e[H 커서가 화면의 왼쪽 상단으로 이동합니다. \e[D 공백을 인쇄한 다음 커서를 뒤로 이동합니다. 이는 Windows에서 이상한 문제를 해결하는 방법입니다.

마지막으로 이것은 전혀 실용적이지 않습니다.그냥 웃으세요 ;)

백틱 연산자는 명령의 출력을 캡처하여 반환합니다.

s = `cls`
puts s

더 잘 작동할 것 같아요.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top