คุณจะล้างหน้าจอคอนโซล IRB ได้อย่างไร
คุณจะล้างหน้าจอคอนโซล IRB ได้อย่างไร
คำตอบ:
บนMac OS XหรือLinuxคุณสามารถใช้Ctrl+ Lเพื่อล้างหน้าจอIRB
cmd+k
จะล้างข้อมูลทั้งหมดภายในแทปเทอร์มินัลหากคุณใช้ tmux เพื่อแยกส่วนของพื้นที่ภาพctrl+L
จะทำงานได้ดีขึ้น
โยนสิ่งนี้เข้าไปข้างใน%userprofile%\.irbrc
และคุณก็ทำได้ดี
def cls
system('cls')
end
จากหน้าจอที่ชัดเจน IRB บน windows
system('clear')
จะทำงานบน Mac ด้วย ควรสังเกตว่าสิ่งนี้จะปล่อยไว้=> true
ที่ด้านบนของคอนโซล
บน * กล่องห้าม
`clear`
บน Windows
system 'cls' # works
`cls` # does not work
บน OSX
system 'clear' # works
`clear` # does not work
system('clear')
หรือCtrl
+L
system 'clear'
ทำงานให้ฉัน แต่ฉันได้รับ: command not found => false
clear
ไฟล์ pryrc ของคุณสำหรับสิ่งนี้ ขอบคุณสำหรับการแบ่งปัน
Command+ KในmacOS ใช้งานได้ดี
บน Ubuntu 11.10 ระบบclear
ส่วนใหญ่จะล้างหน้าต่าง irb คุณได้รับผลตอบแทน=> True
พิมพ์
ความยุ่งเหยิงขนาดใหญ่ของข้อความที่น่าเกลียด
ruby-1.9.2-p290 :007 > system 'clear'
คุณได้อะไร:
=> true
ruby-1.9.2-p290 :007 >
เพิ่งค้นพบสิ่งนี้วันนี้: ใน Pry (ทางเลือก IRB) บรรทัดอินพุตที่ขึ้นต้นด้วย a .
จะถูกส่งต่อไปยังเชลล์คำสั่ง ซึ่งหมายความว่าใน mac & Linux เราสามารถใช้:
. clear
อัปเดต: น่าเสียดายที่ดูเหมือนว่ามันจะไม่ทำงานบน Windows
ที่มา: Pryrepl.org
. cls
ควรทำงานบน Windows
เพื่อล้างหน้าจอเพียงแค่ทำ:
puts "\e[H\e[2J"
PS นี่คือการทดสอบบน Linux
`clear`
puts %x(/usr/bin/clear)
system 'clear'
ควรทำงานกับราง 4.0 เช่นกัน
บน Linux Mint 17 คุณสามารถใช้Ctrl+ Shift+ ได้เช่นกันL
หรือ
Ctrl+ L เพื่อล้างหน้าจอ IRB
puts `clear`
ล้างหน้าจอแล้วส่งคืนการ=> nil
ทดสอบบน Mac OSX 10.6 Terminal และ iTerm2
วิธี:
def clear_screen
if RUBY_PLATFORM =~ /win32|win64|\.NET|windows|cygwin|mingw32/i
system('cls')
else
system('clear')
end
end
หรือใน IRB คุณสามารถใช้ system('clear')
ใน windows โดยใช้ Rails 4
system('cls')
ทำงานให้ฉัน
เพิ่มวิธีการต่อไปนี้เพื่อ~/.irbrc
:
def clear
conf.return_format = ""
system('clear')
end
Cntrl-L
หรือ Cntrl-K
ทำงานในคอนโซลปกติ แต่ฉันใช้ tmux และทำให้หน้าจอสกปรกภายในหน้าต่าง tmux
conf.return_format = "" ใช้ศูนย์ออกค่าตอบแทน
ผู้ใช้ 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
ฉันใช้สิ่งนี้กับไฟล์ที่ปฏิบัติการได้:
def clear
system("cls") || system("clear") || puts("\e[H\e[2J")
end
clear
system 'cls'
เหมาะกับฉันใน Windows ด้วย Ruby 2.2.0 และ rails 4.0
ฉันมาที่นี่เพื่อหาวิธีรีเซ็ต tty ด้วย irb เนื่องจากมันไม่ได้พิมพ์บรรทัดใหม่หรือแสดงสิ่งที่ฉันพิมพ์อย่างใดเพียงบางเอาต์พุต
1.9.3-p125 :151 > system 'reset'
ในที่สุดก็หลอกลวงให้ฉัน!
`reset`
.
reset
ควรจะทำงานได้ดี
ตันคำตอบที่ดีที่นี่ แต่ฉันมักจะห่างไกลลงในกล่อง linux กับ Mintty จาก windows ความรุ่งโรจน์ข้างต้นเกี่ยวกับการใช้. irbrc แต่เกิดขึ้นกับสิ่งนี้:
def cls
puts "\ec\e[3J"
end
def clear
puts "\e[H\e[2Js"
end
สิ่งนี้ทำให้คุณมีตัวเลือกสำหรับทั้งพฤติกรรม * nix 'clear' และพฤติกรรมของ 'cls' ของ Windows ซึ่งฉันมักจะพบว่ามีประโยชน์มากกว่าถ้าฉันต้องการ nuke buffer มากกว่าแค่เลื่อนมันออกไปนอกมุมมอง
PS ตัวแปรที่คล้ายกันยังทำงานใน. bashrc:
alias cls='echo -e "\ec\e[3J"'
หากใครสามารถหาวิธีที่จะแมปการกดแป้นนั้นจริง ๆ ฉันก็อยากจะฟัง ฉันอยากจะมีบางสิ่งบางอย่างที่คล้ายกับ cmd-k บน osx ที่จะทำงานใน Mintty
สำหรับผู้ใช้ windows:
หากคุณสร้างชื่อไฟล์ค้างคาว 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 ของคุณอย่างสมบูรณ์โดยไม่มีบรรทัดว่างเพิ่มเติมและ "=> ไม่มี" ทดสอบบน 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?
เพื่อตรวจสอบว่าควรพิมพ์ผลลัพธ์หรือไม่ ฉันบันทึกวิธีการแล้วกำหนดใหม่ด้วยวิธีการที่เรียกคืน defination แต่กลับเท็จดังนั้น irb จะไม่สะท้อนผล
ประการที่สองฉันพิมพ์ตัวควบคุม ANSI บางตัว \e[2J
จะทำความสะอาดหน้าจอและ\e[H
จะเลื่อนเคอร์เซอร์ไปที่ตำแหน่งด้านซ้ายบนของหน้าจอ \e[D
จะพิมพ์ช่องว่างแล้วเลื่อนเคอร์เซอร์ไปด้านหลังในขณะที่นี่เป็นการแก้ปัญหาสำหรับบางสิ่งที่แปลกใน Windows
ในที่สุดนี่ก็เป็นสิ่งที่ไม่เป็นประโยชน์เลย แค่ยิ้ม;)
ผู้ประกอบการ backtick จับเอาท์พุทของคำสั่งและส่งกลับ
s = `cls`
puts s
จะทำงานได้ดีขึ้นฉันเดา
cls
=> "\ f"
"\f"
อะไรคือสิ่งที่คุณได้รับแล้วputs s
เอาท์พุทสิ่งนี้♀
ฉันสงสัยว่าทำไม
Ctrl+L
ทำงานได้ใน gnome-terminal ด้วยเช่นกัน แต่มีบางอย่างที่โปรแกรมให้เลือกอีกมากมายsystem 'clear'