Pembungkus garis dinamis di Terminal GNOME

27

Bagaimana Anda bisa mendapatkan baris di Terminal GNOME untuk dibungkus secara dinamis ketika Anda mengubah ukuran jendela?

Marius Butuc
sumber

Jawaban:

19

Pada saat pertanyaan diajukan, ini tidak mungkin di Terminal Gnome. Namun, perbaikan dilakukan pada akhir 2013. Perubahan ini tidak membuatnya menjadi Ubuntu 14,04, tetapi harus menjadi bagian dari Ubuntu 14.10.

Menurut masalah di Launchpad , Anda dapat memiliki fitur ini hari ini dengan mengaktifkan PPA Gnome-tim. Anda dapat mengaktifkan PPA Staging Gnome-tim (pementasan diperlukan untuk mendapatkan versi terbaru) dengan melakukan hal berikut

 sudo apt-add-repository ppa:gnome3-team/gnome3-staging

Perbarui sumber Anda

sudo apt-get update

Instal ulang gnome-terminal untuk mendapatkan versi terbaru

sudo apt-get install gnome-terminal

Periksa sehingga Anda memiliki versi 3.13 atau lebih baru (per 10 September, seharusnya 3.13.1)

$ gnome-terminal --version
GNOME Terminal 3.12.1
Michael Martin-Smucker
sumber
Saya baru saja menginstal PPA Gnome-team, diperbarui, sekarang saya memiliki Terminal Gnome 3.10.2. Tidak ada pembungkus garis dinamis. Begitu...?
Jay Sullivan
@notfed Anda mungkin perlu 3,12, yang tersedia untuk Ubuntu 14,04 di stagingppa. Coba (dengan risiko Anda sendiri)ppa:gnome3-team/gnome3-staging
Michael Martin-Smucker
Baru saja mencoba menambahkan "normal" ppa:gnome3-team:gnome3ppa, mendapat versi yang 3.10. Setelah menambahkan, ppa:gnome3-team:gnome3-stagingsaya mendapatkan versi yang benar 3.13.1, jadi saya bisa memastikan ini berfungsi.
Victor Bjelkholm
Ini nomor versi VTE yang sangat penting. Fitur ini muncul di vte-0.36 (yang sesuai, echo $VTE_VERSIONharus melaporkan setidaknya 3600).
egmont
1
Saya sekarang memiliki GNOME Terminal 3.12.3Ubuntu 14,04 menggunakan metode ini, dan reflowing bekerja.
nh2
11

Terminal Gnome default tidak memungkinkan Anda untuk melakukan ini - namun, jika sementara di terminal yang Anda ketik screen- itu akan menjalankan terminal di terminal emulator yang mengubah ukuran dengan benar.

Misalnya - di sini adalah folder rumah saya saat berjalan ls -l

masukkan deskripsi gambar di sini

dan di sini adalah ukuran layar yang sama secara horizontal

masukkan deskripsi gambar di sini

Mulai Gnome-Terminal secara otomatis dengan Layar

cp /usr/share/applications/gnome-terminal.desktop ~/.local/share/applications

kemudian edit file gnome-terminal.desktop dan ubah baris perintah Exec ke:

Exec=gnome-terminal -x screen -q
kebebasan fosil
sumber
2
Setelah menginstal paket - sudo apt-get install screen- ia melakukan pembungkus baris, tetapi menjalankan screensetiap waktu untuk tujuan itu tidak terlalu mengganggu. Mari kita lihat apa solusi lain yang ada.
Marius Butuc
sangat benar - telah diperbarui dengan saran lebih lanjut.
fossfreedom
Ada topik tentang integrasi layar gnome-terminal + GNU dan laporan bug tetapi tidak ada yang bekerja. Namun, layar GNU sepertinya merupakan cara untuk melakukan pembungkus garis dinamis.
Maxime R.
1
Hanya satu masalah lagi: sekarang menggulir adalah tugas. :( Mungkin lebih buruk daripada tidak memiliki reflow.
allprog
1
Untuk semua yang berpikir untuk mencoba ini: itu keren pada awalnya, tetapi sangat aneh, dan saya akhirnya berhenti menggunakannya
Jay Sullivan
10

Saya membuat kemajuan besar dalam mengimplementasikan penulisan ulang di VTE (gnome-terminal dll). Silakan lihat bug hulu di https://bugzilla.gnome.org/show_bug.cgi?id=336238 , jangan ragu untuk mencoba tambalan saya jika Anda seorang peretas. Dalam hal ada umpan balik teknis, silakan komentari bug hulu itu, terima kasih! Semoga pekerjaan saya akan segera berakhir di VTE mainstream.

egmont
sumber
2
Saya hanya ingin mendaftarkan rasa terima kasih yang tulus kepada Anda untuk pekerjaan ini. Sangat tidak sopan bahwa VTE tidak ditulis ulang pada 2013.
Justin Force
Jika fitur ini dapat mencapai versi Ubuntu berikutnya, itu akan menjadi super duper luar biasa!
allprog
Saya harap ini akan berhasil. Sekarang sudah termasuk dalam versi VTE 0.35, yang akan menjadi stabil 0.36, bagian dari stable Gnome 3.12.
egmont
Sayangnya itu tidak membuatnya menjadi ubuntu trusty, tetapi Anda dapat memutakhirkan paket vte (dan gnome-terminal) Anda dari area pementasan gnome3 di launchpad.net/~gnome3-team/+archive/gnome3-staging/+packages
egmont
7

gnome-terminal tidak dapat melakukannya ( upstream bug ).

Setelah beberapa percobaan, rxvt-unicode sepertinya akan berfungsi.

Instal melalui pusat perangkat lunak

sudo apt-get install rxvt-unicode

Pembaruan hanya berfungsi setelah Anda memiliki cukup teks untuk mengisi seluruh layar, alias begitu Anda menekan buffer scrollback.

Pada catatan pribadi, saya menemukan rxvt sangat jelek, tetapi jika memantulkan cahaya lebih penting bagi Anda, lakukanlah.

achiang
sumber
Yang mengherankan saya adalah bahwa sampai hari ini - tidak ada yang berpikir untuk mengembangkan terminal baru yang tidak berbasis VTE - itulah alasan mengapa sebagian besar aplikasi terminal untuk Linux tidak melakukan reflow. Lihat saja Terminal.app- aplikasi Mac OSX yang direfleksikan, dan merupakan salah satu emulator terminal terbaik yang pernah saya gunakan.
papashou
6

Meskipun saya sayangnya tidak tahu jawaban untuk ini untuk sesi terminal normal, saya tahu bagaimana melakukannya jika Anda menggunakan layar (bahkan jika Anda menggunakan byobu): pasang kembali layar Anda dengan menggunakan hal berikut:

screen -raAd

Ini akan skala sesi layar Anda saat Anda mengubah ukuran (dan juga lepaskan setiap sesi berjalan yang ada) dan itulah yang selalu saya gunakan untuk membawa kembali sesi layar.

Anna
sumber
2
Ini keren ... tapi sekarang saya tidak bisa gulir di terminal .... :(
gregghz
Untuk menggulir ke dalam screen, lihat pertanyaan ini .
Ruslan
2

Sejauh yang saya tahu, itu tergantung pada program yang Anda gunakan. Terminal itu sendiri tidak dapat secara dinamis membungkus teks. Namun, beberapa program terminal dapat, misalnya less[1].

Cara mengatasinya adalah mencoba menyalurkan [2] apa yang ingin Anda tampilkan less.

[1] http://linuxcommand.org/lts0030.php#less

[2] http://linuxcommand.org/lts0060.php#pipes

Dariel Dato-on
sumber
0

Solusi: pasang layar ( sudo apt-get screen ), dan luncurkan di terminal Anda.

ern0
sumber
3
Lebih baik lagi, instal byobu . Ini pada dasarnya adalah pembungkus yang bagus screen, tetapi satu fitur yang bagus adalah Anda dapat menjalankannya secara otomatis di semua terminal, sehingga Anda tidak tahu ada di sana.
ams
0

Selama 5+ tahun terakhir saya secara berkala menghabiskan sesi panjang dalam perawatan & pemberian makan mesin Linux (di tempat-tempat yang jauh). Dan, pada dasarnya, Terminal Gnome tidak cukup memotongnya ..

Saya sering menggunakan SecureCRT berbasis Windows dan SecureFX (SFTP) pada XP dan Win7, serta di Ubuntu (di bawah Wine ), memberi saya serangkaian fitur yang jauh lebih baik, termasuk: multi-windows dan / atau tab, pengaturan tersimpan , masuk makro, pewarnaan per sesi, banyak penyesuaian, SFTP terintegrasi, dan bahkan skrip .. Selalu ada gangguan kecil (dengan Wine, khususnya dengan SFTP), dan saya sering tersesat kembali ke Terminal Gnome untuk tugas-tugas lokal di Ubuntu .

Namun, sejak awal tahun ini (dalam versi beta), saya memiliki SecureCRT (asli Ubuntu ). Selain mendapatkan integrasi yang lebih ketat dengan Nautilus (atau sesuatu) untuk transfer file SFTP / SSH, ini hampir menggantikan penggunaan Terminal Gnome .

Bahkan pengaturan mesin baru lebih baik dengan cut & paste bebas repot , penangkapan sesi penuh, dan pengaturan koneksi yang disimpan. Itu selalu memiliki penanganan ulang ukuran, aliran ulang, dan penanganan karakter yang unggul bahkan di sebagian besar aplikasi terminal lainnya.

Saya belum mencobanya, tetapi juga baru saja dirilis untuk Mac OS X v1.5 (Intel), atau v10.6 +.

david6
sumber