IRB 콘솔을 지우려면 어떻게합니까?


답변:


267

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


8
Ctrl+Lgnome-terminal에서도 작동하지만보다 프로그래밍적인 것은system 'clear'
vol7ron

zsh ctrl + L이 작동하지 않으면 ctrl + K가 작동합니다. (Oh My
ZSH는

@SidneyLiebrand 나는 Oh My ZSH에서 테스트했으며 Ctrl + L 만 작동했습니다.
다원주의

2
@fanaugen MacOS에서는 cmd+k터미널 탭 내에서 모든 항목을 지우고 tmux를 사용하여 시각적 영역을 분할 ctrl+L하면 더 나은 작업을 수행합니다.
Fan Yer

59

이것을 안으로 던져 버리면 %userprofile%\.irbrc괜찮아

def cls
  system('cls')
end

에서 창에 IRB 명확한 화면 .


13
이것이 Windows에만 적용된다는 것을 명확히해야합니다.
벤 호프 슈타인

8
system('clear')Mac에서도 작동합니다. 이것은 => true콘솔의 맨 위에 남게됩니다.
Michael Dorst

1
@anthropomorphic`system ( 'clear')은 거의 모든 유닉스 / 유닉스 계열 시스템에서 작동합니다.
enedil

@enedil 그것은 사실이지만 많은 사람들이 OS X가 유닉스 계열 시스템이라는 것을 모릅니다.
Michael Dorst

이 때문에 @anthropomorphic 없습니다 . OS X은 Open Group에서 유닉스 인증을 받았습니다.
enedil

41

* nix 박스에서

`clear`

Windows에서

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

OSX에서

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

3
예,이 작동하지 않습니다. 해야 system('clear')하거나 Ctrl+L
코너 거머리

system 'clear'나를 위해 일했지만 나는 얻었다: command not found => false
echo

1
이를 clear위해 pryrc 파일 과 같은 별명을 추가 할 수 있습니다 . 공유해 주셔서 감사합니다
James Klein


16

우분투 11.10에서 시스템 clear은 대부분 irb 창을 지 웁니다. 반환 => True값이 인쇄됩니다.

못생긴 텍스트의 큰 혼란

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

나중에 얻는 것 :

 => true 
ruby-1.9.2-p290 :007 > 

10

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

. clear

업데이트 : 불행히도 Windows에서는 작동하지 않는 것 같습니다.

출처 : Pryrepl.org


방금 Windows의 Ruby 2.0.0p481에서 raw irb를 사용하여 시도했지만 작동하지 않습니다.
John Topley

예. 창에서 작동하지 않는 것 같습니다. 그러나 반드시 Mac 및 Linux에서 작동합니다.
Chandresh Pant

이 답변이 가장 좋습니다. 아무것도 수정할 필요가 없으며 껍질을 벗기고 있습니다. 기억하기도 쉽다. Btw . cls는 Windows에서 작동합니다.
Eric Boehs

어떤 명령이 tmux에서 작동하는지 궁금합니다. 나는 그 방법이 아래에 나와있는 것처럼 Ctrl + L이 하나라고 생각합니다.
파블로

9

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

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

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


이것은에서 바로 출력 `clear`과 동일합니다 puts %x(/usr/bin/clear).
Todd A. Jacobs


8

Linux Mint 17에서도 Ctrl+ Shift+를 사용할 수 있습니다L

또는

Ctrl+ L IRB 화면을 지우려면


터미널 앱에서 Mac OS X.11.1을 위해 일함
Patrick

@ thatway_3-좋은 대답 : Stackoverflow에서 키보드 지침을 어떻게 인쇄 했습니까?
BKSpurgeon


6

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

또는 IRB에서 사용할 수 있습니다 system('clear')


5

Rails 4를 사용하는 Windows에서는

system('cls')

나를 위해 일했다


3

다음 방법을 추가하십시오 ~/.irbrc.

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

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

conf.return_format는 = ""반환 값 오프 전무 걸립니다.


3

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

3

나는 이것을 실행 파일에 사용했다 :

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

clear


1

줄 바꿈을 인쇄하지 않았거나 어떻게 든 입력 한 내용 만 표시하기 때문에 irb로 tty를 재설정하는 방법을 찾기 위해 여기에 왔습니다.

1.9.3-p125 :151 >   system 'reset'

마침내 나를 위해 속임수를 썼다!


백틱을 사용하여 단순화하십시오 : `reset`.
Tin Man

@the 주석 남자는 - 역 따옴표는 항상 당신이 생각하는 방법을 작동하지 않지만, reset잘 작동합니다
vol7ron

Backticks는 항상 내가 기대하는 방식으로 작동하지만 수년 동안 다양한 언어로 사용하고 있습니다.
Tin Man

실제로, 때로는 백틱과 유사한 것이 실제로 다른 UTF-8 생물 일 수 있습니다. 때때로 나는 실제로 "= ANSI / ASCII"문자 인 따옴표와 따옴표로 "텍스트"문서를 수정합니다. 모든 Shell 파일이 엉망인 상업용 SRT 파일처럼
Marcos

1

여기에 많은 대답이 있지만, 종종 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와 비슷한 것을 실제로 갖고 싶습니다.


0

Windows 사용자의 경우 :

내용이 다음과 같은 박쥐 파일 이름 c.bat를 만드는 경우 :

@echo off
cls

그런 다음 IRB에서 다음과 같이 말할 수 있습니다.

system('c')

콘솔을 지우려면 나는 그것이 매우 시원하다고 생각했기 때문에 공유 할 것이라고 생각했습니다. 기본적으로 경로의 모든 항목에 액세스 할 수 있습니다.


0
->(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에서 이상한 문제를 해결할 수 있습니다.

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


-3

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

s = `cls`
puts s

더 잘 작동 할 것 같아요.


1
실패 :이 irb (main) : 004 : 0> cls=> "\ f"
Orion Edwards

@OrionEdwards @JesperE 첫 번째 줄은 "\f"당신이 무엇을 얻었는지 보여주고 이것을 왜 puts s출력 하는지 궁금합니다.
Lucky
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.