Які плюси та мінуси Vim та Emacs?


372

Як би ви порівняли цих редакторів? Які плюси і мінуси у кожного?

[ Примітка ] На це не мають відповідати ті, хто "ненавидить одного і любить іншого", або ті, хто не використовував обох.


1
M-! emacs RETЦе як пошук в Google за "google"
Seamus

11
Дублікат SO питання: stackoverflow.com/questions/1430164 / ... Убунту askubuntu.com/questions/804 / ... і програмістів programmers.stackexchange.com/questions/1271 / ... Повинен любити поширення тут.
Трей Джексон

27
Я здивований, що ніхто не згадав про XKCD 378 .
tedder42

9
Зверніть увагу, як ці питання ніколи не турбуються просити порівняння з Едом, єдиним справжнім редактором WYGIWYG!
Марк К Коуан

4
@ tedder42 Тоді ви також можете заявити "Мел" ...
Тобіас Кіенцлер

Відповіді:


420

Я використовую обидва, хоча, якби мені довелося вибрати одну, я знаю, яку саме вибрати. Все ж я спробую зробити об’єктивне порівняння з кількох питань.

  • Доступні скрізь? Якщо ви професійний системний адміністратор, який працює з системами Unix, або користувач живлення на вбудованих пристроях (маршрутизатори, смартфони з Busybox,…), вам потрібно знати vi (не Vim), оскільки він доступний у всіх системах Unix і на більшості Unix-подібні системи, будь то настільні, серверні або вбудовані. Для звичайного користувача цей аргумент не має значення: Emacs легко доступний для кожної ОС настільних ПК та серверів, і оскільки він підтримує віддалене редагування, його достатньо в будь-якому разі мати на настільному комп'ютері.

  • Здутий? Колись Emacs жартівливо виступав за "Вісім мегабайт і постійно міняючись". Зараз на моїй машині Google Chrome потрібно приблизно стільки оперативної пам’яті на вкладку, скільки Emacs для 100 відкритих файлів, і я навіть не згадую Firefox. У XXI столітті розквіт Emacs - лише міф.

    Особливість роздуття також не є проблемою. Якщо ви не використовуєте його, вам не потрібно знати, що він є. Функції Emacs не відволікаються, коли ви не користуєтесь ними, а документація дуже організована.

  • Час запуску : прихильники Vi (m) скаржаться на час запуску Emacs. Так, Emacs запускається повільно, але це не велика справа: ви запускаєте Emacs один раз на сеанс, потім підключаєтесь до запущеного процесу emacsclient. Тож повільний запуск Emacs - це переважно міф.

    Є один виняток - це коли ви входите на віддалену машину і хочете там відредагувати файл. Запуск віддаленого Emacs (як правило) повільніше, ніж запуск віддаленого Vim. У деяких ситуаціях ви можете тримати Emacs, що працює у екрані. Ви також можете редагувати віддалені файли зсередини Emacs, але це порушує потік, якщо ви перебуваєте на ssh сесії в терміналі. (Оскільки XEmacs 21 або GNU Emacs 23, ви можете відкрити вікно Emacs із запущеного екземпляра X всередині терміналу.)

    Повертаючи таблиці, я помітив, що Vim потребує значно більшого завантаження, ніж Emacs ( vim -u /dev/nullпроти emacs -q). Справді, це було на дивній платформі (Cygwin).

  • Початкова крива навчання: Це залежить від людини до людини. Графік Майкла Мрозека змусив мене посміхнутися. Серйозно я погоджуюся з тим, що крива навчання Vim починається крутіше, крутіше, ніж будь-який інший редактор, хоча це можна зменшити за допомогою gvim.

    Оскільки я розвіяв пару міфів про Emacs, дозвольте мені розвіяти vi міф: модальний редактор не важкий або болісний у використанні. Це вимагає трохи звички, але через деякий час це почувається дуже природно. Якби я переробляв vi (m), я б точно дотримувався режимів.

  • Асимптотична крива навчання: і Vim, і Emacs мають багато можливостей, і ви продовжуватимете відкривати нові після багатьох років використання.

  • Продуктивність : Це надзвичайно важка тема. Прихильники vi (m) стверджують, що ви можете зробити майже все, не виходячи з домашнього ряду, і це робить вас більш ефективними, коли вам це найбільше потрібно. Прихильники Emacs підтверджують, що Emacs має багато команд, які часто не використовуються, тому не вимагайте прив'язки ключів, але чорт зручніше, коли вам це потрібно ( обов'язкова посилання xkcd ).
    Моя особиста думка полягає в тому, що Emacs в кінцевому рахунку виграє, якщо ви не маєте можливості відключення тексту (і навіть тоді ви можете налаштувати Emacs, щоб вимагати лише послідовності ключів, а не комбінації, наприклад Ctrl+ літери). Клавіші домашнього ряду приємні, але вони часто не є великою виграшею, оскільки вам доведеться перемикати режими. Я не думаю, що щось може зробити Vim значно ефективніше, ніж Emacs, тоді як навпаки вірно.

  • Настроюваність : Обидва редактори можна програмувати, і існує велика кількість доступних пакетів для обох. Однак Vim - редактор з мовою макросів; Emacs - це редактор, написаний у Ліспі з деякими спеціальними примітивами. Emacs виграє видовищно, коли ви намагаєтесь зробити щось, про що автори просто не думали. Це відбувається не щодня, але воно накопичується роками.

  • Більше, ніж редактор : Vim - редактор. Emacs - це не просто редактор: це також IDE, файловий менеджер, емулятор терміналів, веб-браузер, поштовий клієнт, клієнт новин ... Чи це хороша річ чи погана справа - це питання для обговорення. Але ви можете використовувати Emacs як простий редактор (див. "Роздуття функції" вище).

  • Як IDE : І Vim, і Emacs підтримують безліч мов програмування та інших текстових форматів. Окрім основ, таких як синтаксичне забарвлення та автоматичне відступ, обидва мають розширені функції IDE, такі як перегляд посилань на код та документацію, допоміжні вставки та рефакторинг, інтегрований контроль версій та можливість ініціювати компіляцію та перейти до першої помилки.

    Один домен, де Emacs звичайно кращий за Vim, - це взаємодія з асинхронними підпроцесами. Ось тоді ви починаєте довгу компіляцію і хочете зробити щось інше в тому ж екземплярі редактора, поки компілятор працює. Або коли ви хочете взаємодіяти з циклом Read-eval-print - Emacs справді світить на це, Vim пропонує лише незграбні хаки. Тим не менш, новий форк vim, Neovim , виявив, це виправив і реалізував інші різні виправлення помилок, не реалізовані в stock vim.


34
Я не можу погодитися з пунктом "Більше, ніж редактор". Vim також має багато плагінів, включаючи ті, які перетворюють його на файловий менеджер або IDE (наприклад, vim-latex).
rozcietrzewiacz

7
Це змусило мене відчувати себе маленьким ...
gnometorule

10
@rozcietrzewiacz: Так, але чи можна переглядати Інтернет у Vim? Читати електронний лист? Перевірте свій RSS-канал? Я не думаю, що ви можете заперечувати, що Emacs просто потужніший, хоча корисність цієї сили залежить від того, що ви шукаєте.
musicfreak

3
@Bananguin Emacs краще всього, що передбачає взаємодію з REPL . Наприклад, загальний доказ дуже приємний (звичайно, це дуже вузька область застосування). Emacs добре робити речі, про які раніше ніхто не думав: Emacs Lisp набагато приємніший за макромовою Vim. Emacs має кращу підтримку відступу вихідного коду, але я не думаю, що це стільки недолік Vim, скільки відсутність бібліотек (підтримка Vim, як правило, обмежується виділенням синтаксису).
Жиль

5
@MichaelHampton Ви повинні бути молодими тоді. У 1985 році це було вісім мегабайт . На сьогодні я припускаю, що це має бути вісім тисяч мегабайт, за винятком того, що ніхто не помічає використання пам'яті Emacs, оскільки це менше однієї вкладки браузера.
Жиль

267

Я опублікую те, що, на мою думку, є головними перевагами кожного:


Emacs має значно більше розширень, які дозволяють виконувати завдання, пов'язані лише з нечіткими текстовими редакторами, як-от перегляд файлової системи чи змішання з контролем версій, а також розширення, що ніяк не пов’язані з текстовим редактором, як читання RSS-каналів. Якщо ви хочете, щоб середовище, а не текстовий редактор, Emacs стане кращим за Vim. Я також думаю, що Emacs набагато простіше вчитися, незважаючи на те, що дехто з них би ви повірили:

Редактор навчання кривого комічного

Зокрема, я думаю, що користувач Emacs-початківця буде швидшим, ніж користувач-початківець Vim


З іншого боку, Вім незаперечно швидший. Здається, що це основна частина аргументу, але, на мою думку, взагалі немає жодної конкуренції; Я вважаю себе вільним користувачем Emacs, і я не збігаюся з парою людей, яких я знаю, що мають рівні знання про Vim. Проблема полягає в тому, що кількість людей, які володіють достатньою майстерністю Vim, щоб бути такою швидкою, неймовірно мала (з ~ 30 людей, з якими регулярно спілкуюсь, які використовують Vim, я думаю, що лише один надзвичайно хороший у цьому). Існує великий розрив між можливим збільшенням швидкості і фактичним збільшенням швидкості, яке ви досягаєте; Користувачі Emacs будуть майже такі ж швидкі, як і 99% користувачів Vim, і (як я вже говорив у розділі Emacs) починаючи користувачі Emacs, ймовірно, будуть швидшими, ніж користувачі Vim


8
гм ... я знаю, що vim має більше ніж один плагін управління версіями. і один з цих плагінів підтримує всі популярні системи .... якщо у Emacs є більше ... скільки з них вам потрібно, щоб зробити те саме?
ксенотерацид

13
@xeno Я не знаю, які плагіни Vim мають, тому, можливо, VCS був поганим прикладом, але я впевнений, що Emacs має набагато більше плагінів, ніж vim, тому що vim не підписується на філософію "одна програма робить все"
Майкл Мрозек

4
Хтось, будь ласка, пояснить, що означає графік emacs, наведений вище? Як його інтерпретувати?
Ендрю-Дюфресне

27
Це жарт "вниз у кролячій норі" ... Це тому, що коли ти вивчаєш emacs, з часом ти починаєш також створювати emacs. (оскільки Emacs - це дійсно просто велика колекція редагування макросів / процедур, написаних в ній інтерпретатором Lisp.)
ocodo

15
+1 ваша швидкість проти досвіду хороша, але, можливо, 99% - це трохи екстремал. Я маю на увазі, що vim - це не те, що важко освоїти, це займає лише пару років;)
Йохан

81

Існує viу всіх системах Unix (або майже), однак цього не можна сказати про будь-який інший редактор. Це причина №1, імо, навчитися та ознайомитись vi(зверніть увагу на "vi" не "vim"). Я ніколи не бачив, щоб Emacs був доступний в установці за замовчуванням.

Я не кажу, що не використовуйте Emacs або це єдина причина використовувати Vim, але коли ви хочете мати можливість використовувати системи Unix, які не є вашими ..., viце частина універсальної мови.


1
Я досить vimкористувач, але мені часто важко користуватися vi, швидше за все, завдяки ключу END (vim підтримує його, але vi не, або, принаймні, не за замовчуванням)
phunehehe

25
@phunehehe, якщо я спробую використовувати, nanoя закінчую цілою купою ijkloOah у своєму файлі ..., поки я не зрозумію, що не можу використовувати їх для навігації. Я не використовую клавіші зі стрілками для навігації.
ксенотеррацид

5
Це подвоюється для підключення до повільних серверів через хитрі підключення: один редактор, який вони гарантовано матимуть (він є в специфікаціях Unix, я думаю?) Є vi, а командний режим vi значно полегшує редагування файлів з меншою кількістю натискань клавіш коли кожен натискання клавіші потребує декількох секунд, щоб відобразитися на екрані. Звичайно, крок №1 зазвичай встановлюється vim:)
Гаурав

12
@phunehehe Я не використовую esc. Я використовую ctrl + [він робить те ж саме;)
xenoterracide

8
+1 за коментар Gaurav Vi відмінно працює для екстреного редагування конфігураційних файлів через хитке 3G-з'єднання на повільному стільниковому телефоні.
ЛоуренсC

23

Я думаю, вони обидва приголомшливі. Я думаю, що можна зробити все, що ви можете собі уявити, і вони обидва настільки налаштовані, що до того моменту, коли ви закінчите їх налаштовувати, вони обидва є саме такими, якими ви хочете, щоб вони були, ні більше, ні менше.

Emacs виділяється мені тим, що трохи ближче (хоча все ще не відповідає) стандартам ISO / IEC щодо зручності використання та послідовності користувацьких інтерфейсів, а значить, не грає стільки хитрощів з вашими "інстинктами" щодо цього vim. Життя інстинктів, які ви виробили в роботі з іншими програмами, не буде працювати проти вас.

Vim - це зовсім інша модель, і багато в чому вона сама по собі перевершує те, що значно менше покладається на послідовності Cntrl / Alt, а натомість лише на свої режими, що дозволяє тримати ваші труднощі на домашньому ряду та вводити текст швидше. Але vim практично унікальний, і якщо ви не встановите дуже незвичайне супроводжуюче програмне забезпечення (наприклад, Vimperator, Jumanji / Zathura тощо), інстинкти, які ви розвиваєте, працюючи з vim, не перейдуть на інші програми і навпаки. Це сказав, що я влаштувався на vim сам. Рано чи пізно вам доведеться влаштуватися на одне, на краще чи гірше, оскільки обоє важко освоїти.


1
Один коментар щодо рядка "інстинкти, які ви розвиваєте, працюючи з vim, не перейдуть на інші програми": Рядок "встановити режим редагування vi" можна додати до файлу ~ / .inputrc (в системі Linux, яка його підтримує) . Це дає можливість синтаксису в стилі vi для введення тексту в програмах, використовуючи readline для stdin, наприклад, саму оболонку bash. Існує (іноді дивно) досить широка застосованість до інстинктів редагування, які розвивається за допомогою vim.
Крістіан Еббот

На щастя, є багато людей з цією проблемою, і вони розробили розширення для багатьох програм, щоб зробити їх більш схожими на vim .
DarkWiiPlayer

21

Я використовую обидва на регулярній основі. Я розглядаю Emacs як "живий" редактор, тоді як Vim використовую для швидких одноразових завдань. Поверхово, Emacs набагато більш роздутий, ніж Vim, і тому насправді не так зручно "стріляти", як Vim, але я також вважаю, що філософії інтерфейсу користувача від однієї до іншої підтримують цю парадигму. Emacs набагато більш побудований, щоб утримати вас всередині, роблячи речі приємними та зручними, тому вам не доведеться залишати, тоді як vim набагато більше "Unixy" і вважає себе частиною більшого пояса інструментів.

Багато людей тікають з Emacs через його велику залежність від бакі-бітів , але це досить глупа причина для мене. Справжня влада Emacs над Vim - це налаштування, а сила Viper тощо - це справді не проблема. Безумовно, Vim-Script забезпечує свій власний рівень налаштування, і якщо, скажімо, ваша улюблена мова програмування не була забезпечена відповідним підсвічувачем синтаксису, ви, безумовно, можете підготувати її, але Emacs в кінцевому підсумку є власною хостинговою машиною lisp, і в в кінці ви можете зробити набагато більше, набагато більше поспішаючи з цим. В Vim просто немає таких інструментів, як gnus або org-mode . У двох словах, Emacs - це не просто редактор, це практично боговицька операційна система.

Для маніпулювання текстом я б сказав, що вони точно нарівні.


30
"Emacs був би чудовою операційною системою, якби в ній був текстовий редактор, який вартий лайна". - Мені нагадали цю цитату.
амфетамахін

@amphetamachine Я не отримую цитату. Чи означає це применшити emacs-редактор тексту?
tshepang

Це означає, хоча я, як правило, чую це ще більше, як кусає язика в щоку.
опитування Коді

Що стосується самих редакторів, мені здається, що vim простіше редагувати текст, але я маю надати налаштування для emacs. Vimscript просто не може витриматись.
опитування Коді

19

Я покладу свої $ 0,02, оскільки я витратив досить багато років на використання emacs та XEmacs, а потім перейшов до vim. Справедливо кажучи, я фактично використовував vi зовсім небагато в 1990-1992 роках, тому я був знайомий з його користувальницьким інтерфейсом.

Emacs

  • Emacs описується як система "lisp", яку щойно використовували для написання редактора, і в цьому є зерно правди. Ви можете реалізувати майже все, що завгодно, в Elisp, якщо ви хочете витратити свій час, щоб зрозуміти навколишнє середовище. Я не можу сказати, що я коли-небудь це добре знав, але я все-таки епатажу. Emacs та Xemacs не повністю сумісні на цьому рівні, тому сторонні сценарії можуть працювати на одному, а не на іншому.

  • Було помічено, що RMS та деякі інші видатні хакери Emacs повинні були відмовитися від програмування через проблеми з OOS, де Білл Джой, Брам Муленаар та інші інші світильники досі перебувають у ньому. Emacs важко на ваших рожевих пальцях.

  • Emacs є набагато більш католицькою системою, ніж vi, і розглядається як канонічний приклад розробки програмного забезпечення . Поряд з Netscape, це один із внесків jwz у доведення цього закону.

Однією унікальною річчю, яку я колись робив з xemacs, було те, щоб він працював на машині та відкривав сеанс x на xterminal (фактично старий перероблений Sun 3/60) в іншій кімнаті проти того ж буфера на тому ж запущеному екземплярі.

Плюси: розширюваний, потужніший за будь-який інший відомий людині редактор, зріла інтеграція з майже всіма основними засобами програмування вільного програмного забезпечення.

Мінуси: сумнівна ергономіка, елісп не легко вивчити.

Вим

Застереження - я перейшов від використання emacs до vim близько 10 років тому, і я звично використовую vim для Windows та Unix / Linux систем.

  • У Vi та його нащадків є дуже хороший інструмент макро клавіатури для автоматизації редагування завдань. Заклад сценаріїв у vim не такий складний, як elisp, але ви можете побудувати його з підтримкою Python, Tcl, Perl та, можливо, деяких інших систем. Я лише час від часу писав сценарії (поза файлами .vimrc) для vim.

  • Vim має менший слід, ніж emacs, але це не так вже й багато.

  • Документація та онлайн-допомога Vim досить хороші. У Emacs є досить хороша он-лайн документація, але я не думаю, що вона настільки вичерпна, як vim.

  • Vim успадковує вигадливий модальний користувальницький інтерфейс vi, але має можливість вести себе як модний редактор зараз, оскільки ви можете переходити у режимі вставки. У Windows він може вести себе так само, як у програмі Windows.

Плюси: Хороший інструмент макро клавіатури, приємно хороша розширюваність та сценарій, але не такий хороший, як emacs. Vim або vi-редактори є стандартними для більшості, якщо не всіх Unix або Linux-дистрибутивів загального призначення. Можливо, краща ергономіка.

Мінуси: Модальний користувальницький інтерфейс здається дивним для людей, які звикли до інтерфейсів Windows. Менше проблем із vim цими днями.


Мені подобалося читати вашу відповідь, але я пропускаю вирішальний фактор. Що змусило вас перейти від emacs до vim?
Ерік Б

Це було просто органічно - плюс макроси клавіатури Vim дуже добре працюють.
ЗанепокоєнийOfTunbridgeWells

1
Чорт, як молодший програміст, аргумент ергономіки дуже привабливий. Це, можливо, просто вирішило мій вибір вивчати VI та VIm замість Emacs.
Дідьє А.

15

Я зазвичай використовую Vim, але вони обидва чудові редактори.

Навчитися використовувати vi було неприємно, але я пережив це і навчився подобатися. Мої найстрашніші моменти були, коли була увімкнена клавіша блокування шапки Ви можете спробувати з gVim, але однією з найбільших переваг з vi та Emacs є можливість робити акуратні речі, зберігаючи руки на клавіатурі, і gVim, ймовірно, буде тримати вас за допомогою миші. (Навчання грати в недоброякісні ігри одночасно дало мені практику з клавішами переміщення курсору, але змусило мене іноді намагатися рухатись по діагоналі в документах.)

Emacs, ймовірно, більш доступний. Це без режиму, і ви не збираєтеся нагнітати себе, натискаючи клавішу блокування ковпачків. Ідея управління редактором шляхом введення літер за допомогою клавіші управління не повинна бути надто чужою для сучасних користувачів енергоносіїв, хоча дійсні клавіші для виконання дій будуть здаватися дикими і довільними для типового користувача Windows / Mac OS X. Знову ж таки, версії, які дозволяють користуватися мишею, вам не сприяють у довгостроковій перспективі.

Для ефективного використання обох потрібен певний рівень знань. На відміну від, скажімо, Блокнота, ви не можете просто сісти та редагувати.

І те й інше можна налаштувати, хоча для моїх розширень для написання грошей у тому ж Lisp редактор, який написаний, робить більш легким. (Emacs, як правило, розповсюджується, насправді не є редактором. Це середовище Lisp, призначене для обробки тексту, з великою кількістю попередньо написаного програмного забезпечення, включаючи редактор. Отже, жарт "Emacs робить гідну оболонку, але вона може використовувати кращий редактор. ")

Я зазвичай використовую Vim, оскільки після обширних тренувань мені стає легше. Це може бути пов’язано з перевагами в системі режимів, коли величезна кількість команд доступна за допомогою одного пальця біля домашніх рядків, або "синдром дитячої качки", що дуже стосується редакторів: як тільки ви навчитесь хорошому, ви, як правило, дотримуєтесь йому.

Ви не помилитесь, використовуючи і те, і інше.


9

Основна причина, по якій я не використовую vi / vim, полягає в тому, що вона модальна. Основна причина, по якій я використовую vi - це те, що він доступний майже скрізь.


12
Основна причина, по якій я використовую vim - це те, що він модальний. Вища крива навчання, але набагато простіше використовувати, коли ви звикли до цього.
Кріс Дженкінс

1
Варто зазначити, що якщо вам подобається модальне редагування, Emacs має гарну підтримку для нього через злий режим - emacswiki.org/emacs/Evil
Чарльз Стюарт

9

Я думаю, що коментар "vim is modal" вище невірний. Vim має команди. Ви можете зробити «11aNow - час для всіх добрих людей ..», і в кінцевому підсумку вийде 11 однакових нових рядків тексту у вашому файлі. Це команда, а не режим. Але насправді є дуже основна відмінність команд Vim від команд Emacs. Я не зовсім впевнений, що можу це описати, але Ерік Фішер включив редагування ліній у стилі Emacs у драйвер TTY 10+ років тому і опублікував документ про це:

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

Він виявив, що редагування ліній у стилях Emacs принципово відрізняється від стилю vi.

Таким чином, Emacs має перевагу в тому, що багато інших речей (bash, gnuplot, zsh, ksh деякі інші, які я не можу придумати вгорі голови) все в кінцевому підсумку реалізують редагування ліній в стилі Emacs.

Слід зазначити, що я особисто весь час користуюся Vim. Я лише дуже випадковий користувач Emacs.


1
set -o viв моїй думці bashабо zshне надто важко запустити (або поставити у rcфайл).
moon.musick

@ moon.musick - звичайно, ні, я роблю це постійно. Це просто те gnuplot, що Postgresql psql, MySQL mysqlта безліч інших інтерфейсів за замовчуванням працюють у режимі Emacs більш-менш. Якби тільки Oracle міг sqlplusзробити редагування командного рядка ... ні, ні. Це було б надто багато, щоб запитати у великої корпорації. У них є тенденції до наслідування!
Брюс Едігер

Так, найчастіше inputrcце робиться для інструментів оболонки, але потім я ловлюсь на півсекунди, коли jне перебираюсь, скажімо, на Mendeley Desktop після переходу на нього з терміналу, і їх кілька разів запитували про прив’язку vim. На жаль, не вдається охопити все та мати стійке оточення.
moon.musick

2
@BruceEdiger я дуже сумніваюся , що розробники mysql(1), psql(1), gnuplot(1), і python(1), perlconsole(1), lftp(1), smbclient(1)і в самому справі багато інтерактивних програм були стурбовані прив'язками для редагування рядка. Усі ці програми лише використовують GNU Readline , а режим за замовчуванням для GNU Readline - це (не дивно), як GNU Emacs. set editing-mode vi у вашому ~/.inputrcі вуале - всі ці інструменти мають vi-подібні клавіші.
Дмитро Олександров

9

Оскільки це не було чітко зазначено, я додам, що немає кращого середовища програмування (Lisp у вікні, SLIME тощо), ніж дещо модифікований розподіл Emacs. Про всі мої потреби в програмуванні (99%) піклуються з Vim, але для всіх цих бібліотек і процедур Lisp, про які я пишу, я повинен запустити Emacs, щоб зробити все продуктивно.


8
Мені іноді цікаво, чи це більше говорить про Лісп чи про Emacs, і це добре чи погано ...
Кевін Канту

8

Я використовую Vim / gVim.

Раніше я використовував Emacs, але я виявив, що gVim, як правило, працює швидше на повільних машинах, плюс, завдяки вимогам POSIX, vi доступний майже скрізь.

Під час використання Vim або gVim я дуже сильно використовую мишку, я думаю, що підтримка в цьому чудова.

Я почав використовувати Emacs, тому що це було легше використовувати для початківців користувачів. Я знайшов використання нано чомусь досить схильним до помилок, і в якийсь момент я зрозумів, що мені набагато комфортніше використовувати vi.

Зараз це суміш. Я також дуже часто використовую Eclipse та gedit. Однак Vim досі є моїм улюбленим і найбільш використовуваним редактором.


7

Я використовую і gVim, і Emacs досить добре, щоб бути продуктивними, хоча я не знаю жодного з них. Одне, що я можу сказати з упевненістю, - це те, що Vim та gVim працюють швидше на моєму ноутбуці Windows 7 (який я маю використовувати на роботі). У Emacs у вікні Windows є дивна звичка "робити паузу" на хвилину і не реагувати, навіть продовжуючи приймати введення з клавіатури, перш ніж поспішно виплювати все накопичене в буфер клавіатури. Це не відбувається в Mac OS або Linux. Тим не менш, я часто користуюся Vim або gVim на всіх платформах, тому мені не доведеться зупинятися і думати про те, яким редактором я користуюся та налаштувати. Це означає, що в чисто * nix середовищі я, мабуть, залишатись з Emacs, тому що моє редагування без моделей трохи природніше.

Підсумок: на мою думку, обидва редактори достатньо потужні, щоб вирішити будь-які потреби редагування тексту. Вибір має ґрунтуватися на практичних міркуваннях (наприклад, специфіці впровадження платформи) та стилі роботи.


3

Основна відмінність Emacs від Vim - це ергономічність. Існує синдром зап'ястного каналу, КТС, як відомо. Emacs дуже "небезпечний", якщо у вас є CTS і провокує CTS. Vim - ні, про цю різницю можна прочитати в багатьох місцях. Наприклад, у Vim ви можете редагувати текст лише одним пальцем. В Emacs - не можна :)


3
Навіть не доведено, що CTS насправді пов'язаний із використанням клавіатури. Хоча поверхово правдоподібно, є посилання, що показують, що CTS насправді викликається генетично більше, ніж будь-що інше. Тож, хоча це все ще може допомогти набрати менше, коли у вас вже є CTS, я не думаю, що є жодні докази того, що один редактор викликає CTS більше, ніж інший.
Конрад Рудольф

-2

Я використовую vi/ nvi(НЕ vim), тому що це просто і ненав'язливо.

vimтак любить звукові сигнали, що її важче і дещо непомітно відключити. Мені довелося фізично вийняти внутрішній комп'ютерний динамік, перш ніж врешті-решт виявили, що поховано-реф про те, як це зробити :)

set vb t_vb=

Також я не використовую синтаксичне забарвлення, сірий поверх чорного кольору для мене найкрасивіший.

І, можливо, я занадто дурний, щоб зрозуміти, що emacsєдиним трьома комбінаціями клавіш, які я пам’ятаю, є CTRL-ALT-DEL.


-2

"Які плюси і мінуси Vim і Emacs?" - га!

Я переважно залишаю плюси іншим.

Мінуси обох у тому, що вони обидві старої школи. Я використовував, ймовірно, 50 різних редакторів протягом багатьох років, від редакторів базових ліній, до надшвидких редакторів, що кодуються з монтажем (VEDIT для одного), до фантазійних редакторів графічного інтерфейсу, які краще, ніж інші. Я навіть написав власний спеціальний редактор під назвою ForthStar і адаптував його для редагування дерева btrieve листя, з безліччю індексів для потужного пошуку, як миттєво знайти останні листки, які я щойно відредагував, або швидко знайти компоненти коду, або листя батьків або дітей.

Я думаю, що і vi, і emacs - це більше релігія, ніж м'язи. Творчі розуми, які їх побудували, значною мірою рухалися, і новій підтримці не вистачає сміливості та вміння їх переосмислити.

Так, Emacs може зробити багато, але це сповільнюється lisp, красивою і тепер значною мірою застарілою мовою.

Обидва застрягли у складних розкладках клавіатури. Emacs міг трохи налаштуватись на користувача, визначивши, що тут є клавіша Alt, а не антикварна мета. І як WordStar визнає, що тримати CA CB прямо від CA B під час набору швидкості не варто. Краще просто мати один, який запускається будь-яким клавішем комбо. Так, ви можете змінити прив’язки ключів, але потім, який ви будете безладдя пізніше.

Vi розумний, але йому не вистачає потужного пошуку та заміни, як у Notepad ++, який показує те, що знайдено, дозволяє розширити його та вибірково застосовувати його в кольорі, лише згадуючи про одне нововведення.

Практично будь-який інший графічний інтерфейс GUI в наші дні дозволяє масштабувати колесо миші. Графічний інтерфейс Emacs, здається, не працює. А де приємне привітання, як у Кейт?

Моя улюблена розкладка клавіатури протягом багатьох років була курсорним діамантом Wordstar. Принаймні це було легко навчитися і одержати сенс негайно. Мене найбільше ненавидів WordPerfect, який збільшив складність і, здається, дещо базувався на emacs.

Давайте визначимо, що в більшості країн світу графічний інтерфейс є сьогодні. І подобається це чи ні, редактори тексту дещо застрягли у своєму віці.

Я думаю, що було б краще мати універсальний редактор, який міг би легко переключатися між emacs, vi, wordstar або будь-якими ключовими макетами, і не втрачати більш потужні команди, які він може запропонувати. Справжнім програмістам доводиться використовувати різноманітні засоби редагування. Чому б не мати редактора, який би відповідав нашим потребам, щоб виконати роботу, а не змусити нас до їхнього способу робити?


Оскільки питання задається як плюсами, так і мінусами, це не відповідає на питання. Наскільки я бачу, він лише згадує, наскільки інші редактори кращі, ніж і Vi, і Emacs.
Кусалаланда

Будь-які відповіді в порядку на питання, поки вони не дадуть відповіді на питання, і вони по суті відрізняються від попередніх. "Виглядає добре".
пітер

Q чітко просить мінусів. І я згадую деякі плюси.
Еліптичний вигляд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.