Ada bagian di saya ~/.bashrc
, yang menetapkan $ EDITOR menjadi gvim. Ini berfungsi dengan baik ketika saya berada di jendela X. Namun, jika saya ssh ke workstation saya (dari workstation lain) gvim mulai mengeluh "tidak dapat membuka tampilan".
Oleh karena itu saya ingin meletakkan if
pernyataan di bashrc, bahwa jika jendela X tersedia maka gunakan gvim, jika tidak biarkan vim.
Bagaimana saya bisa mencapainya?
if [[ $DISPLAY ]]
untuk penggemar braket ganda …The
$DISPLAY
variabel lingkungan harus diatur ke sesuatu jika Anda berada di X, dan diset jika Anda tidak terhubung ke tampilan.Jadi Anda bisa menggunakan ini:
Tetapi ada solusi lain. Ini disebut penerusan ssh X.
Lari
maka Anda dapat menjalankan vim pada mesin yang Anda ssh'd masuk, dan itu akan ditampilkan pada mesin tempat Anda menjalankan X.
sumber
Masukkan ini ke dalam .bashrc Anda:
sumber
Walaupun ini bukan jawaban untuk pertanyaan Anda, saya pikir mungkin berguna untuk menunjukkan bahwa jika Anda melakukan sshing dari satu workstation yang menjalankan X * ke workstation lain, Anda sebenarnya dapat menggunakan gvim jika Anda mengatur X forwarding dengan ssh. Informasi jendela hanya akan dikirim melalui jaringan dan gvim hanya akan muncul seperti itu jika dijalankan secara lokal.
Tambahkan berikut ini di ~ / .ssh / config
Sekarang Anda dapat menjalankan gvim.
Jika Anda workstation asal adalah Windows dan tidak menjalankan X, Anda sebenarnya BISA memulai server X secara lokal menggunakan Cygwin. Setelah pengaturan itu, Anda dapat mengonfigurasi klien ssh populer seperti PutTy untuk melakukan penerusan X11, dan kemudian gvim akan muncul dalam apa yang tampaknya merupakan jendela asli yang dihiasi jendela.
sumber
Cukup periksa salah satu variabel lingkungan yang Xorg atur saat startup, seperti XLOCAL yang berisi informasi tentang sesi X11 saat ini.
sumber
Saya menyukai jawaban garyjohn menggunakan RunningX karena pintar tentang variabel DISPLAY yang buruk tetapi tidak kosong.
Tapi .. saya ingin yang lebih baik. Saya sering menggunakan sesi layar. Saya mungkin memulai sesi layar di rumah, DISPLAY didefinisikan. Kemudian, saya ssh dari tempat lain, DISPLAY masih didefinisikan dan itu benar-benar menampilkan ... di rumah! Jadi .. maka saya akan 'mengekspor $ DISPLAY ='. Ini bagus tapi karena jawaban itu sudah diperiksa, dan menemukan variabel DISPLAY yang valid pada saat itu. Bashrc awalnya menjalankan EDITOR masih akan diatur ke gvim.
Saya datang ke sini mencari solusi untuk masalah yang sama, saya ingin menggunakan yelp untuk browsing manual X-GUI tetapi secara otomatis drop down ke perintah man tradisional ketika tidak menggunakan X. Berdasarkan apa yang saya baca di sini, saya datang dengan ini:
Saya berpikir bahwa untuk masalah EDITOR orang dapat melakukan sesuatu seperti berikut:
Saya hanya akan memposting bahwa tanpa cerita panjang tapi saya belum mengujinya. Saya menganggap diri saya seorang pemula bash. Saya menguji 'perintah manusia' saya, itu berhasil! Saya menggunakan emacs untuk editor saya, ia melakukan pengecekan sendiri untuk X. Saya bahkan tidak menginstal gvim.
sumber