Bagaimana Anda menghapus layar konsol IRB?
Bagaimana Anda menghapus layar konsol IRB?
Jawaban:
Pada Mac OS X atau Linux Anda dapat menggunakan Ctrl+ Luntuk menghapus layar IRB .
cmd+k
akan menghapus semua dalam ketukan terminal, jika Anda menggunakan tmux untuk membagi area area visual, ctrl+L
akan melakukan pekerjaan yang lebih baik.
Lemparkan ini ke dalam %userprofile%\.irbrc
dan Anda baik-baik saja
def cls
system('cls')
end
Dari layar jelas IRB di windows .
system('clear')
juga akan berfungsi pada Mac. Perlu dicatat bahwa ini akan meninggalkan => true
di bagian atas konsol.
Pada * kotak nix
`clear`
di Windows
system 'cls' # works
`cls` # does not work
di OSX
system 'clear' # works
`clear` # does not work
system('clear')
atau Ctrl
+L
system 'clear'
bekerja untuk saya tetapi saya dapat: command not found => false
clear
Anda file pryrc Anda untuk ini. Terima kasih telah berbagi
Command+ Kdi macOS berfungsi dengan baik.
Pada Ubuntu 11.10 sistem clear
sebagian besar akan menghapus jendela irb. Anda mendapatkan => True
nilai kembali yang dicetak.
Kekacauan teks yang jelek
ruby-1.9.2-p290 :007 > system 'clear'
apa yang kamu dapatkan:
=> true
ruby-1.9.2-p290 :007 >
Baru ditemukan hari ini: Di Pry (sebuah alternatif IRB), satu baris input yang dimulai dengan sebuah .
akan diteruskan ke shell perintah. Yang berarti di mac & Linux, kita dapat menggunakan:
. clear
Pembaruan: Sayangnya, sepertinya tidak berfungsi di Windows.
Sumber: Pryrepl.org
. cls
harus bekerja di Windows.
Untuk menghapus layar cukup lakukan:
puts "\e[H\e[2J"
PS Ini diuji di Linux.
`clear`
, dan setara dengan puts %x(/usr/bin/clear)
.
system 'clear'
Harus bekerja untuk rel 4.0 juga
Di Linux Mint 17 Anda juga dapat menggunakan Ctrl+ Shift+L
atau
Ctrl+ L untuk menghapus layar IRB.
puts `clear`
Hapus layar dan kemudian kembali => nil
Diuji pada Mac OSX 10.6 Terminal dan iTerm2.
Metode:
def clear_screen
if RUBY_PLATFORM =~ /win32|win64|\.NET|windows|cygwin|mingw32/i
system('cls')
else
system('clear')
end
end
Atau di IRB bisa Anda gunakan system('clear')
Pengguna Windows cukup mencoba,
system 'cls'
ATAU
system('cls')
Sepertinya ini di jendela IRB,
irb(main):333:0> system 'cls'
irb(main):007:0> system('cls')
Apakah trik untuk saya di ruby 1.9.3. Namun perintah berikut ini tidak berfungsi dan dikembalikan => nil
,
system('clear')
system 'clear'
system `cls` #using the backquotes below ESC Key in windows
Saya telah menggunakan ini untuk file yang dapat dieksekusi:
def clear
system("cls") || system("clear") || puts("\e[H\e[2J")
end
clear
system 'cls'
Bekerja untuk saya di Windows, dengan Ruby 2.2.0 dan rails 4.0
Saya datang ke sini mencari cara untuk mengatur ulang tty dengan irb, karena tidak mencetak baris baru atau menunjukkan apa yang saya ketikkan entah bagaimana, hanya beberapa output.
1.9.3-p125 :151 > system 'reset'
akhirnya melakukan trik untuk saya!
`reset`
.
reset
harus bekerja dengan baik
Banyak jawaban bagus di sini, tapi saya sering jauh ke kotak linux dengan Mintty dari windows. Kudos ke atas tentang menggunakan .irbrc, tetapi datang dengan ini:
def cls
puts "\ec\e[3J"
end
def clear
puts "\e[H\e[2Js"
end
Ini memberi Anda opsi untuk perilaku * nix 'clear' dan perilaku Windows 'cls', yang sering saya temukan lebih berguna jika saya benar-benar ingin mem-buffer nuklir daripada hanya menggulirkannya keluar dari tampilan.
PS varian yang serupa juga berfungsi di .bashrc:
alias cls='echo -e "\ec\e[3J"'
Jika ada yang bisa menemukan cara untuk benar-benar memetakan keystroke, saya ingin mendengarnya. Saya benar-benar ingin memiliki sesuatu yang mirip dengan cmd-k di osx yang akan bekerja di Mintty.
Untuk pengguna windows:
Jika Anda membuat nama file bat c.bat yang isinya adalah:
@echo off
cls
Kemudian, di IRB, Anda dapat mengatakan:
system('c')
untuk menghapus konsol. Saya hanya berpikir saya akan berbagi karena saya pikir itu keren. Pada dasarnya apa pun di jalur dapat diakses.
->(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]
Ini akan sepenuhnya menghapus layar IRB Anda, tanpa garis-garis kosong ekstra dan "=> nil". Diuji di Linux / Windows.
One-liner ini dapat diperluas sebagai:
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
Ini menggunakan banyak trik.
Pertama, irb akan menelepon echo?
untuk memeriksa apakah hasilnya harus dicetak. Saya menyimpan metode, kemudian mendefinisikan kembali dengan metode yang mengembalikan definisi tetapi mengembalikan false sehingga irb tidak akan mengulangi hasilnya.
Kedua, saya mencetak beberapa karakter kontrol ANSI. \e[2J
akan membersihkan layar dan \e[H
akan memindahkan kursor ke posisi kiri atas layar. \e[D
akan mencetak spasi dan kemudian memindahkan kembali kursor sementara ini merupakan solusi untuk sesuatu yang aneh pada Windows.
Akhirnya ini agak tidak praktis sama sekali. Hanya tersenyum ;)
Operator backtick menangkap output dari perintah dan mengembalikannya
s = `cls`
puts s
akan bekerja lebih baik, kurasa.
cls
=> "\ f"
"\f"
mana yang Anda dapatkan dan kemudian puts s
menampilkan ini, ♀
saya ingin tahu mengapa?
Ctrl+L
juga bekerja di gnome-terminal, tetapi sesuatu yang lebih terprogram adalahsystem 'clear'