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.