Pengguliran Horisontal di Terminal


12

Jadi sudah ada 2 pertanyaan yang saya percaya tentang ini. Semuanya harus dilakukan tail -fdan karenanya orang memberikan jawaban singgung "kurang gunakan".

Saya membutuhkannya untuk semuanya, setiap perintah, dll. Masalahnya adalah saya perlu menjalankan banyak jendela konsol dan bahkan dengan beberapa monitor masih perlu mengecilkannya. Sebagai akibatnya, hampir setiap hasil dibantai dengan pembungkus garis dan canggung untuk dibaca.

Salah satu solusi yang disarankan adalah echo -ne '\e[?7l', yang berfungsi, agak. Masalahnya sekarang, apakah ada cara untuk mendapatkan scroll bar di konsol?

Ubuntu 12.10, Terminal


Sebagai contoh (dalam menanggapi semua "ini bukan cara terminal bekerja" komentar!) Saya akan menunjukkan Ubuntu Console untuk Windows mendukung fitur ini. Aplikasi seperti lsdan mceditberfungsi dengan baik di dalamnya, karena lebar layar dan lebar buffer ditangani secara terpisah.
cz

Jawaban:


10

Yang Anda tanyakan adalah terminal dengan lebar tak terbatas, yang sebagian ditampilkan. Bukan bagaimana terminal bekerja secara tradisional atau bagaimana aplikasi mengharapkannya bekerja.

Misalnya, jika terminal memiliki lebar tak hingga, bagaimana aplikasi visual berfungsi ketika mereka ingin menampilkan sesuatu di tengah layar?

Sesuatu yang mendekati yang dapat Anda lakukan adalah menggunakan GNU screen(Anda seharusnya dapat melampirkan sesi layar dari beberapa terminal dengan ukuran berbeda sehingga layar tahu bagaimana menampilkan jendela kecil dari terminal yang lebih besar) dan mengatur screenlebar jendela menjadi sesuatu. sangat besar dan kemudian mengelabui aplikasi visual dengan berpikir bahwa lebar layar adalah yang asli.

Seperti (di dalam screen)

c=$COLUMNS # assuming your shell has that variable
screen -X width -w 1000
stty cols "$c"

Beberapa aplikasi visual akan berfungsi dengan baik, beberapa tidak begitu baik (untuk menginstal ketika mereka melakukan posisi relatif atau ketika mereka mengandalkan pembungkus terminal). vimsepertinya berfungsi OK.

Kemudian untuk menggulir dan copy paste data, satu-satunya pilihan adalah dengan menggunakan screen's copy modus. ( <prefix>]) dan bergerak di sekitar kursor (lihat info -f screen -n Movementuntuk bergerak dalam mode salin ).

tmux mungkin memiliki kemampuan serupa.

Ini terminatoremulator terminal (berbasis java), yang tidak terminatoryang datang dengan ubuntu juga tidak hanya itu dengan lebar terminal yang tak terbatas:

  • garis tidak pernah dibungkus
  • aplikasi visual diberitahu bahwa lebar layar adalah apa pun yang cocok di jendela, bukan tanpa batas.
  • itu juga akan bekerja lebih baik daripada screensolusi berbasis di atas dalam entri terminfo yang mengklaim itu tidak melakukan pembungkus baris sehingga aplikasi menyadari hal itu, dan BS pada awal baris tidak pindah ke akhir baris sebelumnya.

Saya sudah berada di lingkungan gui jadi jika saya ingin membuka file dalam editor visual saya bisa langsung meluncurkan file gui dari terminal. Lebih mudah untuk menyalin di dalamnya kemudian di terminal, karena Anda tidak dapat dengan mudah hanya dengan memilih blok di terminal tanpa itu mendapatkan cutoff. Menjalankan screen -X width -w 1000pengembalian No screen session found., ada ide?
srcspider

@ srcspider Seperti yang saya katakan, Anda perlu melakukan itu di dalam screen. Mulai screendulu
Stéphane Chazelas

okey saya pikir saya mendapatkan Anda sekarang, pada dasarnya saya harus menjalankanscreen -X width -w 1000 <mycommand>
srcspider

1
@srcspider. Tidak screen. Emulator terminal berbasis terminal. Jadi, Anda harus memulainya terlebih dahulu seperti Anda harus memulai xtermatau gnome-terminalpertama, dengan menjalankan screenperintah. Kemudian, di dalam emulator terminal baru, Anda menjalankan screen -Xperintah itu untuk memberitahu screenuntuk mengubah lebar jendelanya. Lihat juga jawaban saya yang telah diedit untuk terminatoremulator yang saya duga akan Anda sukai.
Stéphane Chazelas

Terima kasih! Bahkan jika entah bagaimana saya tidak membuat mereka bekerja, setidaknya sekarang saya tahu mengapa saya tidak bisa membuat mereka bekerja seperti itu.
srcspider

6

Sementara Emacs terutama adalah editor dan IDE, itu terjadi untuk mencocokkan masalah Anda dengan sangat baik. Anda dapat menjalankan program di dalam jendela Emacs, dan Emacs menampilkannya di terminal bisu dengan lebar dan tinggi tak terbatas. Jika kursor berada di ujung buffer, jendela akan bergulir ketika program menghasilkan output; jika Anda menggerakkan kursor, jendela akan tetap diletakkan saat output bertambah.

Ketik M-x shell RET(yaitu Alt+ x shell Return) untuk memulai shell di buffer Emacs. Ketik C-u M-x shell RETatau M-1 M-x shell RETuntuk memulai shell lain. Anda dapat menjalankan program di setiap shell dan mengatur buffer di beberapa jendela sesuai keinginan.

¹ Kadang-kadang dikatakan sebagai OS yang lebih baik daripada editor, tetapi hanya oleh orang-orang yang tidak menggunakannya - itu hanya lelucon.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.