Практичны ли Vim или Emacs для таких языков, как .Net или Java? [закрыто]

18

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

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

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

Морган Херлокер
источник
2
Мы работаем в Eclipse в моем магазине, но здесь есть парень, который использует Vim в качестве редактора pimary, а 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, но это уникальный случай.)

CodexArcanum
источник
6

но реалистично ли говорить, что кто-то, работающий на этих платформах, действительно выиграет от Vim или Emacs?

Позвольте привести пример: я работаю в системе, которая в значительной степени (но не на 100%) написана на C #. Система не может быть построена из Visual Studio - она ​​слишком сложна. Поэтому у меня нет файла sln (некоторые люди пытались поддерживать его, даже если мы не собирали продукт с ним, но это оказалось невыполнимой задачей), и у меня нет преимуществ от intellisense, просмотра кода, диаграммы классов и т. д. У меня работает инструмент vim + ctags. Даже это не идеально (ctags легко запутать), но намного лучше, чем использование плохого редактора кода без поддержки просмотра кода.

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

Неманья Трифунович
источник
3

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

Помните, что в вашей работе гораздо больше, чем написание кода на Java, C # или C ++. Есть ANT-скрипты, make-файлы, XML-файлы, файлы конфигурации разных видов. И для многих небольших задач время запуска этой IDE может быть просто слишком долгим. Затмение может занять несколько минут, чтобы противостоять аналогичным. Быстро изменить что-либо в одном источнике или просто проверить что-либо в известном файле - это слишком долго. Загрузка файла в VIM занимает всего несколько секунд.

jwenting
источник
1
хотя блокнот ++ тоже.
Рафаэль
никогда не использовал это, но действительно видел, что другие используют это (я проваленный VIM :)).
jwenting
2

Я считаю, что использование IDE и vim (мой личный любимый редактор) не являются взаимоисключающими понятиями. При разработке .NET я обычно устанавливаю комбинацию горячих клавиш, которая открывает текущий файл, над которым я работаю в IDE, в 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 от ruby. Он может работать как плагин VS или автономно.

sumek
источник