Apa pro dan kontra Vim dan Emacs?

372

Bagaimana Anda membandingkan editor ini? Apa pro dan kontra dari masing-masing?

[ catatan ] Ini tidak dimaksudkan untuk dijawab oleh mereka yang "membenci satu dan mencintai yang lain" atau mereka yang belum menggunakan keduanya.

John Berryman
sumber
1
M-! emacs RETIni seperti mencari google untuk "google"
Seamus
11
Duplikat pertanyaan SO: stackoverflow.com/questions/1430164/… dari ubuntu askubuntu.com/questions/804/… dan programmer programmer.stackexchange.com/questions/1271/…. Harus menyukai penyebaran di sini.
Trey Jackson
27
Saya terkejut tidak ada yang menyebutkan XKCD 378 .
tedder42
9
Perhatikan bagaimana pertanyaan-pertanyaan ini tidak pernah repot meminta perbandingan dengan Ed, satu-satunya editor WYGIWYG yang sejati!
Mark K Cowan
4
@ tedder42 Maka Anda mungkin juga menyatakan "Mel" ...
Tobias Kienzler

Jawaban:

420

Saya menggunakan keduanya, meskipun jika saya harus memilih satu, saya tahu mana yang akan saya pilih. Namun, saya akan mencoba membuat perbandingan objektif pada beberapa masalah.

  • Tersedia di mana-mana? Jika Anda seorang administrator sistem profesional yang bekerja dengan sistem Unix, atau pengguna daya pada perangkat yang disematkan (router, smartphone dengan Busybox, ...), Anda perlu tahu vi (bukan Vim), karena tersedia di semua sistem Unix dan sebagian besar Sistem seperti unix, baik desktop, server atau embedded. Untuk pengguna biasa, argumen ini tidak relevan: Emacs mudah tersedia untuk setiap OS desktop / server, dan karena mendukung pengeditan jarak jauh, cukup untuk menyimpannya di mesin desktop Anda.

  • Bengkak? Emacs pernah berdiri dengan penuh humor untuk "Delapan Megabita dan Terus Bertukar". Saat ini, di mesin saya, Google Chrome membutuhkan sekitar RAM per tab seperti halnya Emacs untuk 100 file terbuka, dan saya bahkan tidak akan menyebut Firefox. Di abad ke-21, Emacs mengasapi hanyalah mitos.

    Fitur mengasapi juga tidak masalah. Jika Anda tidak menggunakannya, Anda tidak perlu tahu itu ada di sana. Fitur Emacs menghalangi ketika Anda tidak menggunakannya dan dokumentasinya terorganisasi dengan sangat baik.

  • Waktu mulai : Para pendukung (l) mengeluh tentang waktu startup Emacs. Ya, Emacs lambat untuk memulai, tetapi ini bukan masalah besar: Anda memulai Emacs sekali per sesi, lalu sambungkan ke proses yang sedang berjalan dengannya emacsclient. Jadi startup lambat Emacs sebagian besar adalah mitos.

    Ada satu pengecualian, yaitu ketika Anda masuk ke mesin jarak jauh dan ingin mengedit file di sana. Memulai Emacs jarak jauh (biasanya) lebih lambat daripada memulai Vim jarak jauh. Dalam beberapa situasi Anda dapat membuat Emacs berjalan di dalam Layar. Anda juga dapat mengedit file jarak jauh dari dalam Emacs, tetapi itu memecah aliran jika Anda berada di sesi ssh di terminal. (Karena XEmacs 21 atau GNU Emacs 23, Anda dapat membuka jendela Emacs dari instance X yang berjalan di dalam terminal.)

    Membalik tabel, saya telah mengamati Vim mengambil memuat lebih lama daripada Emacs ( vim -u /dev/nullvs emacs -q). Diakui ini pada platform yang aneh (Cygwin).

  • Kurva pembelajaran awal: Ini bervariasi dari orang ke orang. Grafik Michael Mrozek membuatku tertawa. Serius, saya setuju bahwa kurva belajar Vim mulai curam, lebih curam daripada editor lainnya, meskipun ini dapat dikurangi dengan menggunakan gvim.

    Karena saya telah menghilangkan beberapa mitos Emacs, izinkan saya menghilangkan mitos vi: editor modal tidak sulit atau menyakitkan untuk digunakan. Dibutuhkan sedikit kebiasaan, tetapi setelah beberapa saat rasanya sangat alami. Jika saya mendesain ulang vi (m), saya pasti akan mempertahankan modenya.

  • Kurva belajar asimtotik: Baik Vim dan Emacs memiliki banyak fitur, dan Anda akan terus menemukan yang baru setelah bertahun-tahun digunakan.

  • Produktivitas : Ini adalah topik yang sangat sulit. Para pendukung vi (m) berpendapat bahwa Anda dapat melakukan hampir semua hal tanpa meninggalkan barisan rumah, dan itu membuat Anda lebih efisien ketika Anda sangat membutuhkannya. Para pendukung Emacs membalas bahwa Emacs memiliki banyak perintah yang tidak sering digunakan, jadi jangan menjamin pengikatan kunci, tetapi sangat nyaman ketika Anda membutuhkannya ( referensi xkcd wajib ).
    Pendapat pribadi saya adalah bahwa Emacs akhirnya menang kecuali Anda memiliki cacat pengetikan (dan bahkan kemudian Anda dapat mengonfigurasi Emacs hanya memerlukan urutan kunci dan bukan kombinasi seperti Ctrlhuruf +). Kunci baris rumah bagus, tetapi seringkali tidak terlalu banyak menang karena Anda harus beralih mode. Saya tidak berpikir ada yang bisa dilakukan Vim secara signifikan lebih efisien daripada Emacs, sedangkan yang sebaliknya benar.

  • Kustomisasi : Kedua editor dapat diprogram, dan ada banyak paket yang tersedia untuk keduanya. Namun, Vim adalah editor dengan bahasa makro; Emacs adalah editor yang ditulis dalam Lisp dengan beberapa primitif ad-hoc. Emacs menang secara spektakuler ketika Anda mencoba melakukan sesuatu yang tidak terpikirkan oleh penulis. Ini tidak terjadi setiap hari, tetapi menumpuk selama bertahun-tahun.

  • Lebih dari seorang editor : Vim adalah seorang editor. Emacs bukan hanya editor: ini juga merupakan IDE, manajer file, terminal emulator, browser web, klien email, klien berita, ... Apakah itu hal yang baik atau buruk adalah masalah untuk diperdebatkan. Tetapi Anda dapat menggunakan Emacs sebagai editor biasa (lihat “fitur mengasapi” di atas).

  • Sebagai IDE : Baik Vim dan Emacs memiliki dukungan untuk banyak bahasa pemrograman dan format teks lainnya. Di luar dasar-dasar seperti pewarnaan sintaksis dan lekukan otomatis, keduanya memiliki fitur IDE canggih seperti pencarian kode dan dokumentasi referensi silang, penyisipan dan refactoring yang dibantu, kontrol versi terintegrasi, dan kemampuan untuk memulai kompilasi dan melompat ke kesalahan pertama.

    Satu domain di mana Emacs jelas lebih baik daripada Vim adalah interaksi dengan subproses asinkron . Saat itulah Anda memulai kompilasi yang panjang dan ingin melakukan hal lain di dalam instance editor yang sama saat kompiler berputar. Atau ketika Anda ingin berinteraksi dengan loop Read-eval-print - Emacs benar-benar bersinar dalam hal ini, Vim hanya menawarkan peretasan yang canggung. Namun demikian, garpu baru vim, Neovim telah membuktikan telah memperbaiki ini dan menerapkan berbagai perbaikan bug lainnya yang tidak diterapkan dalam vim saham.

Gilles
sumber
34
Saya tidak setuju dengan poin "Lebih dari sekadar editor". Vim juga memiliki banyak plugin, termasuk yang mengubahnya menjadi file manager atau IDE (seperti vim-latex).
rozcietrzewiacz
7
Ini membuat saya merasa kecil ...
gnometorule
10
@rozcietrzewiacz: Ya, tetapi bisakah Anda menjelajahi web di Vim? Baca email? Periksa umpan RSS Anda? Saya tidak berpikir Anda dapat menyangkal bahwa Emacs hanya lebih kuat, meskipun kegunaan kekuatan itu tergantung pada apa yang Anda cari.
musicfreak
3
@Bananguin Emacs lebih baik dalam hal apa pun yang melibatkan interaksi dengan REPL . Misalnya Bukti umum sangat bagus (tentu saja itu adalah domain aplikasi yang sangat sempit). Emacs pandai melakukan hal-hal yang tidak pernah dipikirkan sebelumnya: Emacs Lisp jauh lebih baik daripada bahasa makro Vim. Emacs cenderung memiliki dukungan yang lebih baik untuk indentasi kode sumber tetapi saya tidak berpikir itu merupakan cacat Vim karena kurangnya perpustakaan (dukungan Vim cenderung terbatas pada penyorotan sintaksis).
Gilles
5
@MichaelHampton Kamu pasti masih muda. Pada tahun 1985, itu adalah Delapan Megabita . Pada saat ini saya kira seharusnya delapan ribu Megabytes, kecuali bahwa tidak ada yang memperhatikan penggunaan memori Emacs karena kurang dari satu tab browser.
Gilles
267

Saya akan memposting apa yang menurut saya manfaat utama dari masing-masing:


Emacs memiliki ekstensi yang jauh lebih banyak untuk memungkinkan Anda melakukan tugas-tugas yang hanya terkait dengan editor teks, seperti menelusuri sistem file atau mengacaukan kontrol versi, dan ekstensi yang sama sekali tidak terkait dengan editor teks, seperti membaca feed RSS. Jika Anda menginginkan lingkungan dan bukan hanya editor teks, Emacs akan lebih baik daripada Vim. Saya juga berpikir Emacs jauh lebih mudah dipelajari, terlepas dari apa yang mungkin Anda yakini:

Editor kurva belajar komik

Secara khusus, saya pikir pengguna Emacs pemula akan lebih cepat daripada pengguna Vim pemula


Di sisi lain, Vim tidak dapat disangkal lebih cepat. Sepertinya ini adalah bagian inti dari argumen, tetapi menurut saya tidak ada kontes sama sekali; Saya menganggap diri saya sebagai pengguna Emacs yang fasih, dan saya tidak cocok untuk pasangan orang yang saya kenal yang memiliki pengetahuan yang sama tentang Vim. Masalahnya adalah, jumlah orang yang memiliki penguasaan Vim yang cukup untuk menjadi secepat itu sangat kecil (dari ~ 30 orang yang saya ajak bicara secara teratur yang menggunakan Vim, saya pikir hanya satu yang sangat bagus dalam hal ini). Ada kesenjangan besar antara kemungkinan kenaikan kecepatan dan kenaikan kecepatan aktual yang Anda raih; Pengguna Emacs akan hampir secepat 99% dari pengguna Vim, dan (seperti yang saya katakan di bagian Emacs) memulai pengguna Emacs mungkin akan lebih cepat daripada memulai pengguna Vim

Michael Mrozek
sumber
8
umm ... Saya tahu vim memiliki lebih dari satu plugin kontrol versi. dan salah satu dari plugin tersebut mendukung semua sistem yang populer .... jika emacs memiliki lebih ... berapa banyak dari mereka yang Anda perlukan yang melakukan hal yang sama?
xenoterracide
13
@ xeno Saya tidak tahu apa yang dimiliki plugin vim, jadi mungkin VCS adalah contoh yang buruk, tapi saya sangat yakin Emacs memiliki jauh lebih banyak plugin daripada vim, karena vim tidak berlangganan filosofi "satu program melakukan segalanya"
Michael Mrozek
4
Bisakah seseorang menjelaskan apa arti grafik emacs, yang diberikan di atas? Bagaimana menafsirkannya?
Andrew-Dufresne
27
Lelucon "ke lubang kelinci" ... Itu karena ketika Anda mempelajari emacs, akhirnya Anda mulai membuat emacs juga. (karena Emacs sebenarnya hanyalah kumpulan besar pengeditan makro / rutin yang ditulis dengan interpreter Lisp.)
ocodo
15
+1 kecepatan dan pengalaman Anda bagus, tapi mungkin 99% sedikit ekstrem. Maksud saya vim bukan "yang" sulit dikuasai, hanya perlu beberapa tahun;)
Johan
81

Ada vitersedia di setiap sistem unix (atau hampir), namun Anda tidak bisa mengatakan ini tentang editor lain. Ini adalah alasan # 1, imo, untuk mempelajari dan membiasakan diri dengan vi(harap dicatat 'vi' bukan 'vim'). Saya belum pernah melihat Emacs tersedia di instalasi default.

Saya tidak mengatakan jangan menggunakan Emacs atau ini adalah satu-satunya alasan untuk menggunakan Vim, tetapi ketika Anda ingin dapat menggunakan sistem Unix yang bukan milik Anda ... viadalah bagian dari bahasa universal.

xenoterracide
sumber
1
Saya cukup vimpengguna, tetapi saya sering merasa sulit untuk digunakan vi, kemungkinan besar karena tombol END (vim mendukungnya, tetapi vi tidak, atau setidaknya tidak secara default)
phunehehe
25
@ phunehehe jika saya mencoba menggunakan nanosaya berakhir dengan sejumlah ijkloOah di file saya ... sampai saya menyadari bahwa saya tidak dapat menggunakan itu untuk navigasi. Saya tidak menggunakan tombol panah untuk bernavigasi.
xenoterracide
5
Ini berlaku ganda untuk menghubungkan ke server lambat di koneksi yang cerdik: satu editor mereka dijamin memiliki (itu dalam spesifikasi Unix, saya pikir?) Adalah vi, dan mode perintah vi membuatnya lebih mudah untuk mengedit file dengan penekanan tombol lebih sedikit ketika setiap keystroke membutuhkan beberapa detik untuk muncul di layar Anda. Tentu saja, langkah # 1 biasanya menginstal vim:)
Gaurav
12
@ phunehehe saya tidak menggunakan esc. Saya menggunakan ctrl + [ia melakukan hal yang sama;)
xenoterracide
8
+1 untuk komentar Gaurav. Vi bekerja sangat baik untuk pengeditan darurat file konfigurasi melalui koneksi 3G jelek pada ponsel yang lambat.
LawrenceC
23

Saya pikir mereka berdua luar biasa. Saya pikir salah satu dapat melakukan apa saja yang dapat Anda bayangkan, dan keduanya sangat dapat disesuaikan, sehingga pada saat Anda selesai menyesuaikan mereka, mereka berdua persis seperti yang Anda inginkan, tidak lebih dan tidak kurang.

Emacs menonjol bagi saya karena sedikit lebih dekat (walaupun masih belum memenuhi) dengan standar kegunaan dan konsistensi ISO / IEC untuk antarmuka pengguna, dan karenanya tidak memainkan banyak trik dengan "insting" Anda tentang vim. Naluri seumur hidup yang telah Anda kembangkan bekerja dengan program lain tidak akan merugikan Anda.

Vim adalah model yang sama sekali berbeda, dan dalam banyak hal, ia lebih unggul dengan sendirinya sejauh mengandalkan jauh lebih sedikit pada urutan Cntrl / Alt, dan alih-alih hanya pada modenya, memungkinkan Anda untuk menjaga kesulitan Anda di baris rumah dan mengetik. lebih cepat. Tetapi vim sebenarnya unik, dan kecuali Anda menginstal beberapa perangkat lunak yang sangat tidak biasa (mis. Vimperator, Jumanji / Zathura, dll.), Naluri yang Anda kembangkan bekerja dengan vim tidak akan berpindah ke program lain dan sebaliknya. Yang mengatakan, saya sudah memutuskan sendiri. Anda harus menyelesaikannya cepat atau lambat, baik atau buruk, karena sulit untuk menguasai keduanya.

luar biasa
sumber
1
Satu komentar tentang baris "naluri yang Anda kembangkan bekerja dengan vim tidak akan menyeberang ke program lain": Baris "atur mode edit vi" dapat ditambahkan ke file ~ / .inputrc (pada sistem Linux yang mendukungnya) . Ini memungkinkan sintaks vi-style untuk memasukkan teks dalam program menggunakan readline untuk stdin, seperti bash shell itu sendiri. Mungkin ada (terkadang secara mengejutkan) cukup banyak penerapan yang lebih luas pada insting penyuntingan yang dikembangkan menggunakan vim.
Christian Abbott
Untungnya, ada banyak orang dengan masalah itu, dan mereka telah membangun ekstensi untuk banyak program agar lebih mirip vim .
DarkWiiPlayer
21

Saya menggunakan keduanya secara teratur. Saya melihat Emacs sebagai editor "langsung", sedangkan saya menggunakan Vim untuk tugas cepat, sekali saja. Secara dangkal, Emacs jauh lebih membengkak daripada Vim, dan karenanya benar-benar tidak begitu nyaman untuk "Nyalakan" seperti Vim, tetapi saya juga menemukan bahwa filosofi antarmuka pengguna dari satu ke yang lain mendukung paradigma ini. Emacs jauh lebih dibangun untuk membuat Anda tetap di dalam, membuat hal-hal bagus dan nyaman sehingga Anda tidak harus pergi, sedangkan vim jauh lebih "Unixy" dan melihat dirinya sebagai bagian dari sabuk alat yang lebih besar.

Banyak orang melarikan diri dari Emacs karena ketergantungannya pada bit-bit kecil , tetapi ini adalah alasan yang cukup konyol bagi saya. Kekuatan nyata yang dimiliki Emacs atas Vim adalah kemampuan kustomisasi, dan dengan kekuatan Viper dll, ini sebenarnya bukan masalah. Tentu saja Vim-Script menyediakan tingkat kustomisasi sendiri, dan jika, katakanlah, bahasa pemrograman favorit Anda tidak dilengkapi dengan highlighter sintaksis yang sesuai Anda tentu bisa memasak satu, tetapi Emacs pada akhirnya adalah mesin pembuat hosting sendiri, dan pada akhirnya Anda bisa berbuat banyak, lebih mengutak-atiknya. Hanya tidak ada alat seperti gnus atau mode-org di Vim, untuk beberapa nama. Singkatnya, Emacs bukan hanya editor, itu praktis sistem operasi terkutuk.

Untuk memanipulasi teks, saya katakan mereka persis setara.

Eli Frey
sumber
30
"Emacs akan menjadi sistem operasi yang hebat, andai saja ia memiliki editor teks yang berharga." - Saya teringat akan kutipan ini.
amfetamachine
@amphetamachine Saya tidak mendapatkan penawarannya. Apakah ini berarti merendahkan emacs-the-text-editor?
tshepang
Itu memang berarti, meskipun saya biasanya mendengarnya lebih dari itu.
Polling Cody
Adapun editor sendiri, saya menemukan vim lebih mudah untuk mengedit teks, tetapi saya harus menyerahkan kustomisasi ke emacs. Vimscript tidak bisa tahan terhadap kekurangan.
Polling Cody
19

Saya akan menaruh nilai $ 0,02 saya, karena saya menghabiskan beberapa tahun menggunakan emacs dan XEmacs dan kemudian pindah ke vim. Agar adil, saya sebenarnya telah menggunakan vi sedikit sekitar tahun 1990-1992 jadi saya terbiasa dengan antarmuka penggunanya.

Emacs

  • Emacs telah digambarkan sebagai sistem cadel yang kebetulan digunakan untuk menulis editor, dan ada butir kebenaran dalam hal ini. Anda dapat menerapkan hampir semua hal yang Anda inginkan di elisp jika Anda ingin meluangkan waktu untuk memahami lingkungan. Saya tidak bisa mengatakan bahwa saya pernah mengetahuinya dengan baik, tetapi saya melakukan hal-hal yang aneh. Emacs dan Xemacs tidak sepenuhnya kompatibel pada level ini, jadi skrip pihak ketiga dapat berjalan pada satu tetapi tidak yang lain.

  • Telah diamati bahwa RMS dan beberapa peretas Emacs terkemuka lainnya harus pensiun dari pemrograman karena masalah dengan OOS, di mana Bill Joy, Bram Moolenaar dan berbagai tokoh lainnya masih berada di sana. Emacs keras pada jari kelingking Anda.

  • Emacs adalah sistem yang jauh lebih katolik daripada vi, dan dipandang sebagai contoh kanonik dari perangkat lunak . Bersama dengan Netscape, ini adalah salah satu kontribusi jwz untuk membuktikan hukum ini.

Satu hal unik yang saya lakukan dengan xemacs dulu adalah menjalankannya pada mesin dan membuka sesi x pada xterminal (sebenarnya Sun 3/60 repurposed lama) di ruangan yang berbeda terhadap buffer yang sama pada instance berjalan yang sama.

Pro: Extensible, lebih kuat daripada editor lain yang dikenal manusia, integrasi matang dengan hampir semua alat pemrograman perangkat lunak bebas utama.

Cons: ergonomis dipertanyakan, elisp tidak mudah dipelajari.

Vim

Disclamer - Saya beralih dari menggunakan emacs ke vim sekitar 10 tahun yang lalu dan saya terbiasa menggunakan vim pada sistem berbasis Windows dan Unix / Linux.

  • Vi dan turunannya memiliki fasilitas makro keyboard yang sangat bagus untuk mengotomatiskan tugas-tugas pengeditan. Fasilitas scripting di vim tidak secanggih elisp, tetapi Anda dapat membangunnya dengan dukungan untuk Python, Tcl, Perl dan mungkin beberapa sistem lainnya. Saya hanya sesekali menulis skrip (di luar file .vimrc) untuk vim.

  • Vim memiliki jejak kaki yang lebih kecil daripada emacs, tetapi ini bukan masalah besar akhir-akhir ini.

  • Dokumentasi dan bantuan online Vim cukup bagus. Emacs memiliki dokumentasi on-line yang cukup bagus, tapi saya pikir itu tidak selengkap vim.

  • Vim mewarisi antarmuka pengguna modal unik vi, tetapi memiliki kemampuan untuk berperilaku seperti editor tanpa mod sekarang, karena Anda dapat menavigasi dalam mode penyisipan. Pada Windows, ia dapat berperilaku sangat mirip dengan aplikasi windows.

Pro: Fasilitas makro keyboard yang bagus, ekstensibilitas dan skrip yang bagus, tetapi tidak sebagus emacs. Vim atau editor yang diturunkan vi adalah standar pada kebanyakan jika tidak semua distro linux unix atau keperluan umum. Ergonomi bisa dibilang lebih baik.

Cons: Antarmuka pengguna modal terasa aneh bagi orang yang terbiasa dengan UI Windows. Kurang dari masalah dengan vim hari ini.

ConcernedOfTunbridgeWells
sumber
Saya senang membaca jawaban Anda, tetapi saya kehilangan faktor penentu. Apa yang membuat Anda beralih dari emacs ke vim?
Erik B
Itu hanya organik - plus macro keyboard vim bekerja dengan sangat baik.
ConcernedOfTunbridgeWells
1
Sial, sebagai programmer yang lebih muda, argumen ergonomi sangat menarik. Ini mungkin hanya memutuskan pilihan saya untuk pergi dan belajar VI dan VIm daripada Emacs.
Didier A.
15

Saya biasanya menggunakan Vim, tetapi mereka berdua adalah editor yang hebat.

Belajar menggunakan vi itu jahat, tetapi saya berhasil melewatinya dan belajar untuk menyukainya. Momen paling frustasi saya adalah ketika kunci caps lock menyala. Anda dapat mencoba dengan gVim, tetapi salah satu keuntungan terbesar dengan vi dan Emacs adalah kemampuan untuk melakukan hal-hal yang rapi sambil tetap menggunakan keyboard, dan gVim kemungkinan akan membuat Anda tetap menggunakan mouse. (Belajar bermain game roguelike pada saat yang sama memberi saya latihan dengan tombol gerakan kursor, tetapi terkadang membuat saya mencoba untuk bergerak secara diagonal dalam dokumen.)

Emacs mungkin lebih mudah didekati. Ini modeless, dan Anda tidak akan mengacaukan diri Anda dengan menekan tombol caps lock. Gagasan mengendalikan editor melalui mengetik huruf dengan tombol kontrol turun seharusnya tidak terlalu asing bagi pengguna listrik modern, meskipun kunci sebenarnya untuk melakukan sesuatu akan tampak liar dan sewenang-wenang untuk pengguna Windows / Mac OS X yang khas. Sekali lagi, versi yang memungkinkan Anda untuk menggunakan mouse akan membantu Anda dalam jangka panjang.

Keduanya membutuhkan beberapa tingkat keahlian untuk digunakan secara efektif. Tidak seperti, katakanlah, Notepad, Anda tidak bisa hanya duduk dan mengedit.

Keduanya dapat dikonfigurasi, meskipun untuk ekstensi penulisan uang saya di Lisp yang sama editor yang ditulis dalam membuat pengalaman yang lebih halus. (Emacs, seperti yang biasanya didistribusikan, sebenarnya bukan editor. Ini adalah lingkungan Lisp yang dirancang untuk pemrosesan teks, dengan banyak perangkat lunak yang sudah ditulis sebelumnya, termasuk editor. Oleh karena itu lelucon "Emacs membuat shell yang layak, tetapi bisa menggunakan editor yang lebih baik. ")

Saya biasanya menggunakan Vim karena, setelah pelatihan yang ekstensif, rasanya lebih mudah. Ini mungkin karena keuntungan dalam sistem mode, di mana sejumlah besar perintah tersedia menggunakan satu jari di dekat baris rumah, atau "sindrom bebek bayi", yang berlaku sangat banyak untuk editor: setelah Anda belajar yang baik, Anda biasanya tetap untuk itu.

Anda tidak akan salah menggunakan salah satu.

David Thornley
sumber
9

Alasan utama saya tidak menggunakan vi / vim adalah karena modalnya. Alasan utama saya menggunakan vi adalah bahwa ini tersedia hampir di mana-mana.

Dennis Williamson
sumber
12
Alasan utama saya menggunakan vim adalah karena modalnya. Kurva belajar lebih tinggi, tetapi jauh lebih mudah digunakan begitu Anda terbiasa.
Kris Jenkins
1
Perlu dicatat bahwa jika Anda menyukai pengeditan modal, Emacs memiliki dukungan yang baik untuknya melalui mode jahat - emacswiki.org/emacs/Evil
Charles Stewart
9

Saya kebetulan berpikir bahwa komentar "vim is modal" di atas tidak benar. Vim memiliki perintah. Anda dapat melakukan "11a Sekarang adalah waktu untuk semua orang baik .." dan berakhir dengan 11 baris teks baru yang identik dalam file Anda. Itu perintah, bukan mode. Tapi sebenarnya ada perbedaan yang sangat mendasar dalam perintah Vim vs perintah Emacs. Saya tidak sepenuhnya yakin saya bisa menggambarkannya, tetapi Eric Fischer memasukkan pengeditan garis gaya Emacs dalam driver TTY 10+ tahun yang lalu, dan menerbitkan makalah tentang itu:

http://www.usenix.org/event/usenix99/full_papers/fischer/fischer.pdf

Dia menemukan bahwa mengedit garis gaya Emacs pada dasarnya berbeda dari vi-gaya.

Jadi Emacs memiliki kelebihan bahwa banyak hal lain (bash, gnuplot, zsh, ksh beberapa yang lain saya tidak bisa memikirkannya dari atas kepala saya) semua akhirnya menerapkan pengeditan garis gaya Emacs.

Saya harus mencatat bahwa saya pribadi menggunakan Vim sepanjang waktu. Saya hanya pengguna Emacs yang sangat jarang.

Bruce Ediger
sumber
1
set -o vidi bashatau zshtidak terlalu sulit untuk menjalankan (atau dimasukkan ke dalam sebuah rcfile) menurut saya.
moon.musick
@ moon.musick - tentu saja tidak, saya selalu melakukannya. Hanya saja gnuplot, Postgresql psql, MySQL, mysqldan banyak antarmuka lainnya semuanya melakukan mode Emacs secara default. Kalau saja Oracle bisa sqlplusmelakukan pengeditan baris perintah ... tidak, tidak. Itu akan terlalu banyak untuk diminta dari Perusahaan Besar. Mereka memiliki Tren Untuk Diikuti!
Bruce Ediger
Ya, paling sering inputrcmelakukan hal untuk alat shell, tetapi kemudian saya mendapati diri saya bertanya-tanya selama setengah detik mengapa jtidak gulir ke bawah, katakanlah, Mendeley Desktop setelah beralih dari terminal, dan mereka diminta untuk mengikat vim beberapa kali. Sayangnya, tidak dapat mencakup semuanya dan memiliki lingkungan yang konsisten.
moon.musick
2
@BruceEdiger Saya sangat meragukan bahwa pengembang mysql(1), psql(1), gnuplot(1), juga python(1), perlconsole(1), lftp(1), smbclient(1)dan memang banyak program interaktif khawatir tentang keybindings untuk line-editing. Semua perangkat lunak ini hanya menggunakan GNU Readline , dan mode default untuk GNU Readline adalah (tidak mengejutkan) seperti GNU Emacs. set editing-mode vi di ~/.inputrcvoila dan Anda - semua alat ini memiliki gantungan kunci vi-like.
Dmitry Alexandrov
9

Karena belum dinyatakan secara eksplisit, saya akan menambahkan bahwa tidak ada lingkungan pemrograman yang lebih baik (Lisp dalam kotak, SLIME, dll.) Daripada distribusi Emacs yang sedikit dimodifikasi. Semua kebutuhan pemrograman saya (99%) dipenuhi dari dalam Vim, tetapi untuk semua pustaka dan rutinitas Lisp yang saya tulis, saya harus menjalankan Emacs untuk menyelesaikan sesuatu yang produktif.

Shamster
sumber
8
Saya terkadang bertanya-tanya apakah ini mengatakan lebih banyak tentang Lisp atau tentang Emacs, dan apakah itu baik atau buruk ...
Kevin Cantu
8

Saya menggunakan Vim / gVim.

Saya dulu menggunakan Emacs, tetapi saya menemukan gVim umumnya bekerja lebih cepat pada mesin yang lebih lambat, plus, karena persyaratan POSIX-nya, vi tersedia hampir di mana-mana.

Saat menggunakan Vim atau gVim, saya sering menggunakan mouse, dukungannya bagus, saya pikir.

Saya mulai menggunakan Emacs, karena lebih mudah digunakan untuk pengguna pemula. Saya menemukan penggunaan nano menjadi cukup rentan karena beberapa alasan, dan pada titik tertentu saya menyadari bahwa saya jauh lebih nyaman dengan menggunakan vi.

Sekarang, ini campuran. Saya menggunakan Eclipse dan gedit juga cukup sering. Vim, bagaimanapun, masih menjadi editor favorit saya dan paling banyak digunakan.

polemon
sumber
7

Saya menggunakan gVim dan Emacs dengan cukup baik untuk menjadi produktif, meskipun saya tidak ahli dalam keduanya. Satu hal yang dapat saya katakan dengan pasti adalah bahwa Vim dan gVim berjalan lebih cepat pada laptop Windows 7 saya (yang harus saya gunakan di tempat kerja). Emacs, pada kotak Windows, memiliki kebiasaan aneh "berhenti" hingga menit dan menjadi tidak responsif, bahkan sambil terus menerima input keyboard, sebelum memuntahkan semua yang terakumulasi dalam buffer keyboard dengan cepat. Ini tidak terjadi di Mac OS atau Linux. Meskipun demikian saya menemukan diri saya menggunakan Vim atau gVim sebagian besar waktu di semua platform hanya jadi saya tidak harus berhenti dan memikirkan editor mana yang saya gunakan dan sesuaikan. Yang mengatakan, dalam lingkungan murni * nix, saya mungkin akan tetap dengan Emacs karena saya menemukan mengedit modeless sedikit lebih alami.

Intinya: menurut saya kedua editor cukup kuat untuk menangani semua dan semua kebutuhan pengeditan teks. Pilihan harus didasarkan pada pertimbangan praktis (seperti spesifikasi implementasi platform), dan gaya kerja.

Sayap Flanagan
sumber
3

Perbedaan utama antara Emacs dan Vim adalah ergonomis. Ada sindrom carpal tunnel, CTS, seperti yang Anda tahu. Emacs sangat "berbahaya" jika Anda memiliki CTS dan memprovokasi CTS. Vim - tidak, Anda dapat membaca tentang perbedaan ini di banyak tempat. Misalnya, di Vim Anda dapat mengedit teks hanya dengan satu jari. Dalam Emacs - Anda tidak bisa :)

Paul
sumber
3
Bahkan tidak terbukti bahwa CTS sebenarnya terkait dengan penggunaan keyboard. Meskipun dangkal masuk akal, ada tautan yang menunjukkan bahwa CTS sebenarnya disebabkan secara genetik lebih dari yang lain. Jadi sementara masih dapat membantu untuk mengetik kurang bila Anda sudah memiliki CTS, saya tidak berpikir ada apa bukti untuk mengatakan bahwa salah satu editor yang menyebabkan CTS lebih dari yang lain.
Konrad Rudolph
-2

Saya menggunakan vi/ nvi(TIDAK vim) karena itu sederhana dan tidak mengganggu.

vimmencintai beep jauh lebih sulit dan agak tidak jelas untuk dimatikan. Saya harus secara fisik menghapus speaker pc internal sebelum akhirnya menemukan bahwa terkubur-ref tentang bagaimana melakukannya :)

set vb t_vb=

Juga saya tidak menggunakan pewarnaan sintaks, abu-abu di atas hitam bagi saya adalah yang paling indah.

Dan mungkin saya terlalu bodoh untuk mencari tahu emacscara kombinasi tiga tombol yang kusut itu satu- satunya kombinasi kunci yang saya ingat adalah CTRL-ALT-DEL.

aa.
sumber
-2

"Apa pro dan kontra Vim dan Emacs?" - ha!

Saya sebagian besar akan menyerahkan pro kepada orang lain.

Kontra dari keduanya adalah bahwa keduanya adalah sekolah tua. Saya telah menggunakan mungkin 50 editor berbeda selama bertahun-tahun mulai dari editor garis Dasar, hingga editor berkode perakitan super cepat (VEDIT untuk satu), untuk menyukai editor GUI, beberapa lebih baik daripada yang lain. Saya bahkan telah menulis editor khusus saya sendiri bernama ForthStar dan mengadaptasinya untuk mengedit pohon daun btrieve, dengan beberapa indeks untuk pencarian yang kuat, seperti untuk langsung menemukan daun terakhir yang baru saja saya edit, atau dengan cepat menemukan komponen kode, atau meninggalkan orang tua daun atau anak-anak.

Saya pikir baik vi dan emacs lebih beragama daripada otot. Pikiran kreatif yang membangunnya sebagian besar telah bergerak maju, dan dukungan baru tersebut tidak memiliki keberanian dan keterampilan untuk menemukan kembali mereka.

Ya, Emacs dapat melakukan banyak hal, tetapi diperlambat oleh bahasa, bahasa yang indah dan sekarang sudah usang.

Keduanya terjebak dalam tata letak keyboard yang sulit. Emacs dapat menyesuaikan sedikit ke pengguna, setidaknya dengan mengakui bahwa ada tombol Alt daripada Meta antik. Dan seperti WordStar mengenali bahwa menjaga CA CB langsung dari CA B saat mengetik cepat tidak sebanding dengan perbedaannya. Lebih baik hanya memiliki satu yang dipecat oleh salah satu tombol kombo. Ya, Anda dapat mengubah binding utama, tetapi kemudian berantakan sekali.

Vi pintar, tetapi tidak memiliki pencarian dan penggantian yang kuat seperti di Notepad ++ yang menunjukkan kepada Anda apa yang ditemukan, memungkinkan Anda memperluasnya dan secara selektif menerapkannya, dalam warna, hanya untuk menyebutkan satu inovasi.

Hampir semua ap GUI lain hari ini memungkinkan zoom dengan roda mouse. Emacs GUI tampaknya tidak berhasil. Dan di mana yunani yang bagus seperti apa yang dimiliki Kate?

Tata letak keyboard favorit saya selama bertahun-tahun adalah berlian kursor Wordstar. Setidaknya itu mudah dipelajari dan masuk akal segera. Yang paling saya benci adalah WordPerfect yang meningkatkan kompleksitas dan agaknya didasarkan pada emacs.

Mari kita hadapi itu sebagian besar dunia memiliki GUI hari ini. Dan suka atau tidak editor teks agak terjebak dalam usia mereka.

Saya pikir akan lebih baik untuk memiliki editor universal yang dapat dengan mudah beralih di antara emacs, vi, wordstar, atau tata letak kunci apa pun, dan tanpa kehilangan perintah yang lebih kuat yang ditawarkannya. Pemrogram sungguhan harus menggunakan berbagai alat pengeditan. Mengapa tidak memiliki editor yang memenuhi kebutuhan kita untuk menyelesaikan pekerjaan alih-alih memaksa kita ke jalan mereka dalam melakukan sesuatu?

Tampilan elips
sumber
Karena pertanyaan menanyakan pro dan kontra, ini tidak menjawab pertanyaan. Sejauh yang saya bisa lihat, hanya menyebutkan bagaimana editor lain lebih baik daripada Vi dan Emacs.
Kusalananda
Setiap jawaban tidak apa-apa untuk sebuah pertanyaan, sampai mereka menjawab pertanyaan dan mereka pada dasarnya berbeda dengan yang sebelumnya. "Terlihat Baik".
peterh
Q jelas meminta kontra. Dan saya menyebutkan beberapa pro.
Tampilan elips