Saya tahu sedikit tentang * editor teks NIX (saat ini bermigrasi dari nano
ke vim
), dan, setelah melihat-lihat sedikit di Unix & Linux SE, telah memperhatikan bahwa vi
digunakan daripada 'vim' dalam sejumlah pertanyaan. Saya tahu bahwa 'vim' adalah singkatan dari 'Vi IMproved', dan, dengan mengingat hal itu, saya bertanya-tanya mengapa ada orang yang lebih suka menggunakan vi daripada vim. Apakah vi memiliki keunggulan signifikan dibandingkan vim?
Sunting: Saya pikir pertanyaan saya disalahtafsirkan. Saya tahu bahwa vim, untuk sebagian besar, jauh lebih kuat dan lebih lengkap daripada vi. Yang ingin saya ketahui adalah jika ada kasus yang memungkinkan di mana vi memiliki keunggulan dibandingkan vim, seperti penggunaan memori yang lebih sedikit, prevalensi pada sistem * nix, dll.
vi
adalah Anda bisa mengharapkannya ada di setiap sistem yang sesuai dengan POSIX.vi
dan tidakvim
.. Ubuntu adalah salah satu distro yang paling ramah pengguna ;-)vim
.vi
hanyalah tautan simbolis yang pada akhirnya menunjuk kevim
instalasi default.vi
menggunakan spesifikasi POSIXvi
. Dengan begitu Anda memiliki pengetahuan portabel serta mengetahui ekstensi Vim.Jawaban:
vi
adalah (juga) editor standar POSIX . Ada banyak implementasi danvim
kemungkinan yang paling populer setidaknya di Linux.Sementara banyak OS tradisional Unix yang memberikan
vi
implementasi sangat dekat dengan standar,vim
telah menambahkan banyak fitur tambahan yang menjadikannya pedang bermata dua.Tentu saja, ekstensi ini biasanya dirancang untuk memudahkan proses pengeditan dan menyediakan fitur dan fungsi yang bermanfaat. Namun, begitu Anda terbiasa dengan beberapa dari mereka (bukan yang kosmetik seperti pewarnaan sintaks tetapi yang mengubah perilaku editor) Anda dapat dengan mudah lupa bahwa mereka spesifik; dan menggunakan implementasi yang berbeda, termasuk yang didasarkan pada kode BSD asli bisa sangat frustasi. Yang sebaliknya juga benar.
Ini sangat mirip dengan masalah yang terjadi dengan skrip yang menggunakan bashisme non POSIX yang dihadapkan pada implementasi shell yang lebih ortodoks seperti
dash
atauksh
.sumber
Tidak ada vi yang tidak memiliki keunggulan signifikan dibandingkan vim, melainkan sebaliknya. Vim memiliki lebih banyak keunggulan daripada Vi. Anda mungkin tertarik pada: Mengapa, oh MENGAPA, lakukan itu #? @! nuthead menggunakan vi?
Mengedit juga membaca: Apakah VIM sepadan dengan usaha belajar?
sumber
Setelah menghabiskan sebagian besar hidup saya (tidak termasuk masa kanak-kanak) mengedit dengan nyaman dengan Vim, saya menghabiskan sekitar satu bulan hanya menggunakan vi. Dalam melakukannya, saya menyadari bahwa saya telah bergantung pada Vim untuk semua kebutuhan modifikasi teks saya. Sebelum perjalanan saya dengan vi, setiap kali saya harus mengganti beberapa teks atau melakukan operasi serupa dalam sekelompok besar file, saya hanya akan membuka file dalam Vim dan menjalankan
:bufdo
perintah, dan setiap kali saya harus indent atau memformat beberapa file, Saya akan membukanya di Vim dan menggunakan Vim=
dangw
perintah. Saya tergantung pada Vim. Setelah menyadari vi tidak memiliki perintah ini, saya dipaksa untuk melakukan transformasi teks massalsed
dan belajar banyak tentang program lain sepertiawk
danindent
. Meskipun saya beralih kembali menggunakan Vim pada akhirnya, pengetahuan yang saya peroleh dengan menggunakan editor yang kurang fitur adalah substansial dan telah terbukti sangat berguna. Selain belajar tentang alat di luar editor teks, saya juga menjadi lebih akrab dengan vi. Setiap kali saya bekerja pada sistem baru atau server yang tidak memiliki Vim, saya merasa jauh lebih nyaman menggunakan vi daripada yang saya lakukan sebelum perjalanan selama sebulan.Juga, bulan lalu saya menginstal Linux pada tablet WM8650 yang murah dan menemukan ada perbedaan kinerja yang nyata antara Vim dan vi, jadi saya cenderung menggunakan vi pada tablet.
sumber
-i
Switch pada keduanya adalah ekstensi GNU.) Tetapi Anda dapat menggunakannya dengan portable dengan sesuatu sepertifor f in *; do printf '%s\n' '%!sed -e '\''some sed command'\' x | ex "$f"; done
Saya akan mengalami kesulitan hidup tanpa vim tetapi saya tidak tahan vi . Namun, mempelajari yang pertama setidaknya akan meninggalkan Anda dengan ide bagaimana menghadapi nanti ketika itu semua yang tersedia.
Antarmuka vim secara default sebenarnya cukup dekat dengan vi. Jika saya bekerja pada sistem dengan vim hal pertama yang saya lakukan adalah menambahkan hal ini ke
~/.vimrc
:Ada banyak hal lain yang saya sukai - nowrap dan numbering on, dll - tetapi tidak apa-apa. "sintaks aktifkan" hanya menyalakan penyorotan sintaksis dasar (agak beefier:
filetype plugin on
juga mendasar); "nocp" mematikan vi kompatibilitas dan inilah yang mulai membedakan vim dari ye olde vi (mis., ini memungkinkanshowmode
yang membuat seluruh pengalaman menjadi lebih manusiawi, karena Anda sekarang memiliki beberapa petunjuk tentang apakah Anda memegang komando atau ~ INSERT ~ mode). "wildmenu" hanya memberi Anda menu penyelesaian horizontal ketika melakukan beberapa hal, yang membuat hidup lebih mudah juga.Fasilitas pengeditan teks dari vim tidak ada duanya - selain emacs, saya belum pernah melihat atau mendengar sepotong perangkat lunak yang mendekati. Mereka tidak mudah dipelajari, tetapi begitu Anda mengetahuinya, mereka jauh lebih cepat daripada menu mouse untuk digunakan dan jauh lebih dinamis daripada alternatif makro kunci sederhana dalam antarmuka berbasis menu mouse. Untuk pemrograman, saya kadang-kadang menggunakan vim di samping IDE seperti Eclipse, tapi saya melakukan sebagian besar pekerjaan di vim.
Jika Anda mengambil jalur itu, lol, lihatlah plugins pelengkapan otomatis dan taglist. Dan waspadai sisi gelapnya.
sumber
set mouse=a
juga.Keuntungannya adalah vi biasanya sudah diinstal pada enterprise UNIX seperti AIX atau Solaris. Selain itu vim tidak dapat diakses di media instalasi.
sumber
Saya telah memperhatikan bahwa saya hanya memilih
Vi
lebihVIM
ketika saya menyalin dan menyisipkan dokumen teks atau file konfigurasi yang saya gunakancat
perintah. Ini karena ketika saya mencobactrl-c
dan kemudianctrl-v
keVIM
dokumen yang dibuka, itu memaksa semua baris untuk memiliki komentar di depan mereka. Jadi ketika saya gunakanVi
untukctrl-v
ataupaste
ke dalamVi
dokumen yang dibuka, itu menempel persis apa yang saya salin. Selain itu, saya gunakanVIM
sepanjang hari.Nikmati!
sumber
:set paste
Seperti jawaban sebelumnya telah disebutkan, vi hadir dengan hampir semua sistem UNIX di luar sana.
Saya hanya ingin menambahkan contoh. Arch Linux adalah salah satu distro yang sangat populer dan ringan yang tidak ada Penginstalnya, atau distro dasar datang dengan vim secara default, namun keduanya datang dengan vi.
Ini bukan keuntungan untuk viper se , karena Anda hanya dapat menginstal vim secara manual, dan ada sedikit yang perlu Anda capai dalam instalasi yang memerlukan editor teks, dan tidak ada tempat vim lebih unggul daripada vi untuk tujuan yang dimaksud. Tetapi memahami perbedaan dan bahwa vi lebih di mana-mana dan ringan daripada vim memang memberikannya beberapa keunggulan niche.
Juga, hanya untuk menjadi komprehensif, belum ada yang secara eksplisit mengatakan bahwa vi adalah prekursor langsung ke vim. Vim dirancang secara khusus untuk menjadi segala yang ada, dan lebih banyak lagi.
Jadi dengan cara yang sangat langsung, vim lebih unggul dari vi, karena itu dirancang untuk menjadi .
sumber
Satu-satunya alasan untuk menggunakan vi daripada vim adalah ketika Anda tidak punya pilihan lain.
Ada banyak, banyak alasan mengapa vim berarti "vi ditingkatkan"!
Meminjam dari pos terkait saya menjawab: -
sumber
Ini kutipan dari Vim Koans :
Master Wq dan master Unix
Master Unix tua datang ke Master Wq. “Saya bermasalah, Wq. Anda mengajarkan cara Vim. vi adalah suci tetapi Vim tidak; kode-nya tergeletak, fitur-fiturnya memori kerumunan; binernya besar, perilakunya tidak konsisten. Ini bukan cara Unix. Saya khawatir Anda menyesatkan murid-murid Anda. Apa yang bisa dilakukan?"
Tuan Wq mengangguk. "Kamu benar," katanya. “Vim rusak. Mari kita perbaiki. Dapatkah kita memulai?"
Master Unix tua setuju, dan membuka sebuah shell. Dia mengetik:
Dia mulai kode. Master Wq mengawasi sebentar dan kemudian bertanya kepadanya, “Implementasi vi mana yang Anda gunakan? Nvi? Vim? Elvis? "
"Aku tidak tahu," kata master Unix. "Tidak masalah."
Tuan Wq mengangguk. Master Unix duduk tertegun sejenak dan menutup dokumennya tanpa disimpan.
sumber