Чи практичні Vim або Emacs для таких мов, як Net. Чи Java? [зачинено]


18

Отже, я в першу чергу .Net розробник, який час від часу робить деякі речі на Java, Python та декількох інших. Я чув, як багато людей хвалять Vim та Emacs за значне підвищення ефективності, коли основи прибиті. Я точно можу побачити, як багато функцій можуть бути дуже корисними при достатній практиці, і навіть вважаю, що крива навчання, мабуть, вартує зусиль. Однак ... здається, що вам справді доведеться бути якимсь майстром макросів і гарячих клавіш, щоб бути настільки ж ефективним у Vim або Emacs, як середній розробник у Visual Studio, Netbeans, Eclipse або інших платформах. Я почав вчитися користуватися Vim і думаю, що деякі його особливості є приголомшливими (наприклад, редагування стовпців), але здається, що багато інструментів, які надаються великими вагомими IDE, просто не вдалося замінити, придбавши навіть самий стислий текст редактор.

  • генерація dbml-файлів для Linq-to-SQL
  • Автоматизоване тестування
  • проектування інтерфейсів користувача
  • Створення / організація проектів та рішень

Я знаю, що Vim та Emacs можуть робити багато тих самих речей дуже потужно, що може VS (наприклад, intellisense, refactoring і т. Д.), І він може зробити деякі чи всі приклади, які я надав, але чи реально це сказати що хтось, що працює на цих платформах, фактично отримає вигоду від Vim чи Emacs?


2
Ми працюємо в Eclipse в моєму магазині, але тут є хлопець, який використовує Vim як свого редактора пімарів, а Eclipse лише для складання та керування завданнями типу коду.
Майкл К

Відповіді:


14

У вас там відбувається поєднання концепцій, що, мабуть, не дивно, оскільки VS поєднує в собі безліч відмінних можливостей. Одна цитата (з цього сайту) говорить про те, що Emacs не є хорошим IDE, Unix - хорошим IDE. Ідея полягає в тому, що у світі Linux / Unix ви покладаєтесь на кілька спеціалізованих інструментів, які добре грають разом, а не на один монолітний інструмент, який робить це все.

Тепер я насамперед програмую на C #, і для цього використовую VS. Я також дуже люблю Emacs і використовую його в основному для всього іншого. Тепер, як ви кажете, те, що ви можете зробити в Emacs і що краще робити в Emacs, є чіткими. Але в багатьох випадках це не відображення "1 на 1", і існують різні способи досягнення однакових цілей за допомогою текстового редактора та / або інших інструментів.

Я спочатку збирався розглядати кожен ваш пункт, але відповідь завжди зводився до "так, ви могли" в якійсь формі. Зазвичай ви покладаєтесь на будь-який: 1) зовнішній інструмент (наприклад, дизайнер інтерфейсу) для створення коду для вас, імпортування його; 2) підтримка автоматизації зсередини редактора (на зразок коду Elisp в Emacs) для автоматизації повторюваних завдань; або 3) ви б налаштувались на використання текстових інструментів замість візуальних (наприклад, використання MSBuild та написання власних файлів проекту замість того, щоб покладатися на налаштування VS).

У світі Emacs у вас немає інструменту, який робить все це, у вас є багато інструментів та можливість вирощувати більше інструментів, коли вони вам потрібні. Я ще не знаю цього досить добре, щоб все це зробити, тому я використовую VS і я задоволений інструментами, які він мені дає. VS - це дійсно потужна, дуже хороша IDE. Тепер, якщо я займався Java, мені довелося б обговорити, який інструмент я б використовував, оскільки я не знаю Eclipse або IntelliJ дуже добре. Щодо будь-якої іншої мови, Emacs в значній мірі виграє, тому що для мене це зробить набагато більше, ніж будь-який інший текстовий редактор або напівзроблений IDE, який ці мови можуть використовувати. (За винятком можливо Smalltalk, але це унікальний випадок.)


6

але чи реально сказати, що хтось, хто працює на цих платформах, фактично отримав би вигоду від Vim чи Emacs?

Дозвольте навести свій приклад: я працюю в системі, яка значною мірою (але не на 100%) кодується C #. Систему неможливо побудувати з Visual Studio - це занадто складно. Тому у мене немає файлу sln (деякі люди намагалися зберегти його, хоча ми не створюємо продукт з ним, але це виявилося неможливим завданням) і не маємо переваг інтеліссенсу, перегляду коду, діаграми класів тощо. Інструментом, який працює для мене, є vim + ctags. Навіть це не ідеально (коти легко заплутати), але набагато краще, ніж використовувати неповноцінний редактор коду без підтримки веб-перегляду коду.

Тепер я розумію, що більшість розробників .NET або Java не в такому ж становищі, як я, і, ймовірно, краще використовувати IDE, якщо він має хороший редактор коду або принаймні надбудову, що покращує стандартний. Для Visual Studio є додатки на зразок VsVim, які можуть зробити досвід кодування приємнішим. Те саме для Eclipse AFAIK.


3

Я сумніваюсь, що багато хто вже використовує VIM або Emacs. Але я ще повинен знайти розробника, який не використовує текстовий редактор (будь то один із тих чи чогось іншого), що опиняється в повній роздуті IDE для деяких речей, часто багатьох речей.

Пам'ятайте, що у вашій роботі набагато більше, ніж писати Java, C # або C ++ код. Існують ANT-скрипти, файли, файли XML, файли конфігурації різного роду. І для багатьох невеликих обов'язків час запуску цього IDE може бути занадто довгим. Затемнення може зайняти кілька хвилин, VS схоже. Щоб швидко змінити щось в одному джерелі або просто перевірити щось у відомому файлі, це занадто довго. Завантаження файлу у VIM займає лише кілька секунд.


1
хоча блокнот ++ також.
Раффаель

ніколи цього не використовував, але дійсно бачив, як інші використовують його (я ВІМ-флюн :)).
jwenting

2

Я вважаю, що використання IDE та vim (мій особистий улюблений редактор) не є взаємовиключними поняттями. Роблячи розробки .NET, я зазвичай встановлюю комбінацію гарячих клавіш, яка відкриє поточний файл, над яким я працюю в IDE in vim, і кладу курсор на те саме місце. Таким чином, якщо я хочу зробити те, що в vim чудово, (наприклад, використання макросів, вертикальне редагування, повторне відступ, відмінність і т. Д.), Тоді я натискаю комбінацію клавіш і тріскаю. У мене є улюблений редактор, мої зміни, збережіть файл і вийдіть, а потім я знову повернувся до IDE (ви можете встановити його, щоб файл автоматично завантажувався, коли він редагувався поза IDE в VS). Таким чином я отримую найкращі з обох світів.

Я використовував мови скриптування для маніпулювання текстовими файлами складними способами. Як тільки я виявив силу використання макросів Vim (а також деяких інших функцій), я виявив, що я можу робити ці редагування / маніпуляції набагато швидше та ефективніше, ніж можу на мові сценаріїв.

Для мене дуже часто генерувати одноразові сценарії оболонки, щоб робити складні речі за допомогою vim, виконувати створений я сценарій оболонки, а потім викидати його.

мої 2 копійки :)


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

0

Погляньте на проекти OpenIDE та Continous Tests . Перший фокусується на додаванні підтримки .NET проекту до будь-якого редактора, включаючи VIM та Emacs. Інший - це безперервний тестовий бігун, подібний до рубінського AutoTest / pythons Sniffer / Autonose. Він може працювати як плагін VS або окремий.

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