Bagaimana saya bisa mencegah OS X Terminal.app dari menimpa warna vim pada sistem jarak jauh?


1

Sebagai workstation utama saya, saya menggunakan mac yang menjalankan OS X 10.5. Saya menghabiskan banyak hari ssh'd ke sistem jarak jauh dan saya bekerja di grokking vim. Salah satu hal yang ingin saya lakukan adalah bereksperimen dengan skema warna yang berbeda.

Masalah yang saya temui adalah bahwa pengaturan Terminal.app saya menimpa warna yang ditentukan dalam skema warna vim. Contoh yang sangat sederhana adalah warna latar belakang. Jika saya memilih, katakanlah, skema warna 'gurun' dalam vim di server jauh latar belakang harus hitam. Jika saya kemudian menggunakan preferensi Terminal untuk mengatur warna latar belakang saya menjadi oranye intens, preferensi Terminal saya menang.

Saya ingin preferensi Terminal saya menang untuk shell lokal, tetapi saya ingin semua yang saya tentukan pada sistem jarak jauh menang pada mereka. Apakah itu mungkin?


1
Apakah Anda yakin warna benar-benar tiba di mesin Anda?
Daniel Beck

Tidak 100%. Mengubah skema warna yang saya gunakan memiliki sedikit dampak. Umumnya di tempat-tempat di mana tidak ada pengaturan Terminal untuk ditimpa. Sebagai contoh jika saya beralih ke 'kabut' latar belakang di mana ada perubahan teks ke warna putih dekat.
Rob Drimmie

Saya sudah mencoba mengubah emulasi (di Preferensi- & gt; Lanjutan- & gt; Emulasi "Nyatakan terminal sebagai:" dari 'xterm-color' (default) menjadi xterm, ansi, vt100 dan vt102 tetapi tidak dapat melihat perbedaan tingkah laku.
Rob Drimmie

Saya juga ingin tahu ini! Jika ada saya jalan.
romeovs

Jawaban:


2

[ Memperbarui: Pada Mac OS X Lion 10.7 Terminal mendukung warna BCE dan 256.]

Anda mungkin menghadapi dua masalah:

  1. Terminal tidak mendukung model Background Color Erase (BCE) †. vim membutuhkan terminal BCE untuk mengisi warna latar belakang untuk area kosong.

  2. Terminal hanya mendukung 16 warna ANSI, bukan model 256 warna yang diperluas. Beberapa skema warna vim, seperti "desert256", memerlukan dukungan 256 warna untuk memilih warna tertentu.

Jika Anda menggunakan pengaturan yang sama di Xterm (jalankan vim pada mesin jarak jauh dengan skema warna yang Anda pilih) dan berperilaku seperti yang diharapkan, satu atau keduanya inilah yang Anda temui.

† BCE berarti bahwa urutan kontrol terminal tertentu seperti "erase to end of line" dan "clear screen" akan mengisi area yang dibersihkan dengan warna latar belakang teks yang saat ini dipilih. Emulator terminal Non-BCE menampilkan latar belakang statis apa pun yang biasanya ditampilkan. Beberapa program akan mendeteksi apakah terminal mendukung BCE (via terminfo) dan "secara manual" mengisi area kosong dengan karakter spasi, tetapi vim tidak.

(BCE ada untuk membuatnya lebih efisien untuk mengisi warna latar belakang di area tampilan yang luas, dan untuk menghilangkan karakter ruang yang tidak diinginkan ketika menyalin teks dari emulator, misalnya. Dari apa yang saya baca, tidak ada terminal fisik yang pernah didukung BCE, itu sepenuhnya fitur dari beberapa emulator terminal modern.)

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.