Perang editor

**Perang editor** adalah debat dalam komunitas pemrograman komputer tentang editor teks mana yang paling baik untuk kegunaan umum, hal ini biasa terjadi dalam budaya peretas. Kedua pihak yang bersaing ketat kebanyakan adalah orang yang tergolong pada pendukung Emacs dan pendukung vi.

Komunitas ini memiliki tradisi untuk memperlakukan editor kesukaan mereka dengan fanatisme yang hampir-hampir religius. Banyak flame wars telah dikobarkan antar kedua kelompok, masing-masing membela editornya sendiri, dan menghina editor yang lain. Kebanyakan peserta yang ada dalam debat ini mengerti bahwa hal ini hanyalah sekadar  humor saja. Selain itu juga ada perang mengenai sistem operasi dan bahasa pemrograman sampai *[[indent style]] source code.*

Perang editor biasanya melibatkan pendukung Emacs dan `vi`, kedua editor yang sama-sama terkenal dalam sistem operasi Unix dan turunannya. Kebanyakan pemprogram Unix menggunakan salah satu editor ini. Banyak yang dapat menggunakan keduanya, setidaknya untuk kegunaan minimal, dan karena itu merasa layak untuk mengeluarkan pendapat mengenai editor mana yang lebih baik.

## Segi positif Emacs
* Emacs memiliki lebih banyak perintah daripada `vi` dan editor-editor turunannya, walaupun VIM punya hampir sama banyak.
* Emacs adalah scriptable dengan satu variant dari Lisp yang disebut Emacs Lisp, dan memiliki banyak plug-ins seperti gnus newsreader dan banyak software development tools.
* Emacs adalah mirip Swiss Army knife-nya editor, dan menganut motto "big is beautiful". Alasannya adalah karena Emacs berasal dari TECO editor dalam sistem operasi ITS dan TOPS-10, yang lebih tua dari Unix.
* Emacs *mengandung* `vi`, dalam viper-mode (ingat bahwa `vi` bukan vim; Emacs tidak mengandung vim proper).
* Emacs tidak perlu beralih dari "command" mode dan "input" mode.
* GNU Emacs dapat menghitung dalam sistem kalender seperti Mayan atau Discordian, yang tidak dapat dilakukan vi atau editor-editor yang mirip.
* Mode edit khusus untuk 25 bahasa pemrograman termasuk Java, Perl, C, C++, Objective C, Fortran, Lisp, Scheme, dan Pascal (VIM punya semua mode ini juga).
* Mode khusus bahasa scripting untuk Bash, shell lainnya, dan menciptakan Makefiles untuk GNU/Linux, Unix, Microsoft Windows/DOS dan OpenVMS systems.
* Mendukung pengetikan dan tampilan dalam 21 bahasa non-Inggris, termasuk bahasa Tionghoa, Ceko, Hindi, Ibrani, Rusia, Vietnam dan semua bahasa Eropa barat.
* Menciptakan PostScript output dari plain text files dan memiliki mode edit khusus untuk document presentation formats seperti LaTeX, TeX, dan .
* Debug dari dalam Emacs
* Memiliki program ChangeLogs
* Fungsi gabung file dan diff
* Navigasi directory: dapat menggunakan dired untuk menandai, memindahkan dan menghapus file dan sub-directory secara rekursif.
* Menggunakan Emacs sebagai shell sendiri
* Version control management untuk release dan beta versions, dengan CVS dan RCS integration.
* Pengguna Emacs berpendapat bahwa editor ini adalah contoh filosofi Unix yang lebih baik karena pengguna dapat menambahkan sebuah mode (atau program) kepada Emacs dengan Emacs Lisp interpreter, sedangkan pengguna `vi` harus menulis versi `vi` baru, menghasilkan messy monolithic crufty program; dalam pandangan ini (misalnya oleh Eric S. Raymond dll), Emacs bukan hanya sebuah program tapi juga adalah sebuah portable framework di mana modul-modul dapat ditambahkan bila perlu. VIM juga memiliki bahasa scripting yang berfungsi sama.

## Segi positif <code>vi</code>
* `vi` lebih kecil dan cepat daripada Emacs dan tidak perlu banyak overhead. Lihat feature creep.
* `vi` terdapat di semua sistem operasi berdasar Unix seperti tercantum dalam POSIX standard.
* Pengguna `vi` berpendapat bahwa editor ini menerapkan filosofi design Unix ("do one thing, and do it well"). Unix tidak mendukung "Swiss Army knives", melainkan alat yang tepat untuk kegunaan yang tepat.
* Perintah-perintah `vi` dimasukkan tanpa tombol-tombol modifier seperti Ctrl atau Alt. Beberapa pengguna berpendapat ini mengurangi cedera pergelangan tangan (lihat repetitive strain injury).
* `vi` adalah "what you see is what you get (pretty much everywhere)". Pengguna `vi` biasanya tidak menyesuaikan editornya, tidak seperti pengguna Emacs yang bingung bila versinya yang diubah tidak ada.
* Kompilasi dan debug dari `vim` dengan m[a]ke,:cl, dan perintah-perintah yang mirip (fungsi ini tidak ada di vi proper). Ingat bahwa debugging code dari editor teks juga dianggap keuntungan Emacs daripada vi.
* `vi` adalah modal. Mode "browsing", "editing", "command" dan "visual selection" terpisah (tidak di `vi`, hanya di klon-klon `vi`) dan hal ini sangat berguna bila sudah terbiasa.