Saya mencoba mencari tahu apa fitur bash (atau vim). Inilah skenarionya. Saya di terminal bash, lalu edit sesuatu dengan vim, lalu keluar kembali ke bash. Di beberapa terminal, layar sesi vim menghilang untuk menampilkan aktivitas bash shell sebelumnya (ini yang saya inginkan?).
Di tempat lain, buffer layar sesi vim tetap (menyembunyikan aktivitas bash shell lama). Saya harus menghapus layar, atau menunggu sampai aktivitas bash saya mendorong buffer sesi vim keluar dari layar.
Bagaimana saya bisa mengontrol perilaku ini untuk menggantikan buffer sesi vim dengan aktivitas bash sebelumnya?
Terima kasih Tim
Jawaban:
Vim mengirim
t_ti
dant_ks
ke terminal ketika sesi dimulai dant_te
dant_ke
ketika itu berakhir. Thet_ti
dant_te
urutan penyebab terminal untuk beralih ke layar alternatif nya.Dalam
~/.vimrc
file Anda, Anda dapatvim
meninggalkan dokumen di layar saat keluar dengan memasukkan baris ini:jika Anda memiliki garis yang serupa dengan itu, menghapusnya akan membuat konten terminal sebelumnya muncul ketika Anda keluar
vim
.sumber
Penyebab masalah ini dapat menggunakan program
screen
. Saya menemukan bahwa ketika saya dalamscreen
sesi vim tidak dapat mengembalikan status terminal.Tidak yakin apakah ini khusus untuk layar atau ke combo layar / vim di Ubuntu 15.10. Penyebab yang sama seperti yang dijelaskan di atas, saya kira
screen
memiliki termcap berbeda.sumber
altscreen on
file ~ / .screenrc memecahkan masalah untuk layar.Cukup tambahkan baris ke
~/.bash_profile
file Anda untuk mengekspor TERM sebagai xterm setiap kali Anda masuk. Lakukan sebagai berikut;Sekarang lain kali Anda masuk masalah Anda akan diperbaiki, dan jika Anda tidak ingin masuk kembali Anda dapat melakukan salah satu ...
sumber
export $TERM
?export
mengekspor nama (misalnyaTERM
dalam kasus ini) sebagai variabel lingkungan daripada variabel lokal. Jika Anda menggunakanexport $TERM
dalam contoh ini maka$TERM
var akan memutuskan untukxterm
Anda akan mengatur env var$xterm
, yang mungkin tidak didefinisikan. Pertanyaan yang bagus, selalu terlihat salah bagi saya juga.Tim Kedua jawaban di atas benar. Vim mengalihkan terminal ke "layar alternatif" jika kemampuan untuk melakukan itu didefinisikan dalam entri termcap untuk $ TERM.
Anda mengatakan "di beberapa terminal (... berfungsi dengan benar ...)" dan "di yang lain (... berfungsi dengan salah ...)"
Apakah Anda menjalankan emulator terminal yang sama persis untuk semua terminal itu?
Sebagai contoh, pada kotak linux rumah saya, saya memiliki gnome-terminal, xterm, Konsole, yakuake, dan mungkin beberapa lagi saya sudah lupa, bersama dengan "terminal virtual" yang terkait dengan ctrl-alt-F1 ... ctrl-alt-F6 atau lebih. Sebagian besar ini dapat bekerja dengan entri termcap "standar" untuk "xterm" - kecuali terminal virtual yang memiliki definisi terminal bernama "linux".
Periksa emulator terminal itu sendiri dan nilai $ TERM pada terminal yang berfungsi dan yang tidak, untuk melihat apa yang berbeda. Juga, jika Anda masuk sebagai pengguna yang berbeda kadang-kadang, itu bisa menjadi inti masalah - karena setiap pengguna memiliki .bashrc berbagai pengaturan dapat berbeda dari pengguna ke pengguna.
Semoga itu bisa membantu!
-pbr
sumber
Ini ada hubungannya dengan terminal Anda dan pengaturan mesin Anda berurusan dengan info terminal. Salah satu solusi portabel adalah menggunakan Layar GNU. Buka satu jendela untuk Vim dan yang lainnya untuk Bash, sehingga memisahkan kedua sesi. Jika Anda menggunakan terminal grafis seperti xterm pada X11, Gnome Terminal pada Gnome atau Terminal.app pada OS X maka Anda dapat membuka jendela atau tab baru untuk mendapatkan efek yang sama.
sumber