Saya mengetahui beberapa implementasi vim yang berbeda di Emacs. Ada mode-jahat, viper, vimpulse dan vim-mode. Apakah ada yang lain? Bagaimana mereka membandingkan?
Saya perhatikan bahwa ada banyak evil-*
paket pada MELPA, menyarankan tidak satupun dari mereka yang 100% lengkap fitur. Fitur vim apa yang mereka sediakan, dan fitur vim apa yang tidak ada?
(Saya tidak tertarik pada kebalikannya di mana " satu set makro vi yang merupakan implementasi Emacs cukup lengkap "!)
vim-emulation
Wilfred Hughes
sumber
sumber
Jawaban:
vi
,vip
danviper
(dipesan berdasarkan tanggal pembuatan) dilengkapi dengan Emacs, semuanya meniru VI.vim-mode
adalah upaya baru yang berdiri sendiri untuk benar-benar meniru Vim,vimpulse
adalah satu set tambahanviper
untuk memberikan salah satu fitur Vim yang paling berguna.evil
dibuat sebagai penggantivim-mode
.evil
adalah proyek terbaru dan satu-satunya yang dikembangkan secara aktif. Tujuannya adalah untuk meniru model pengeditan Vim dengan setia, meningkatkan fungsi Emacs yang ada di mana pun ia bisa. Secara pribadi saya akan mengatakan itu sekitar 90% selesai, karena beberapa perintah agak baru (sepertign
) hilang, beberapa fungsi yang berhubungan dengan tampilan cukup sulit untuk diciptakan kembali (seperti tampilan tildes setelah akhir file) dan tidak mengimplementasikan penerjemah Vimscript atau apa pun di luar dasar-dasar mode Ex. Namun lebih mudah untuk memperluas dan mengintrospeksi daripada yang asli,evil-*
ekstensi adalah setara Emacs dengan plugin Vim di hampir semua kasus (evil-leader
misalnya akan menjadi pengecualian karena itu tidak perlu untuk menawarkan mempertimbangkan dukungan keymap Emacs).Menimbang
evil
melampaui Vim pada poin (lihat:s
dan pratinjau visualnya atau betapa sedikit upaya membuat pose mode baru yang berguna ), saya dengan sepenuh hati merekomendasikannya kepada semua orang yang tertarik dalam mengedit modal untuk Emacs.sumber
g/
menjadi perintah yang agak baru di Vim. Saya belum pernah melihatnya, dan tidak dapat menemukan dokumentasi di dalamnya. Apa yang dilakukan di Vim?gn
. Itu mengubah hasil pencarian menjadi objek teks. Juga, sudah diterapkan sekarang.Karena
evil
satu-satunya mode emulasi vim yang dikembangkan secara aktif untuk pengetahuan saya, saya akan membuat jawaban saya spesifik-jahat.evil
sangat berguna dan sangat dekat dengan pengalaman seperti vim, tetapi ada beberapa fitur vim yang kemungkinan besar tidak akan diimplementasikan (dengan desain) dan beberapa yang tidak lengkap tetapi mungkin akan ditambahkan pada akhirnya. Beberapa contoh hal yang kemungkinan besar tidak akan ditambahkan:C-a
danC-x
) tidak akan ditambahkan karenaC-x
terlalu penting dari pengikatan kunci Emacs.\
terikatevil-execute-in-emacs-state
secara default.C-u
tidak terikat untuk menggulir ke atas secara default karena terlalu penting sebagai penjilidan kunci Emacs (meskipun Anda dapat menimpanya denganevil-want-C-u-scroll
).Untuk menemukan daftar fitur vim yang belum diimplementasikan (pada saat penulisan jawaban ini), tempat terbaik untuk melihat adalah pelacak masalah . Contoh acak hal-hal yang ada dalam daftar:
ex
tidak diterapkan .:make
tidak dipetakan keM-x compile
.C-o
dalaminsert
mode tidak berperilaku cukup seperti di vim .Ada banyak lagi, termasuk perintah yang tidak ada dalam daftar masalah terbuka (terutama
ex
perintah yang rumit ), tetapi seperti yang Anda lihat dari daftar, mereka cenderung fitur vim yang cukup kecil atau tidak jelas (vim adalah target yang agak besar untuk mencapai paritas fitur 100%).sumber
Tujuan Evil adalah untuk meniru Vim, sedangkan tujuan Viper adalah untuk meniru Vi. Mode-Vim dan Vimpulse adalah pendahulu dari Jahat dan setahu saya tidak dikembangkan lagi. Proyek Jahat dimulai untuk mengatasi kekurangan dari proyek-proyek ini.
sumber