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

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

9 ответов


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

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

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


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

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

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


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

Что касается vim и emacs, вот что я сказал в последний раз это придумали:

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

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

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

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

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

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


Vim rocks

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

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

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

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


Записи:

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

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


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

  1. настраиваемость
  2. они бегают везде

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


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

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

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

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


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

  1. больше экран недвижимости.
  2. Реальная Конечная Растяжимость
  3. минимальное использование памяти. У меня было открыто более 100 файлов, включая несколько файлов удаленного редактирования, используя под 35 МБ ОЗУ.
  4. Emacs никогда не должен закрываться, если вам не нужно перезагрузить компьютер или обновить emacs. Обычно я запускаю один процесс emacs в течение нескольких недель подряд.
  5. тривиально легко изменить. Я могу отключить режим подсветки для DSL за день, если захочу. С отступом, который более или менее работает. И я даже не настолько хорош в emacs.
  6. легче на руках, так как вы можете легко переназначить клавиши для поддержки вашей личной формы руки и предпочтительной формы клавиатуры.
  7. надежный. Возможно, однажды я заставил Emacs разбиться.
  8. работает везде, где я могу открыть. Возможно, некоторые старые системы IBM 390 могут не запускать его...

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

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

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


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

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

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


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