LINUX.ORG.RU

GVim versus Emacs


0

4

Драсте, это снова я. Да, сразу прошу простить за то что я сделал это, начал новый холивор.

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

Мне нужна хорошая поддержка пайтона:
1) Автокомплит по словам в текущем файле.
2) Автокомплит по символам(объектам) модулей(например, сделаю import foo, а в коде foo., мне должен выйти список из bar, __init__, __class__ etc).
3) Автокомплит по символам текущего модуля/файла(чтобы я в конце большого файла мог сделать инстанс класса, который объявлен в начале и мне дали список мемберов класса и его родителей, а не как в комодо, в котором он может послать на три буквы).
4) Удобные сниппеты, которые живут ВМЕСТЕ с автокомплитом(слышал что в виме люди ставят автокомплит на таб, а сниппеты на ктрл+., я аж офигел).
5) Хоть сколько нормальная поддержка дебаггера для пайтона и цпп.
6) Хорошие средства рефакторинга(хоть для галочки).
7) Средства для менеджмента проектом и вообще возможность делать файлы на проекты, при этом обозревать несколько проектов сразу.

Мне нужна хорошая поддержка цпп:
1) Хороший автокомплит по проекту и стандартным библиотекам.
2) Хороший автокомплит по другим библиотекам(например, qt, boost).
3) Набор сниппетов.
4) Какие-нибудь средства для хоть полу-автоматизированнного составления make/cmake файлов(да, не хочу писать их вручную, хочу указать пути до либ и добавить пару файлов в проект, нажать кнопочку и запустить).

Мне нужна хорошая поддержка html, js, css:
1) Сниппеты.
2) Автокомплит.
3) Средства для умного написания кода(zen/haml)
4) Автокомплит css в html, js по Jquery, prototype etc
5) Работа с js и css в html-файле(подсветка синтаксиса - минимум)

Мне нужна хоть какая поддержка mako(python template lang):
1) Сниппеты.
2) Подсветка html, js, css.

Вроде всё. Конечно, может быть что-то ещё, но вот это то, что мне нужно каждый день.
Собственно, очень хочется узнать у знающих что есть в виме и имаксе, а чего нет, что где лучше и в каком состоянии, поддерживается ли оно или только раз в год накладываются патчи(например, как я понял, модуль пайтона для вима не обновлялся уже почти 2 года).


>сразу прошу простить за то что я сделал это, начал новый холивор.

Ты себе льстишь.

Led ★★★☆☆
()

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

anonymous
()
Ответ на: комментарий от Danmer

Уже использую для крупных проектов Eclipse+PyDev. До этого вообще был на Komodo.
Сейчас вот думаю на нескольких проектах опробовать (г)вим, но говорят что в имаксе лучше дела с пайтоном.
Сейчас прикручиваю ropevim, проверю, может имакс сам собой отпадёт.
Но всё-таки много вопросов ещё остаётся.

tia
() автор топика

Мне нужна хорошая поддержка пайтона: 1) Автокомплит по словам в текущем файле. 2) Автокомплит по символам(объектам) модулей(например, сделаю import foo, а в коде foo., мне должен выйти список из bar, __init__, __class__ etc). 3) Автокомплит по символам текущего модуля/файла(чтобы я в конце большого файла мог сделать инстанс класса, который объявлен в начале и мне дали список мемберов класса и его родителей, а не как в комодо, в котором он может послать на три буквы). 4) Удобные сниппеты, которые живут ВМЕСТЕ с автокомплитом(слышал что в виме люди ставят автокомплит на таб, а сниппеты на ктрл+., я аж офигел). 5) Хоть сколько нормальная поддержка дебаггера для пайтона и цпп. 6) Хорошие средства рефакторинга(хоть для галочки). 7) Средства для менеджмента проектом и вообще возможность делать файлы на проекты, при этом обозревать несколько проектов сразу.

С такими требованиями вим врядли подойдет. Вот ссылка на то до какого примерно состояния можно допилить вим http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/ + сниппеты xp-template

1) Хороший автокомплит по проекту и стандартным библиотекам. 2) Хороший автокомплит по другим библиотекам(например, qt, boost).

Это вроде можно(не знаю насколько хороший), решение в вим типс omnicomplete cpp

6) Хорошие средства рефакторинга(хоть для галочки).

Что под этим понимается? Если изменить имя переменной в файле, то это можно стандартными средствами вима и емакса.

gameover__
()
Ответ на: комментарий от gameover__

Как и думал, как и говорил: вим всё-таки редактор. А жаль.
С rope вроде не плохо должно работать, но люди говорят что тормозит.

Что под этим понимается?

Изменение названия во всём проекте, например. В любом случае не зря целая библиотека создавалась для рефакторинга(rope).

Почитал про вим, попробовал всего разного, вернулся к эклипсу.
С имаксом, говорят, всё только хуже.
Печально.

tia
() автор топика
Ответ на: комментарий от tia

>попробовал всего разного, вернулся к эклипсу.

А ты и не хотел ничего другого. Это сразу видно было.

anonymous
()
Ответ на: комментарий от tia

разве он не прав?

Если бы я сказал что хочу в эклипсе *тут идет полное описание SLIME*, меня бы сразу послали обратно в емакс.

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

lazyklimm ★★★★★
()
Ответ на: комментарий от lazyklimm

Не прав. Учитесь читать, голубчик.
Я спрашивал людей, которые пользуются и вимом и имаксом, в каком состоянии данные фичи, где лучше.
Анонимус ваш любимый написал:
«А ты и не хотел ничего другого. Это сразу видно было.»
Он как-бы подчеркнул что я «не хотел переходить на вим, имакс», «мне ничего не нужно кроме эклипса».
А ты подумай, какой смысл тогда данного треда, если бы я просто хотел сказать «вим и имакс - говно, я буду сидеть только на эклипсе, а список фич так, случайно накатал, можно не читать»?
Вот ты подумай хорошенько ещё раз над своим сообщением и расскажи подробнее что имакс из этого поддерживает и как.

что ты этим не будешь заниматься - «работать надо»

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

tia
() автор топика
Ответ на: комментарий от tia

>Или просто ты себя считаешь трудоголиком

не поверишь, я считаю себя ужасным лентяем

Ты так сказал, как-будто я не работаю

мне кажется я сказал как раз наоборот

что имакс из этого поддерживает и как.

Мне нужна хорошая поддержка пайтона:

http://www.enigmacurry.com/2008/05/09/emacs-as-a-powerful-python-ide/

Мне нужна хорошая поддержка цпп:

http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html

Мне нужна хорошая поддержка html, js, css:

http://ourcomments.org/Emacs/nXhtml/doc/nxhtml.html

Мне нужна хоть какая поддержка mako(python template lang):

http://bitbucket.org/pjenvey/mmm-mako/

модуль пайтона для вима не обновлялся уже почти 2 года

стандартные модули далеко не всегда являются лучшим решением

lazyklimm ★★★★★
()
Ответ на: комментарий от tia

>Что под этим понимается? Изменение названия во всём проекте, например. В любом случае не зря целая библиотека создавалась для рефакторинга(rope). это тоже можно с помощью команды bufdo из коробки, короче рефакторинг это скорее сильная сторона vimа, emacsа.

gameover__
()

netbeans с модулем для python?

anonymous
()

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

Поддержка цэпэпэ считается хорошей благодаря cedet - на сайте Алекса Отта написано как все настроить, но кажется в емаксе 23.2 что-то немного поменялось, в общем тут я тебе ничем помочь не могу.

Что касается сниппетов то с ними все ок, для всех яызыков программирования. Сниппеты у меня повешаны на таб и автокомплит тудаже.

Поддержка хтмля через nxhtml довольна продвинутая. Поддержка джанго и мако шаблонов имеется. Зенкодинг. Жабоскрибд, цсс все дела.

В общем если не лениво потрахаться с настройками то милости прошу к нашему шалашу :)

Zubchick
()
Ответ на: комментарий от Zubchick

Как в имаксе с менеджментом проектов, скажем, для того же питона?

EVP
()
Ответ на: комментарий от Zubchick

Кстати, к виму что-либо прикрутить проще(имеется в виду не самому написать что-то, а установить готовое), но возможностей меньше имхо. То есть с емаксом точно придется тратить немало времени чтобы все заработало. Вообще если есть сильная ide зависимость, то лучше емакс ковырять, если хочется быстро настроить очень продвинутый редактор, то вим.

gameover__
()
Ответ на: комментарий от yoghurt

Автокомплит - для девочек.

Вот всегда ратовал за автокомплит, а чё-то одажды задумался, что и не использую его совсем. Парадокс. Как-то оно без быстрее набирается.

Reaper ★★
()
Ответ на: комментарий от sacred

настоящие джедаи вроде тебя пишут все руками причем сразу двоичным кодом

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

mv ★★★★★
()

Вроде всё. Конечно, может быть что-то ещё, но вот это то, что мне нужно каждый день.

У меня создалось впечатление, что ты не менее 1/3 рабочего времени занимаешься нажатием кнопки автодополнения, т.е. на лицо явное клепание быдлокода (который бездумный копипаст, по-сути). У нормального человека, соответственно, возник бы вопрос: «А есть ли возможность не набирать одно и то же стопицот раз, пусть и с автодополнением?». Нормальный человек ищет, как бы сделать так, чтобы не работать. Осваивает всякие фреймворки, языки с развитым метапрограммированием (или изучает оное в уже используемом языке). Что только ни делает, лишь бы не работать.

mv ★★★★★
()
Ответ на: комментарий от lazyklimm

Благодарю, закинул ссылки в копилочку.

tia
() автор топика
Ответ на: комментарий от Zubchick

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

tia
() автор топика
Ответ на: комментарий от Reaper

На самом деле автокомплит это просто приятная фишечка, которая может помочь в определённый момент. Это всегда экономия времени. Это всегда большой анализ кода с многими другими плюшками.
Ты, как и «йогурт», открыл для себя то, что достаточно очевидно для других. Однако, на деле оказывается что вы просто не умеете использовать автокомплит.
Автокомплит это ещё и справка по всему проекту, всем модулям, возможность импорта нужных библиотек без собственного вмешательства:
введи название класса какого-нить модуля пайтона в эклипсе, нажми c-1, выбери первый пункт и у тебя сразу вверху импортируется нужный модуль, а в тултипе ты сможешь прочитать о том, какие аргументы использует функция, первые строчки функции, его док-стринг.

tia
() автор топика

Все это есть в VIM с плагинами (я использую A, OmniCppComplete, NERD_tree, MiniBufExpl, Protodef, TagList, TaskList, ManPageView, SnipMate). Есть еще Project, но я он него отказался в пользу NERD_tree.

Использую совместно с ctags и cscope.

Отладчик, к сожалению нормально прикрутить к VIM не удалось.

Еще один минус VIM (точнее эмулятора терминала) - комбинации с Ctrl перехватить по человечески не удается. В Gvim с этим проблем, естественно, нет.

p.s. Emacs так и не осилил, хотя каждый раз его обновляю до свежей версии ;)

andreyu ★★★★★
()
Ответ на: комментарий от mv

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

tia
() автор топика
Ответ на: комментарий от tia

Автокомплит это ещё и справка по всему проекту, всем модулям, возможность импорта нужных библиотек без собственного вмешательства: введи название класса какого-нить модуля пайтона в эклипсе, нажми c-1, выбери первый пункт и у тебя сразу вверху импортируется нужный модуль, а в тултипе ты сможешь прочитать о том, какие аргументы использует функция, первые строчки функции, его док-стринг.

Ты путаешь две вещи: автокомплит и автодокументацию. Первое без второго живёт просто отлично, равно, как и обратное.

mv ★★★★★
()
Ответ на: комментарий от tia

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

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

mv ★★★★★
()

Не использую cpp сейчас, некоторое время назад в имаксе ситуация была следующая. Был недопиленный CEDET, он занимался семантическим разбором кода, соответственно, умел перемещаться по символам и автодополнение. Местами косячило. Сейчас CEDET интегрировали в emacs, допилили, косячит намного меньше можно пользоваться. Был хороший Xrefactory, но он платный, тоже семантический анализ, соответственно навигация, автокомлит и рефакторинг. Подобных вещей, насколько понимаю, в vim нет.

Также как и в vim есть перемещение используя ETAGS и автодополнение основаное на нём. И есть интересный режим autocomplete, т.н. «умный автокомплит», небольшая демка тут: http://www.youtube.com/watch?v=rGVVnDxwJYE. Аналоги у обоих в vim есть.

Что касается сниппетов для emacs есть удобный yasnippet, проще всего посмотреть демку: http://code.google.com/p/yasnippet/downloads/detail?name=yas_demo.mp4.

Reaper ★★
()

И да, идеального автокомплита не существует. OmniCppComplete хорош, но далеко не идеален.
Одним из лучших считаю был плагин для MS VisualC 6 от WholeTomato VisualAssist. Как обстоят дела сейчас я не знаю, т.к. винда используется в основном как билд система (давно пора настроить кросс-компиляцию, но я ленивый).

andreyu ★★★★★
()
Ответ на: комментарий от mv

>У меня создалось впечатление, что ты не менее 1/3 рабочего времени занимаешься нажатием кнопки автодополнения
Откуда такое? Откуда вообще взялись данные мысли? Откуда такая антипатия?

т.е. на лицо явное клепание быдлокода (который бездумный копипаст, по-сути)

На лицо явная антипатия и ЧСВ. Да вам ко врачу нужно. Даже если и писать _весь_ код с помощью автокомплита, то его никак нельзя будет назвать копипастом. Бред вы несёте.

У нормального человека, соответственно, возник бы вопрос: «А есть ли возможность не набирать одно и то же стопицот раз, пусть и с автодополнением?»

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

Осваивает всякие фреймворки, языки с развитым метапрограммированием (или изучает оное в уже используемом языке). Что только ни делает, лишь бы не работать.

Именно! Что вы делаете подключив какой-нить большой фреймворк к вашему приложению? Читаете референсы, так? Нужна функция - ищите в референсах, так?
А вам не приходило в голову что можно нажать 3 раза таб и получить нужную функцию, получить о ней справку, получить информацию о ней, получить список аргументов?
Можете просто даже на глаз сравнить КПД автокомплита в сравнении с поиском по референсам и докам в данном случае

tia
() автор топика
Ответ на: комментарий от mv

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

tia
() автор топика
Ответ на: комментарий от andreyu

О, статья за 2010ый год, новенькое, почитаю, спасибо.

tia
() автор топика
Ответ на: комментарий от mv

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

tia
() автор топика
Ответ на: комментарий от tia

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

то автокомплит становится обязательным атрибутом среды.

кто это сказал?

Если ты не умеешь работать над проектами с >100 строк без автокомплита, это ещё не означает, что он нужен всем.

yoghurt ★★★★★
()
Ответ на: комментарий от tia

Можете просто даже на глаз сравнить КПД автокомплита в сравнении с поиском по референсам и докам в данном случае

Да, вот, даже когда пользовался автокомплитом: CBuilder, MSVS C#, Eclipse Java кпд от чтения док было выше, чем длинный скроллинг в окошке автокомплита с угадыванием нужного метода.

Reaper ★★
()
Ответ на: комментарий от Reaper

Хех, а авто-комплит-мод не плох, хоть и не так хорош как в эклипсе обычный автокомплит.
Вот из-за цпп вся и проблема, вроде как в виме хватает одного rope для всех вещей пайтона, а вот для цпп...

tia
() автор топика
Ответ на: комментарий от Reaper

CEDET еще не до конца интегрирован в emacs, версия из Bzr все еще лучше

ott ★★★★★
()
Ответ на: комментарий от yoghurt

> Если ты не умеешь работать над проектами с >100 строк без автокомплита, это ещё не означает, что он нужен всем.

Но и это не означает, что автокомплит не нужен совсем. Нет ничего плохого в автоматизации и подсказке.
Хороший автокомплит не мешает разработке.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Ну почему, есть: у эклипса, msvs, qt.
VAX же это не то чтобы автокомплит, это просто набор сниппетов и более удобный способ использования обычного автокомплита(хотя фиг знает как внутренности сделаны).

tia
() автор топика
Ответ на: комментарий от Reaper

> Да, вот, даже когда пользовался автокомплитом: CBuilder, MSVS C#, Eclipse Java кпд от чтения док было выше, чем длинный скроллинг в окошке автокомплита с угадыванием нужного метода.

Автокомплит ни как не отменяет необходимости изучения документации к библиотеке. Он просто позволяет держать меньше деталей в голове (точное имя метода / функции / члена / etc.).

andreyu ★★★★★
()
Ответ на: комментарий от tia

Откуда такое? Откуда вообще взялись данные мысли? Откуда такая антипатия?

Из 33 строчек требований, включая пустые, 8 содержит «автокомплит». Хорошо, не 1/3, а 1/4.

На лицо явная антипатия и ЧСВ. Да вам ко врачу нужно.

Посоветуйте хорошего?

Именно! Что вы делаете подключив какой-нить большой фреймворк к вашему приложению? Читаете референсы, так? Нужна функция - ищите в референсах, так? А вам не приходило в голову что можно нажать 3 раза таб и получить нужную функцию, получить о ней справку, получить информацию о ней, получить список аргументов? Можете просто даже на глаз сравнить КПД автокомплита в сравнении с поиском по референсам и докам в данном случае

Несомненно, у меня, прочитавшего API reference, КПД выше, чем у автокомплитчика.

mv ★★★★★
()
Ответ на: комментарий от tia

Ну почему, есть: у эклипса, msvs, qt.

Если в MS VS хороший автокомплит, то почему многие не жалеют денег на VisualAssist? ;)

Про эклипс ничего не скажу - мало его использовал - мне он не нравится.

Qt - может речь о QtCreator?

andreyu ★★★★★
()
Ответ на: комментарий от yoghurt

Ну вот что вам не сидится, обязательно придёте в тред со своими лиспами, отказами от использования благ цивилизации и расхаживаете с видом элиты.
Я же тебе отвечу просто:
Если ты можешь себе позволить терять время на изучение референсов, держать открытыми десятки файлов и свитчится между ними чтобы что-то вспомнить, делать пометки где у тебя что, то это не значит что другие хотят тратить своё время и внимание. Другие успешно решают свои задачи быстрее таких как ты и не кичатся тем что они «отказались от автокомплита».

tia
() автор топика
Ответ на: комментарий от mv

> Несомненно, у меня, прочитавшего API reference, КПД выше, чем у автокомплитчика.

А у того, кто прочел документацию и умеет использовать автокомплит КПД будет еще выше.

andreyu ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.