Saya biasanya mengatur variabel lingkungan VISUAL
dan keduanya EDITOR
ke hal yang sama, tetapi apa bedanya? Mengapa saya mengaturnya secara berbeda? Saat mengembangkan aplikasi, mengapa saya harus memilih untuk melihat VISUAL
sebelum EDITOR
atau sebaliknya?
sumber
$VISUAL
sebagai potongan shell yang mereka tambahkan nama file (dikutip-shell), tetapi beberapa memperlakukannya sebagai nama yang dapat dieksekusi yang mungkin atau mungkin tidak mereka cari$PATH
. Jadi yang terbaik adalah mengaturVISUAL
(danEDITOR
) ke path lengkap ke executable (yang bisa menjadi skrip wrapper jika Anda ingin misalnya opsi).ed
dan yang serupa tidak terlalu populer, jadi saya percaya tidak apa-apa untuk diabaikanVISUAL
dan digunakanEDITOR
.C-x C-e
bash. Sangat berguna.EDITOR
tidak cukup misalnya untukgit
di Ubuntu 12.04. TanpaVISUAL
disetelgit
mengabaikanEDITOR
dan hanya menggunakannano
(dikompilasi secara default, saya kira).ed
. Ketika editor dengan GUI muncul - dan oleh GUI, maksud saya CLI GUI (vim, emacs, dll. - pikirkan ncurses), bukan GUI lingkungan desktop - proses pengeditan berubah secara dramatis, sehingga kebutuhan untuk variabel lain muncul. Dalam konteks ini, CLI GUI dan lingkungan desktop editor GUI kurang lebih sama, sehingga Anda dapat mengatur VISUAL baik; namun, EDITOR dimaksudkan untuk alur kerja yang berbeda secara fundamental. Tentu saja, ini semua historis. Tidak ada yang menggunakan ed hari ini.Jawaban yang diterima mungkin merupakan perlakuan yang baik dan singkat, tetapi ini akan menjadi upaya untuk lebih dalam ketika perbedaan antara VISUAL dan EDITOR mungkin masih penting (membangun jawaban Adam Katz ).
Spesifikasi POSIX masih membedakan antara editor mode visual dan editor baris. Ini sangat penting di masa ketika posisi kursor melalui koneksi serial sulit (terutama karena kecepatan koneksi serial). The artikel Wikipedia untuk vi memberikan beberapa latar belakang yang berguna pada perbedaan antara vi (mode editor visual) dan mantan (editor line). Jika Anda menggali cukup dalam penelitian, Anda akan menemukan bagian "RATIONALE" dari spec "ex" , yang memberikan alasan untuk perbedaan yang masih ada dalam spec:
Saya tidak memerlukan ini sejak melepaskan modem 300 baud saya, tetapi saya dapat membayangkan bahwa orang-orang yang menggunakan jalur serial lambat untuk terhubung ke sistem tertanam (dan / atau melalui koneksi yang benar-benar tidak pasti) mungkin masih menghargai dapat memiliki mode jalur yang disukai editor yang berbeda dari editor "visual" seperti vi. Kode terminal VT100-gaya atas koneksi lossy, laggy, sempit mungkin "mengasapi" dalam aplikasi terbatas.
Bagi kita semua, tampaknya jawaban yang "benar" tampaknya adalah "atur keduanya menjadi editor pilihan Anda". Mungkin tidak apa-apa untuk mengkooptasi perbedaan ini untuk editor lokal / grafis (misal Sublime atau gvim) vs editor jendela terminal (mis. Vi atau emacs), tetapi kemungkinan ada segunung warisan alasan mengapa hal itu mungkin tidak akan berfungsi seperti yang diharapkan .
sumber
Beberapa alat hanya menerima EDITOR, misalnya shell builtin fc :
sumber
Saya telah menyimpulkan bahwa
$VISUAL
itu grafis dan$EDITOR
baris perintah. Jika tidak terdefinisi, pencarian apa pun$VISUAL
harus dicoba$EDITOR
selanjutnya.( Kutipan diperlukan: Saya ingin mendapatkan dokumentasi yang tepat, mungkin halaman manual atau spesifikasi POSIX?)
Saat ini, saya memiliki barang-barang seperti ini di
~/.bashrc
dan~/.zshrc
:gvim
tanpa-f
tidak akan bekerja dengan program-program yang berharap untuk bertindak pada suntingan Anda. Ini pasti termasuksudoeditor
(sudo -e
).Ini dapat rusak jika Anda memiliki spasi putih di jalur ke vim. Jika itu masalah, instal dengan benar atau pertimbangkan symlink
/usr/local/bin/gvim
sumber
$VISUAL
tergantung apakah Anda memiliki terminal yang mampu menentukan posisi kursor, bukan apakah Anda memiliki sistem jendela.$DISPLAY
, tetapi itu bagus untuk diketahui.Karena sepertinya tidak ada lingkungan di mana vi atau yang serupa akan gagal, saya telah mengambil pengaturan VISUAL untuk sesuatu yang memerlukan X DISPLAY, dan EDITOR untuk ex.
Sebagian besar, itu sepertinya membuat saya masalah ketika beberapa program tidak menggunakan VISUAL.
sumber