Penggunaan Vim / terminal aneh dari ssh via Mac OSX

0

Saya menggunakan terminal dari Mac OS X 10.10 (Yosemite) dan SSH'ing ke mesin fedora dan saya mengalami beberapa masalah aneh dengan terminal:

  1. Ketika saya :qdari vim, isi layar vim masih ada. Ketika saya :qdi mac saya atau bahkan dari layar desktop aktual pada mesin Fedora saya, ketika saya :qfile vim, layar vim menghilang dan saya kembali ke terminal (yaitu, saya kembali ke prompt perintah di mana baris sebelumnya adalah sederhana $vim <whatever_file_I_edited>.txtsedangkan sekarang, saya tidak dapat melihat baris sebelumnya karena saya masih melihat isi file yang saya edit melalui vim.

  2. Ketika saya menggunakan fitur gulir ke atas / gulir ke bawah pada trackpad, itu menggulir entri sebelumnya ke terminal, dan bukan panjang jendela terminal itu sendiri.

Bagaimana saya bisa memperbaiki masalah ini?

drjrm3
sumber

Jawaban:

0

Anda tidak benar-benar memiliki "masalah" selain dari itu Anda telah menjadi terlalu nyaman dengan xterm-ism dan salah berharap itu menjadi universal.

xterm - dan emulator terminal GUI seperti itu seperti gnome-terminal, lxterminal, konsole, dan sebagainya - mengimplementasikan apa yang dikenal sebagai "buffer layar alternatif". Dengan satu urutan kontrol, program dapat mengalihkan emulator terminal untuk menampilkan dan menulis ke buffer itu. Dengan yang lain, mereka dapat beralih kembali ke buffer layar asli. Program seperti vim(dan less) mengeluarkan urutan kontrol pertama ketika mereka memulai / melanjutkan, dan yang kedua ketika mereka mematikan / menunda. Ini memberi efek mengembalikan konten layar sebelumnya ketika vimberakhir.

Ini tidak diberikan.

Tidak semua terminal dan emulator terminal memiliki buffer layar alternatif. Emulator terminal yang dimasukkan ke dalam kernel sistem operasi Anda tidak. Jika Anda menjalankan vimpada terminal virtual kernel, Anda akan melihat perilaku yang sama. Terminal nyata umumnya tidak. (Terminal keluarga DEC VT aktual, misalnya, memiliki mekanisme yang melibatkan "halaman" yang tidak sama dan digerakkan oleh serangkaian urutan kontrol yang berbeda.)

Bahkan jika terminal Anda memiliki satu, Anda harus memastikan bahwa entri termcap / terminfo untuk tipe terminal saat ini memiliki informasi yang sesuai, memberi tahu program TUI seperti nanodan Midnight Commander urutan kontrol apa yang akan dipancarkan untuk menampilkan dan menyembunyikan buffer layar alternatif. Itu kombinasi memilih (dan mengatur) TERMnilai variabel lingkungan yang sesuai untuk memilih entri dari termcap / terminfo database Fedora yang cocok dengan kemampuan emulator terminal MacOS 10 lokal Anda, dan mungkin bahkan mengedit database itu.

Apa yang Anda tentukan TERMbukanlah jawaban yang pasti, karena itu tergantung dari emulasi apa yang telah Anda konfigurasikan untuk program terminal MacOS 10. Untuk itu, Anda hanya perlu melihat pengaturannya. Jika Anda telah memerintahkannya untuk meniru xterm dalam 256 mode warna, maka Anda harus memilih tipe terminal (sangat mungkin xterm-256color) yang menjelaskan hal itu dalam basis data terminfo Fedora.

Bacaan lebih lanjut

JdeBP
sumber
Brilliant, saya benar-benar pergi keluar dari cara saya untuk menentukan bahwa terminal MacOS harus digunakan xterm-256colorsehingga saya bisa mendapatkan warna cantik dengan cara yang saya suka mereka. Saya akan membaca lebih lanjut tentang ini seperti yang Anda sarankan - tetapi dapatkah saya mengajukan satu pertanyaan sederhana? Apakah ini masalah sederhana untuk memberi tahu Fedora bahwa saya ingin itu mengenali / menggunakan xterm-256colordan kemudian secara otomatis akan berfungsi? EDIT: Fedora sebenarnya sudah menggunakan xterm-256color... Sekarang saya bingung.
drjrm3
0

Untuk beberapa alasan Vim on Mavericks tidak datang dikonfigurasi dengan skema warna. Setelah saya menambahkan beberapa baris ke file vimrc (salin & tempel dari situs) mulai berlaku seperti yang Anda jelaskan, dalam kasus saya, menghapus spasi tambahan setelah setiap pernyataan memperbaikinya.

prettymeetsworld
sumber