Perbedaan terbesar antara Vim dan VI


25

Hari ini, saya memutuskan untuk mencoba Vi daripada Vim, saya ingin melihat betapa berbedanya itu. Saya tidak melihat banyak perbedaan sama sekali, hal terbesar yang saya perhatikan adalah bagaimana Vi tidak mengatakan -- INSERT --ketika saya masuk ke mode penyisipan, dan ada beberapa perbedaan antarmuka kecil.

Ini membuat saya bertanya-tanya, apa perbedaan terbesar antara Vi dan Vim?


1
Anda jelas tidak menggunakan banyak fitur canggih vim. blokir pilih, cari kata di bawah kursor, angka kenaikan di bawah kursor, penyorotan sintaks dll.
Jim

Jawaban:


25

Sebenarnya ada perintah bantuan di vim untuk memberi tahu Anda tentang perbedaan: :help vi_diff

Dari situs Vim , yang terbesar adalah:

batalkan tak terbatas

Anda dapat melakukan xxxx dan membatalkan masing-masing dari empat penghapusan. Kapan terakhir kali Anda mengetik "jjjj" dan kemudian menemukan kunci caps lock aktif? Anda secara tidak sengaja menggabungkan lima baris bersama, dan Vi hanya dapat membatalkan perintah terakhir. Di Vim Anda dapat membatalkan keempat perintah "J" dan mendapatkan teks asli Anda kembali.

portabilitas

Vi hanya tersedia di Unix. Vim bekerja pada MS-Windows, Macintosh, Amiga, OS / 2, VMS, QNX dan sistem lainnya. Dan juga pada setiap sistem Unix.

penyorotan sintaksis

Vim dapat diprogram untuk menyorot bagian buffer dalam berbagai warna atau gaya, berdasarkan jenis file yang sedang diedit. Ada ratusan aturan penyorotan sintaks yang dibundel dengan Vim.

GUI

Vim bekerja dengan baik di konsol, tetapi dapat berjalan secara native di banyak GUI, termasuk X Windows, Mac OS, dan Microsoft Windows. Ini menggunakan widget GUI asli untuk menggulir, membagi buffer, dan menu. Itu juga dapat berbicara ke clipboard.


4
Beberapa perbedaan lagi disebutkan dalam faq
Christian Brabandt

Menurut readme , beberapa OS tersebut tidak lagi didukung.
Rolf

7

Vim memiliki banyak fitur yang tidak dimiliki Vi, bahkan fitur yang jelas bukan fitur "canggih".

Dalam praktiknya, ini berarti bahwa jika Anda terbiasa dengan Vi, Anda kemungkinan akan menghadapi sedikit perbedaan jika Anda mulai menggunakan Vim (atau klon Vi lainnya), tetapi jika Anda terbiasa dengan Vim dan jika "refleks" Anda menyertakan fitur-fitur seperti penyorotan mode visual, tindakan tombol apa saja yang dimulai dengan "g" atau "z", tindakan teks apa pun dengan "i" atau "a" [mis. "daw" untuk menghapus kata di bawah kursor], menavigasi dengan tombol panah dalam mode sisipkan , dll, Anda akan menemukan bahwa itu tidak berfungsi di Vi.

Ada juga pertanyaan tentang apa yang sebenarnya Anda gunakan ketika Anda mengatakan Anda "mencoba Vi". Pada banyak sistem, "vi" benar-benar menjalankan Vim, dalam mode di mana beberapa perbedaan ini berlaku (mode tampilan default seperti yang Anda amati, tombol panah tidak berfungsi dalam mode penyisipan) dan yang lain tidak (mode visual dan tombol g / z bekerja ), dan beberapa fitur bergantung pada opsi waktu kompilasi yang kadang-kadang dinonaktifkan di "Vim kecil" yang digunakan untuk ini (objek teks, seperti "aw" kata, adalah salah satunya). Anda tidak akan mendapatkan ini jika Anda menjalankan Vi nyata , atau jika "vi" adalah klon lain dengan fitur yang lebih sedikit atau berbeda dari Vim, seperti nvi atau VILE.

Dan, di sisi yang tidak jelas, sementara "Vim mungil dalam mode Vi" jelas tidak memiliki fitur yang Vim penuh tidak, ada beberapa fitur dari Vi asli asli yang kurang vim. Ini didokumentasikan dalam :help vi-differences.


2
Saya berani bertaruh bahwa OP sebenarnya memiliki "vim kecil" vi.
Kevin

2

Sebagian besar perbandingan memberikan fungsionalitas lebih ke vim daripada vi, tetapi ada satu pengecualian. Ada mode "terbuka" di vi, dan vim tidak benar-benar memiliki mode ini.

Open mode adalah mode single-line yang digunakan pada hari itu dengan terminal yang tidak memiliki tampilan elektronik, yaitu teletype, letterprinters, dan sejenisnya, dan juga dengan display di mana kursor hanya berada di bagian bawah.

Saya tahu ada dokumentasi di luar sana yang mengatakan vim mensimulasikan mode terbuka, tetapi pengalaman saya adalah tidak, karena saya pernah melihatnya menggunakan vi dengan mata saya sendiri, dan saya belum pernah melihat vim melakukannya. Tampaknya vim hanya menggunakan openperintah hanya untuk membuka dan mengedit file dalam mode visual. Saya percaya bahwa dokumentasi resmi vim menyatakan bahwa itu tidak mendukung mode terbuka.


Saya telah menginstal ex-vi.sourceforge.net , yang merupakan port dari Vi asli. Bagaimana cara memulai mode terbuka ini? Halaman manual menyebutkannya ketika berbicara tentang ^R, tetapi tidak memberikan bantuan lain. :open some/filekembali open: No such command from open/visual.
muru

@muru Quntuk masuk ke mode ex, lalu open. zuntuk menunjukkan konteks garis saat ini setelah Anda berada dalam mode terbuka. Untuk mundur, kalau Qbegitu vi.
Antony

0

Saya pikir sangat sulit untuk membuat perbandingan, karena perubahan vi yang telah terjadi seiring waktu.

Ketika saya masih kuliah, saya menggunakan plain-vanilla vi pada terminal bisu (dan juga pada emulator terminal pada Mac) yang terhubung ke mainframe menggunakan Sistem V. Anda bahkan tidak dapat menemukannya lagi.

Tetapi saya bahkan tidak yakin itu benar vi. Sekitar waktu itu ada banyak klon dan port dibuat karena vi bukan open-source pada saat itu. Dan ketika vendor membuat klon, mereka menambahkan fitur yang tidak in vi. Sejarah agak berbelit-belit. Anda dapat membacanya di Wikipedia dan di tempat lain.

Jadi jika Anda tidak menggunakan vendor / perangkat keras tertentu, Anda tidak menggunakan vi, tetapi sesuatu seperti vi.

Tapi saya ingat vi (atau klon yang saya gunakan) menjadi sangat minimalis dalam antarmuka (tidak ada warna, tidak ada label INSERT, tidak ada unduhan mulitple, dll) namun kuat dalam apa yang sebenarnya bisa dicapai. Sangat praktis.


0

Vim FAQ memiliki daftar yang diformat dengan baik: https://vimhelp.org/vim_faq.txt.html#faq-1.4

Kutipan dari FAQ:

  • Undo multi-level
  • Tab, Beberapa jendela dan buffer
  • Mode penyisipan fleksibel (dapat menggunakan tombol panah dalam Mode Penyisipan)
  • Makro
  • Mode visual (pilih bagian teks secara visual)
  • Blokir operator
  • Sistem bantuan online
  • Pengeditan dan riwayat baris perintah
  • Penyelesaian baris perintah (penyelesaian tab)
  • Pengguliran horizontal (garis panjang)
  • Unicode dan peningkatan internasionalisasi.
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.