Есть ли причины, по которым разработчик на C # должен изучать Emacs / Vim? - PullRequest
24 голосов
/ 14 марта 2009

Я работаю разработчиком на c # в магазине Microsoft.

Я недавно начал учить себя ассемблеру с использованием газа и Linux в свободное от работы время. Мне нравится возиться с Linux, но я все еще плохо знаком с ним.

Я продолжаю слышать, что должен изучать VIM или Emacs, но дело в том, что мне совершенно не нужно использовать их в работе, поэтому я чувствую себя немного виноватым, тратя время на освоение одного из них. Хуже того, мне интересно, может ли изучение VIM или Emacs сделать меня медленнее с Visual Studio, поскольку я бы путал сочетания клавиш.

В настоящее время я занимаюсь редактированием в Linux с помощью SciTE (я думаю, что это стало notepad ++ в Windows).

Есть ли у кого-то реальная причина для изучения Emacs / VIM? Я вижу, что в vs studio есть настройка для использования ярлыков Emacs, кто-нибудь здесь стал более продуктивным, освоив их в vs, или, другими словами, вы видите, что это того стоит?

Заранее спасибо!

Похожие: Стоит ли изучать VIM?
Похожие: Стоит ли тратить время на изучение Emacs?
Похожие: Почему я должен использовать IDE? (вид со стороны)

Ответы [ 19 ]

25 голосов
/ 14 марта 2009

Начни войну пламени:)

Я - наркоман VIM, и мне не стыдно в этом признаться. Я считаю, что использование VIM делает меня значительно более продуктивным в моей повседневной жизни. Кодирование происходит намного быстрее, когда вам не нужно отрывать руки от клавиатуры.

По умолчанию VS плохо поддерживает привязки VIM. Однако существует дешевая надстройка ( ViEmu ), которая обеспечивает превосходные сочетания клавиш VIM для Visual Studio. У меня есть личная лицензия, и я считаю, что это стоило каждого пенни.

При этом существует крутая кривая обучения 1012 *, связанная с VIM. Скорее всего, это убьет вашу производительность на неделю или две. Однако после этого преимущества начнут поступать, и вы должны заметить, что ваши продуктивные способности возрастут.

16 голосов
/ 14 марта 2009

Я работаю в магазине Microsoft на 90%, но все еще пользуюсь gvim каждый день. У меня есть плагины vi для каждой IDE, с которой я работаю. Я бы порекомендовал vim, если вы собираетесь изучать одно или другое, но я знаю, что пользователи emacs будут категорически не согласны.

emacs и vi существуют уже давно, и оба они очень мощные. Изучение одного из них может открыть вам глаза на более эффективный мир кодирования.

4 голосов
/ 29 марта 2009

Я использую emacs и Visual Studio вместе и без emacs было бы трудно. Конечно, VS необходим, но он не обеспечивает редактирование текста, как это делает emacs. Emacs для меня - это панель редактирования на 98,4%. Visual Studio имеет 12 различных панелей, каждая из которых важна, но иногда я просто хочу посмотреть на код. Emacs позволяет мне это делать. И я могу разделить экраны и увидеть 4 окна редактирования на одном экране, даже в одном файле. С двумя мониторами у меня могут быть окна emacs на каждом. Это звучит странно, но это очень полезно для меня, когда я работаю над разными частями кода одновременно (скажем, определение интерфейса и реализация одновременно). Регулярное выражение поиска и замены.

В emacs включен режим автоматического возврата, который является аналогом функции VS, которая говорит: "Файл изменен вне Visual Studio, вы хотите перезагрузить его?" За исключением emacs, он всегда перезагружается, как я и хочу. Поэтому я перехожу от VS к emacs и обратно, и никогда не возникает проблем с отложенными изменениями в исходном коде, которые не отображаются в другом редакторе. VS имеет возможность "полного экрана", но я не нашел, чтобы это было настолько гибко или полезно, как emacs.

Я не могу представить, что у меня нет возможности использовать эту комбинацию инструментов. Visual Studio в одиночку просто не предлагает этого. Одного Emacs было бы недостаточно. Я все еще использую emacs для базовых фрагментов и небольших тестовых программ. Я использую VS для управления проектами, TFS, тестирования и отладки.

Мое использование emacs на данный момент не является выбором. Я взял его давным-давно, в предыдущей компании, где emacs был стандартным инструментом, так что это было ... не сказать «легко», но это было автоматически. Я не могу представить себе изучение emacs "самостоятельно". Я изучал вещи осмотически, только от сообщества других пользователей emacs вокруг меня. От людей в коридоре я получил и настроил кучу кода elisp для моей установки. Делать это с книгой ... Я не могу себе представить.

Что касается того, чтобы сделать тебя менее продуктивным из-за путаницы пальцев ... У меня не было проблем.

4 голосов
/ 15 марта 2009

Я также работаю только в магазине Microsoft, но дома я использую только Linux. Достаточно сказать, что я использую Vim исключительно для редактирования дома. На работе я использую Visual Studio для всех разработок, но я использую Vim для многих задач, требующих сложной обработки текста. Даже если бы я не использовал Vim дома, это все равно было бы невероятно полезно для того, что я делаю на работе. Наш айтишник думает, что я какой-то маг, когда видит, как я занимаюсь акробатикой в ​​Vim. Это должно чего-то стоить, верно? ;)

3 голосов
/ 21 апреля 2009

Я был хардкорным пользователем VIM и также разработал intellisense для C # (http://insenvim.sourceforge.net/).., но с последними изменениями языка я не могу избежать использования Visual Studio. Но много раз оглядываюсь назад с использованием VIM по причинам простоты. Visual Studio требует много памяти и времени запуска очень велико. Даже для чтения файла или выполнения простых операций требуется довольно много минут. Но с ним так легко открыть файл и перемещаться. Я мог бы портировать VIM intellisense на C # 3.0.

3 голосов
/ 14 марта 2009

Раньше я почти исключительно использовал VIM, и после перехода в почти 100% магазин MS не обнаружил проблем с переключением туда-сюда.

VIM и EMACS отлично подходят для изучения сочетаний клавиш. Я обнаружил, что у меня действительно нет проблем, когда я возвращаюсь назад и вперед - я думаю, это помогает, потому что они настолько отличны от VS, что легко сделать умственное переключение.

Вы всегда можете начать медленно - используйте их и посмотрите, как это происходит. У вас будет некоторая кривая обучения, но это очень зависит от вас.

Если Scite работает для вас, а вы просто «играете» в качестве хобби, это может не стоить усилий. Однако для меня усилия по изучению новых и разных способов работы / мышления являются частью веселья.

2 голосов
/ 15 марта 2009

Я профессиональный программист на C / C ++ в течение 16 лет. 5 лет назад я взял Common Lisp и в итоге тоже изучил elisp / emacs. Я также балуюсь в Haskell. Я нашел этот опыт чрезвычайно полезным в программировании на C ++. Если ничто иное не поможет вам увидеть будущее, поскольку C ++ постепенно становится более выразительным, перенимая то, что CL имел в течение десятилетий.

Изучение Emacs - это длительный медленный процесс, который начинает приносить плоды, как только вы в совершенстве владеете его функциями, способами выполнения задач и элиспом. Я использую Visual Studio для большей части своей разработки, но часто я переключаюсь на emacs, чтобы воспользоваться быстрым использованием ключевых макросов или выполнить некоторую сложную обработку таблицы значений. Множество вещей, которые вы можете очень быстро собрать в elisp, это займет несколько часов рвать волосы с плагинами Visual Studios.

2 голосов
/ 14 марта 2009

Овладение хорошим редактором - это , всегда стоящее , как разработчик, вы тратите много времени на набор простого текста, написание программ, XML, HTML, вы можете сэкономить много того времени используя хороший редактор и используя его эффективно.

Я начал изучать Vi, как девять лет назад, и теперь я не могу жить без него.

Независимо от того, какой редактор вы выберете, я думаю, вы почти сможете найти плагины, которые будут иметь входную модель вашего редактора по выбору, во всех основных IDE, для Visual Studio вы можете использовать ViEmu или сочетания клавиш Emacs

1 голос
/ 24 августа 2015

Люди, которые продолжают ссылаться на vim "горячие клавиши", должны действительно изучить его немного глубже. Многие команды клавиатуры vim работают на действительно структурированном «языке» текстовой навигации и манипулирования (т. Е. Диапазонах, счетчиках, действиях, движениях, текстовых объектах и ​​т. Д.), Который намного превосходит просто «ярлыки», которые вы должны запомнить как в большинстве текстовых редакторов. Это одна из основных причин того, что Vim подает апелляцию, и это говорит о повышении производительности.

1 голос
/ 16 февраля 2011

Я использую (и люблю) Emacs, но я могу понять, что там есть люди vi (я всегда разрываюсь между минимализмом и кухонной утонченностью). Что заставляет меня использовать Emacs изо дня в день, и что в конечном итоге заставляет меня покидать каждую IDE, которую я когда-либо использовал, это то, что я могу писать functions . И когда я говорю функции , я имею в виду функции ; Я действительно могу запрограммировать сам редактор. Я добавляю новую функцию, оцениваю ее, и bam теперь она в моем редакторе. Если я использую эту функцию кучу, то она получает привязку клавиш.

Я заметил, что с IDE они хороши на определенном языке (Eclipse удивителен для работы с Java). Я не думаю, что Emacs так хорош в каком-либо одном языке (за исключением, может быть, в IDE Lisp, но я не буду пытаться превозносить достоинства этого здесь ...) в качестве выделенной IDE, но лучше в языке N , где "N" - это практически любой язык программирования, который имеет или будет изобретен . Хорошо, если я изучаю новый язык программирования (или даже просто переключаюсь между C, PowerShell, Haskell, Lisp, Java ... и т. Д.), Что моя среда удобна и вполне способна. Тогда я отвечаю «да», потому что Emacs (или, я бы сказал, vi) дает вам переносимость в вашем наборе инструментов. Возможно, вы делаете C # сегодня, но в конце концов, кто знает, может быть, вы будете взламывать Monad # ++, и если вы это сделаете, можете поспорить, что для него будет режим Emacs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...