Текстовые редакторы Vim и Emacs

Здесь обсуждаются проблемы мироустройства.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Текстовые редакторы Vim и Emacs

Post by Wave »

Много раз слышал о Vim’е в том смысле, какой это крутой редактор. Чаще всего слышал в паре Vim-Emacs. Всегда при этом слышал, что Vim сложен в освоении, неинтуитивен, но мощен как Годзилла. Дошли руки узнать, что в нём такого.

В священных войнах во имя Vim’а говорится, что:
  1. Vim присутствует из коробки в любой юникс-системе.
  2. Он консольный, что позволяет им пользоваться по ssh и без иксов.
  3. Позволяет работать абсолютно без мыши, а значит быстро.
  4. Vim поддерживает охрененную уйму языков программирования (подсветка синтаксиса, навигация по коду и пр.).
  5. Он умеет всё и больше со строками. Переход в начало слова, в конец слова, дублирование и сортировка строк и так далее, и так далее, и так далее.
  6. Поддерживает макросы-сниппеты-шаблоны.
  7. ?
  8. Profit.
Что требует взамен?
Переключаемые режимы командный и редактирования.
  • С режимом редактирования понятно.
  • Переключаешься в командный режим — и перемещаться по тексту надо не клавишами курсора, возможно, в сочетании с Ctrl, Shift и прочими, а клавишами h j k l. Вместо того, чтобы нажать F2 или Ctrl+S для сохранения, нужно в командном режиме набрать… Там двух- или трёхбуквенные команды типа ":wq" - выход с сохранением, ":q!" - выход без сохранения..
Ну так извините…

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

2. Этот пункт нужен только админам. Ну ладно, ещё в программировании иногда случается, что нужно консольный выхлоп отдать в редактор. В общем, этот пункт — преимущество для 0.1% народа. Для остальных — безразлично.

3. Два-три из десяти редакторов позволяют работать абсолютно без мыши, ещё пара — пользоваться мышью раз в сто лет. Замедление работы из-за мыши при должной сноровке такое ничтожное, что им можно пренебречь.

4. Серьёзно? Вы в каком веке живёте? Сейчас редакторов для программистов — что собак нерезанных. И все они поддерживают подсветку сотен языков, навигацию по коду, шаблоны, переходы к объявлениям и прочая-прочая-прочая.

5. Серьёзно? Тот же вопрос про век. Каждый редактор считает своим долгом извернуться похитровыверченней и поддержать операции для работы со строками, которых больше ни у кого нет, а которые есть, скопипастить себе. Половина редакторов типа Notepad++ поддерживают макросы и сниппеты. Большинство поддерживают плагины. Я уж молчу про родной ФАРовский редактор, который, признаем честно, слабоват по возможностям по сравнению с Notepad++ или Sublime Text.

Т.е. я не вижу у Vim’а никаких преимуществ перед тем же Notepad++, из-за которых мне надо было бы запоминать абсолютно непривычные способы работы, абсолютно новые команды вместо вбитых в подкорку горячих клавиш и всё это только для того, чтобы гипотетически (по принципу «лучше день потерять, а потом за пять минут долететь») на 5% ускорить те операции с текстом, которые никогда не были узким местом. Узкое место работы с любым текстом в скорости набора и в продумывании того, что ты хочешь написать.
При том, что привычные способы работы с редакторами работают в 90% оных, а вимовские — только в виме.


Emacs не смотрел, может, там не такая инопланетная логика работы, как в Vim, но упоминаю его тут и адресую тот же вопрос из-за того, что его всегда противопоставляют Vim’у.

Кто что думает?
P.s. Извините, что не в пятницу. Пишу по горячим следам ещё не досмотренного видеообзора.
Пользуюсь ФАРом больше 20 лет © собирательный.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Текстовые редакторы Vim и Emacs

Post by Ariman »

При всей своей "инопланетной логике" у vim-а иногда просто нет альтернатив. По ssh notepad++ не погоняешь, и мыши там тоже нет. При работе с удаленными серверами практически всегда console-only, а часто ещё и ставить ничего нельзя.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Текстовые редакторы Vim и Emacs

Post by HaRT »

HaRT wrote: Заранее предостерегаю горячие головы от развязывания здесь очередной священной войны «VIM vs Emacs».
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Текстовые редакторы Vim и Emacs

Post by Wave »

Ariman wrote:При всей своей "инопланетной логике" у vim-а иногда просто нет альтернатив. По ssh notepad++ не погоняешь, и мыши там тоже нет. При работе с удаленными серверами практически всегда console-only, а часто ещё и ставить ничего нельзя.
Повторюсь, это преимущество только для тех, кому приходится работать по ssh, а таковых подавляющее меньшинство. Лично мне не приходилось ни разу. Т.е. для меня этот довод — ни разу не решающий.
HaRT wrote:Заранее предостерегаю горячие головы от развязывания здесь очередной священной войны «VIM vs Emacs».
Не могу удержаться от того, чтобы вспомнить Эскобара. Нет, серьёзно, я не хочу выяснить, что лучше, я хочу выяснить, чем оно лучше всего остального и действительно ли лучше. Не голый ли король?

Так Emacs тоже такой инопланетный с командным режимом вместо горячих клавиш?
Пользуюсь ФАРом больше 20 лет © собирательный.
ObSerV
Posts: 53
Joined: Wed 29 Jul, 2009 06:26
Been thanked: 1 time

Текстовые редакторы Vim и Emacs

Post by ObSerV »

Господи... Вразуми... Почему в форуме фара про vim?
В emacs комбинации. Командного режима, вроде, нет. Не помню точно - смотрел его лет 10 назад.
Сам пользуюсь vim-ом. Убеждать никого не хочу и не буду.
Да и повесить любую команду на любую комбинацию клавиш в виме - тьфу и растереть.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Текстовые редакторы Vim и Emacs

Post by Ariman »

Wave wrote:Повторюсь, это преимущество только для тех, кому приходится работать по ssh, а таковых подавляющее меньшинство. Лично мне не приходилось ни разу. Т.е. для меня этот довод — ни разу не решающий.
Так, в основном, vim-ом и пользуются те, кому надо работать по ssh (и хвалят его они же). :)
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Текстовые редакторы Vim и Emacs

Post by Wave »

ObSerV wrote:Господи... Вразуми... Почему в форуме фара про vim?
Потому что здесь есть раздел форума «О тщете всего сущего». А если серьёзно, мне больше негде было об этом поговорить. В жж меня читают полтора программиста в лучшем случае, в литературных сообществах или сообществах по рукопашному бою вообще без шансов. И т.д..
ObSerV wrote:В emacs комбинации. Командного режима, вроде, нет. Не помню точно - смотрел его лет 10 назад.
Спасибо.
ObSerV wrote:Сам пользуюсь vim-ом. Убеждать никого не хочу и не буду.
Я не в претензии.
ObSerV wrote:Да и повесить любую команду на любую комбинацию клавиш в виме - тьфу и растереть.
Классическое «купи козу — продай козу». Зачем мучиться и много часов составлять все биндинги, чтобы сделать что-то, что уже есть. К тому же особенности режимов всё равно будет не сточить и в основе всё равно будет лежать другая логика.

Ariman wrote:
Wave wrote:Повторюсь, это преимущество только для тех, кому приходится работать по ssh, а таковых подавляющее меньшинство. Лично мне не приходилось ни разу. Т.е. для меня этот довод — ни разу не решающий.
Так, в основном, vim-ом и пользуются те, кому надо работать по ssh (и хвалят его они же). :)
В общем-то это многое объясняет. И вал похвал, и, подозреваю, логику командного режима. Если я правильно понимаю, по ssh есть проблемы с передачей хоткеев с альт, контрол. А тут они не используются от слова совсем.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Текстовые редакторы Vim и Emacs

Post by DrKnS »

What we say What we mean ... emacs is better than vi it's too peaceful here, let's start a flame war vi is better than emacs it's too peaceful here, let's start a flame war ...
User avatar
cmd.exe
Posts: 378
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 181 times
Been thanked: 10 times
Contact:

Текстовые редакторы Vim и Emacs

Post by cmd.exe »

Я предпологаю:
Cтандартный редактор нас многим неустраивает. Мы боимся что его начнут перелапачивать.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Вместо холивара(Они Мне нравятся по свойму) дам вам документацию на оба редактора.
Vim keyboard shortcuts
Лёгкая обучалка виму на английском
Тут можно научиться виму легко.
Emacs keyboard shortcuts
Bash keyboard shortcuts
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Текстовые редакторы Vim и Emacs

Post by Wave »

cmd.exe, спасибо за ссылки. Интерактивная обучалка — действительно клёвая вещь, если надумаю-таки его осваивать. Но меня просто вымораживает, что вместо клавиш курсора надо пользоваться h j k l, копирование-вырезание-вставка не имеют ничего общего с привычными CtrlIns ShiftIns или CtrlC CtrlV, есть специальные команды типа заменить букву под курсором, вместо привычного Del и буква, а всякие хитрые команды типа подвинуться на N строчек выше-ниже имхо вообще бесполезны, проще курсор подвинуть куда надо, чем на глаз определять, на сколько же строк сместиться, потом вводить команду, потом корректировать её, если промахнулся.

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

Вот о чём я! Оно действительно стоит того, чтобы так корячиться? Есть тут кто-то, кто одинаково хорошо владеет и вимом, и каким-то другим (например, фаровским, с макросами, с вдоль и поперёк изученными настройками и хитростями) редактором — может он честно сказать, что в виме его производительность в разы, а не на 5%-10% больше?
Или, там, если вим используется как IDE, то не с ФАРом сравнивать, а с чем-то типа Sublime, Intelij idea и пр..

Да, я увидел (в видеообзоре), что умелый вимер операции над текстом типа замены слова, находящегося через два слова от курсора, проводит быстрей, чем это делаю я в ФАРе (CtrlRight CtrlRight CtrlShiftRight CtrlDel если включены постоянные блоки и печатается новое слово. Хотя постоянные блоки в последнее время у меня почти всё время выключены.), но если так прикинуть, по количеству нажатий клавиш вимер экономит… Ни черта практически не экономит. Зато вимер из обзора печатает со скоростью 500 знаков в минуту, как он сам сказал. Не за счёт ли этого он быстрее меня редактирует имеющийся текст? Про набор нового не говорю, в наборе нового у вима нет разницы с остальными.

P.s. Множественный курсор понравился, в ФАРе его нет. Но есть у многих других.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
cmd.exe
Posts: 378
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 181 times
Been thanked: 10 times
Contact:

Текстовые редакторы Vim и Emacs

Post by cmd.exe »

Wave, менять раскладку(я про jkl) это моветон для VIM, он предпологает, что вы пишите много и быстро.
Прерост от 15 до 25% по скорости написания и редактирования.
Если кто-то допилит Вим на "Русские бинды" я-бы попробовал, но это станет не нативно понятным.
Speed coding a small virtual machine
Если есть кто-то, кто-бы сравнил все эти редакторы попробовав.

Если ты хочешь быть кодером, ты всегда доростёшь до правильного редактора. (с)
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates
ObSerV
Posts: 53
Joined: Wed 29 Jul, 2009 06:26
Been thanked: 1 time

Текстовые редакторы Vim и Emacs

Post by ObSerV »

Wave wrote: Но меня просто вымораживает, что вместо клавиш курсора надо пользоваться h j k l
Ну,положим, клавиши курсора тоже отлично работают...
User avatar
cmd.exe
Posts: 378
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 181 times
Been thanked: 10 times
Contact:

Текстовые редакторы Vim и Emacs

Post by cmd.exe »

ObSerV wrote: Ну,положим, клавиши курсора тоже отлично работают...
Ты часто руку сдвигаешь в правую сторону, теряешь клавиши которые под рукой.
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates
ObSerV
Posts: 53
Joined: Wed 29 Jul, 2009 06:26
Been thanked: 1 time

Текстовые редакторы Vim и Emacs

Post by ObSerV »

cmd.exe wrote: Ты часто руку сдвигаешь в правую сторону, теряешь клавиши который под рукой.
Это да :) Я ими и не пользуюсь:) Но альтернатива-то есть.
User avatar
cmd.exe
Posts: 378
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 181 times
Been thanked: 10 times
Contact:

Текстовые редакторы Vim и Emacs

Post by cmd.exe »

http://m.habrahabr.ru/post/265197/
Тут хорошо описана схожая со мной позиция.
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates
Post Reply

Return to “О тщете всего сущего”