Какая польза от использования таких вещей, как emacs, vim и nano над любым другим IDE или текстовым редактором?

От того, что видел я. emacs и т.п.. бежит в терминал. Есть ли польза от этого? Похоже, что было бы больше хлопот писать и организовывать вещи. Я не пытаюсь быть субъективным, я буквально ничего не знаю о emacs, vim, nano и т.д. И хотел бы узнать больше, возможно, использовать один из них.

Ответы

Ответ 1

Ваш вопрос сложный. Даже если они работают в терминале, это не их основное преимущество. Я говорю о Emacs и Vim прямо сейчас. Короче говоря, они были в течение как минимум 20 лет (Vim) или более (Emacs), у них довольно активное сообщество, они доступны для сценариев, поэтому вы можете делать с ними что угодно, если знаете, очень мощный.

У них довольно значительная кривая обучения, поэтому вы, вероятно, в конечном итоге пошатываетесь в них целыми неделями, если не месяцами, прежде чем стать опытными. Основной мотивацией для их обучения является производительность. Вы можете сделать некоторые удивительные вещи в минимальном количестве нажатий клавиш по сравнению, скажем, с "Блокнотом".

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

Ответ 2

В настоящее время большинство пользователей используют IDE. Они помогают с вещами, которые вы можете получить через анализ вещей, которые вы уже написали. Эти вещи могут быть очень полезными и полезными, но они действительно не помогают с основной задачей редактирования кода. Какие инструментаристы берут на себя ответственность за то, что эти дополнительные вещи обеспечивают достаточно преимуществ, которые он перевешивает, насколько эффективны vim и emacs в качестве редакторов. Они в значительной степени выиграли эту битву в большинстве сообществ, главным образом потому, что новые разработчики столкнулись с выбором между отличным завершением кода и поддержкой рефакторинга, который прост в использовании, а редактор, который не увидит каких-либо преимуществ в течение примерно 6 месяцев, Простой способ. Я знаю, что сделал.

Сейчас я парень-вим. У Vim действительно нет такой же верхней границы производительности, я использую ее более года и полу-регулярно все еще сталкиваюсь с вещами, о которых я не знал, что заставляет меня быстрее. Даже без этого, чем больше я его использую, тем меньше думает о том, что я делаю, что опять заставляет меня быстрее. Кроме того, vim существует для каждого языка и платформы и устанавливается на любой сервер UNIX из коробки. У него нет загрузочных экранов, практически прыгает на экран, фантастически работает с большими файлами и никогда не замедляется или не падает. Навыки, которые вы изучите с ним, будут применимы ко всему, что вы когда-либо делали для остальной части вашей карьеры, а не к IDE, которая изменится при изменении платформ.

Vim - это инвестиции, но если вы говорите о чем-то, что вы будете использовать в течение 8-10 часов в день почти всю оставшуюся жизнь, кривая обучения становится совершенно неактуальной.

Ответ 3

Нет реальной причины использовать nano. Практически все лучше.

Что касается vim и emacs, вот что я сказал в прошлый раз, когда это произошло:

Я полу-компетентен с vi keybindings, но я предпочитаю Emacs в целом. Причина, по которой эти редакторы имеют такие горячие сторонники, состоит в том, что модель редактирования, которую они предоставляют, более мощна, чем более новые системы, поэтому предоставление "vi keybindings" или "emacs keybindings" недостаточно, даже если вы не используете какие-либо функции расширения или настройки для emacs или vi.

Я только расскажу о модели Emacs, потому что я ее лучше понимаю. Общая модель для редактирования текста сегодня включает в себя буфер текста, в который текст можно вставлять, удалять, выбирать и вырезать/копировать/вставлять в системный буфер обмена.

Буферы Emacs, конечно же, могут поддерживать эти операции. Наряду с отслеживанием позиции курсора для каждого окна они видны внутри, они также отслеживают "метки", сделанные в них. Текст между "точкой" (позиция курсора) и "отметкой" называется "областью" и примерно соответствует выбору в основных редакторах.

Разница заключается в том, что Emacs отслеживает последние несколько мест, на которых отмечена метка в кольце меток, и вы можете вернуться к ним нажатием клавиши (или двумя, в зависимости от вашей конфигурации). Я считаю это чрезвычайно полезным, особенно потому, что многие команды Emacs, которые меняют ваше местоположение в буфере, устанавливают метку в вашем прежнем местоположении. Например, когда я редактирую модуль Python и вам нужно добавить оператор импорта в начало файла. Нажатие клавиши для перехода в верхнюю часть буфера (Alt- <) устанавливает метку. Я добавляю оператор import. Я нажимаю Ctrl-u Ctrl-Space, и я возвращаюсь туда, где я начал. Я могу продолжать делать это, чтобы вернуться к предыдущим позициям. (Возможно, мне нужно было выбрать текст при добавлении этого оператора импорта.)

Другая (и более известная) разница Emacs - это кольцо убийства. Большинство нажатий клавиш для удаления текста из буфера сохраняют текст в кольце kill, который затем можно вызвать командой "yank" (Ctrl-y). Существенной особенностью является то, что последующие команды yank извлекают старый убитый текст. Таким образом, вы можете убить несколько разделов текста подряд, а затем восстановить их по порядку. Вы также можете циклически перемещать кольцо уничтожения с помощью Alt-y после yank, удаляя извлеченный текст и вставляя следующую запись в кольцо.

Emacs имел эти функции в 1978 году. Единственная другая важная система, в которой они были приняты, - NeXTStep (и теперь унаследована Cocoa). Другие инструменты предоставляют больше возможностей для конкретных задач, могут быть расширены на языках, проще в использовании, чем Emacs Lisp, и имеют более приятные визуальные интерфейсы... но Emacs остается лучше при редактировании текста. Вот почему, как только вы знаете, как его использовать, так сложно выйти.

Ответ 4

Камни Вима

Vim сложнее изучить (вам нужно запомнить команды, которые вы хотите использовать), но значительно более мощный, чем любой редактор IDE или графического интерфейса, который я видел.

Часть секретности vim - это режим линии, который он унаследовал, в конечном счете, из редактора ed (1), написанного самим Кеном Томпсоном. Это замечательно мощно: его можно использовать для рефакторинга и даже помещать в скрипты. Он основан на замене шаблонов регулярных выражений.

И при всей этой силе, потому что это приложение старой школы /xterm, оно запускается мгновенно и никогда не обнаруживает задержку.

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


Заметки:

Если ваша среда IDE поддерживает рефакторинг, найдите причину использования среды IDE. Я просто использую это как пример сложного редактирования.

Замечательно, что vim помогает бороться с RSI и оставлять ваши руки более расслабленными. Команды - это немодифицированные ключи, поэтому вам не нужно напрягать руки, удерживая управление, мета или команду или буклет или что-то еще.

Ответ 5

Есть две вещи (грубо), которые вы получаете от использования VIM/Emacs:

  • Customizability
  • Они работают везде

Оба берут инвестиции вовремя, чтобы учиться. Но как только вы узнаете их, используя любой другой редактор, вы почувствуете себя хуже.

Ответ 6

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

Это особенно актуально при работе в среде unix, где для всех используются текстовые файлы (код, сценарии, конфиг, процессы и т.д.).

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

Я начинаю использовать их примерно в 1990 году. Двадцать лет спустя, они подошли к вершине моего списка. Они являются первыми инструментами, которые я устанавливаю, когда я настраиваю машину, и они всегда могут принести мне еще один шаг, когда моя текущая IDE застряла... подумайте о regexrename тысячах файлов, примените сложную переформатировку текстового файла или любой другой текст ориентированной задачи.

Ответ 7

Я использую vi много (я использую его сейчас на работе, потому что я не могу беспокоиться о начале xserver и потому, что он быстро запускается), но только потому, что я должен был изучить его (и "он" "Я имею в виду довольно небольшой набор команд) много лет назад, он полезен для удаленного редактирования файлов, а иногда и gedit или что-то еще не доступное.

Просто для старых времен, я только что начал emacs снова, чтобы увидеть, как сильно я его ненавижу, а затем мне пришлось сделать Google для чит-листа, чтобы рассказать мне, как его закрыть. Поэтому я считаю справедливым сказать, что это не интуитивно.

По моему мнению, намного легче думать о себе как о Нео (Матрица) при работе на зеленом черном терминале с использованием сочетаний тайных клавиш, чем сидеть там, используя дружественный графический интерфейс.

Ответ 8

У Vim огромное количество команд, и если их недостаточно для задач, которые вы делаете повторно, вы можете определить свои собственные. Но вы можете эффективно использовать Vim после того, как знаете только очень небольшое количество этих команд, поэтому у вас нет огромного количества знаний, чтобы научиться начинать (хотя вы будете шарить в течение нескольких дней). Вы также можете применять команды на основе поиска регулярных выражений, что может быть чрезвычайно удобно, если вы хотите применить конкретное изменение к каждой строке, которая соответствует некоторому сложному состоянию. Я не могу себе представить, не кодирование в Vim в эти дни.

Ответ 9

emacs - и, я полагаю, vim, может быть, имеет несколько преимуществ:

  • Больше экранной недвижимости.
  • Реальная полная расширяемость
  • Минимальное использование памяти. У меня было открыто более 100 файлов, включая несколько удаленных файлов редактирования, используя до 35 МБ оперативной памяти.
  • Emacs никогда не закрывается, если вам не нужно перезагружать компьютер или обновлять emacs. Обычно я запускаю один процесс emacs в течение нескольких недель подряд.
  • Тривиально легко модифицировать. Я могу выпустить режим подсветки для DSL за один день, если захочу. С отступом, который работает более или менее. И я даже не так хорош в emacs.
  • Легче на руках, так как вы можете легко перенастроить ключи, чтобы поддерживать вашу личную форму и предпочтительную форму клавиатуры.
  • Расписание. Я мог бы однажды вызвать авария emacs.
  • Работает везде, где я могу получить доступ. Возможно, некоторые более старые системы IBM 390 могут не запускать его...

Я использовал Visual Studio и затмение несколько. Они не так хороши в редактирование исходного текста как emacs. Они значительно медленнее и поддерживают меньше языков.

Единственное осмысленное возражение, которое я слышу в отношении emacs, - "no intellisense ". Я не использую VS/Eclipse Intellisense, когда редактирую там. Кроме того, механизмы автозаполнения в emacs превосходят, от того, что я могу сказать. (например, имена переменных автозаполнения).

Конечно, для этого требуется кривая обучения. Для emacs я бы судил, что 1 месяц ежедневного использования доставит вас до уровня комфортной компетенции для повседневного использования.