LINUX.ORG.RU

Идеальная IDE

Нет такой. Все сосут, из тех, что пробовал. Vim — не от мира сего. Нет сил осилить его больше чем надо для правки конфигов. PyCharm/Eclipse — монстры и тормоза, во всём. В Geany проблемы с фолдингом блоков на смешанных (html+css+js) файлах, а ещё раз в 2-3 дня зависает при сохранении. Kate — тормозит на больших файлах + проблемы с длинными строками. Саблайм — тормозит на больших файлах.

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

Прозелит!

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

Вах! Людей переходивших на Emacs и оплёвывавших потом Vim я встречал, а вот человека переходящего на Vim вижу впервые.

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

И это корректно переходит к определению (предлагает выбор для виртуального метода) с учетом контекста и семантики языка?

Не совсем, это не идеальный механизм. Он работает на основе semantic + ctags, отдавая предпочтение semantic там, где это возможно. С Emacs Lisp работает иначе, т.к. в Emacs для него имеется свой полноценный механизм навигации.

Для каких языков работает?

Говорю же:

Я сейчас использую для emacs lisp, clojure, java. Но для всего остального можно тоже настроить.

Вообще будет работать в том или ином виде для всех языков, поддерживаемых semantic + ctags.

Как можно «сравнительно легко самому дописать» поиск references в коде для языков

semantic и ctags - вещи расширяемые. Например, настройка ctags для работы с Clojure: http://blog.stwrt.ca/2012/10/31/vim-ctags

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

Kostafey
()

Ты бы хоть ЯП уточнил что ли.

harm
()

лично для меня vim вполне хорошо подходит для javascript, хотя и не идеально.

работаю с проектом 13000+ файлов, конфиг вот такой:

http://feb.imghost.us/Ax9M.png

нравится скоростью работы, сплитами и макросами. переходы между файлами удоволетворительные (плагин CtrlP), но могли бы быть лучше (много ложных срабатываний при fuzzy-поиске ввиду огромной вложенности файлов и каталогов).

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

Не совсем, это не идеальный механизм. Он работает на основе semantic + ctags, отдавая предпочтение semantic там, где это возможно.

Так одна из базовых возможностей IDE - «понимать» язык, на котором пишется программа. Это означает, что в IDE должен быть встроен compiler front-end, который полностью разбирает код, строит AST, выполняет typecheck и semantic analysis. А ctags никак не тянет на compiler front-end и всегда будет лажать на чуть менее тривиальных случаях.

semantic и ctags - вещи расширяемые

Почему же их до сих пор никто не расширил до уровня incremental compiler front-end и не встроил в emacs/vim?

придется копать уже серьезнее

Вот так всегда, только о базовой функциональности IDE спросишь - сразу «копать». Да и ладно бы можно было «докопать», так ведь сколько не прикручивай костыли к emacs/vim получить удобный редактор для работы с кодом на уровне лучших IDE не получится.

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

Так одна из базовых возможностей IDE - «понимать» язык, на котором пишется программа.

Частично есть в CEDET - semantic.

Это означает, что в IDE должен быть встроен compiler front-end, который полностью разбирает код, строит AST, выполняет typecheck и semantic analysis.

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

А ctags никак не тянет на compiler front-end и всегда будет лажать на чуть менее тривиальных случаях.

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

Почему же их до сих пор никто не расширил до уровня incremental compiler front-end и не встроил в emacs/vim?

Очевидно, цель этих продуктов несколько иная.

Вот так всегда, только о базовой функциональности IDE спросишь - сразу «копать».

А вы хотите универсальную среду для всех языков с возможностями не меньше лучших узкоспециальных сред?

Да и ладно бы можно было «докопать», так ведь сколько не прикручивай костыли к emacs/vim получить удобный редактор для работы с кодом на уровне лучших IDE не получится.

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

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

Kostafey
()

Я когда на линух пересел то сначала пару лет сидел на mcedit, потом примерно год пробовал geany и kate вперемешку, потом добрался и до вима.
Ну и как бы что меня на нём держит:
- удобства и навороты типа ci)
- вертикальное редактирование
- перенося один конфиг файл я получаю привычную мне среду разработки на любой машине (и по ssh тоже) так как у меня все плагины в .vimrc
- нетормозное редактирование больших файлов

q11q11 ★★★★★
()
Последнее исправление: q11q11 (всего исправлений: 1)
Ответ на: комментарий от Kostafey

Редактор уже есть. Удобный.

Редактор для plain text, с небольшими удобствами вроде примитивной подсветки синтаксиса для работы с кодом.

IDE в Emacs частично реализована и для некоторых языков вполне юзабельна.

Для каких языков «вполне юзабельна»? Так, чтобы можно было залезть в исходники большого и сложного проекта без проблем с навигацией по коду.

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

Редактор для plain text, с небольшими удобствами вроде примитивной подсветки синтаксиса для работы с кодом.

Блочное редактирование, multiple-cursors, align-regexp, keep-lines, transpose-words, fill-paragraph, indents, макросы, легион их.

Для каких языков «вполне юзабельна»? Так, чтобы можно было залезть в исходники большого и сложного проекта без проблем с навигацией по коду.

Emacs особенно хорош для лиспов. Собственно я имею дело пока только с EmacsLisp и Clojure. Говорят, что с cl тоже все хорошо.

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

Так одна из базовых возможностей IDE - «понимать» язык, на котором пишется программа. Это означает, что в IDE должен быть встроен compiler front-end, который полностью разбирает код, строит AST, выполняет typecheck и semantic analysis.

Так к emacs прикрутили clang для C и C++, nrepl для clojure и slime для CL, например. Это из того, чем я пользовался. Думаю и для других языков есть варианты. Например видел проект (достаточно упоротый, ИМХО) по прикручиванию eclipse к vim сбоку.

feofan ★★★★★
()
Ответ на: Прозелит! от Camel

Он же ниасилил просто. Ему выше уже указали на evil

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

Так к emacs прикрутили clang для C и C++

Там хоть что-то кроме дополнения работает? Вроде семантической подсветки, поиска references, показа ошибок на лету при редактировании кода?

kamre ★★★
()
Последнее исправление: kamre (всего исправлений: 1)
Ответ на: комментарий от Saloed

Дерево проекта, навигация по функциям/методам класса, переход к имплементации метода по, например, Ctrl+Click на вызове этого метода? Реализуется? Для каких языков? Как? Я не для вброса, просто действительно интересно.

Все это есть в vim. Для C/C++. С помощью плагинов - youcompleteme, nerdtree, nerdcommenter, ctrlp, vim-session, tagbar.

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

Там хоть что-то кроме дополнения работает? Вроде семантической подсветки, поиска references, показа ошибок на лету при редактировании кода?

Для vim есть syntastic, но для меня он скорее лишняя свистоперделка.

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

Ну, для C/C++ есть QtCreator.

Он скорее для поддержки тулкита, а не языка.

И он идеален.

Субъективно.

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

Чем мне *vim не нравится так это тем что неудобно мне работать с туучей файлов и переключатся между ними.

Я думал, что переключение между буфферами - это достоинство vim =)

:b <part of the file name><TAB><CR>

Просто и бысто ведь

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

Если разработчик не способен собрать свою IDE, то он обычная офисная мартышка.

Интересная мысль. Впрочем, наличие своей закостомизированной IDE не является обязательным. Кроме того, для пиления «здесь и сейчас» может быть больше толку от промышленных решений.

Чтение мантр, аскетизм и медитации - это хорошо, но когда проголодаешься иногда бывает нужно и поработать :)

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

а затем обнаружить, что все функции больших IDE в том или ином виде реализуются в Emacs и VIM)

см. выше, насчёт емакса тот же вопрос

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

Хорошее дело. QtCreator тоже пилят в этом направлении.

ЕМНИП, даже кто-то из ЛОРовцев учавствует

feofan ★★★★★
()
Последнее исправление: feofan (всего исправлений: 1)

Qt Creator уже советовали?

WRG ★★★★
()
Ответ на: Прозелит! от Camel

Вах! Людей переходивших на Emacs и оплёвывавших потом Vim я встречал, а вот человека переходящего на Vim вижу впервые.

Да не, сегодня уже vim в начале дня закрыл. Вместо вима поднял себе привычную под Emacs среду на макоси — перемапил всю клаву (чего и хотел избежать).

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

наркоман, evil-mode чем не угодил?

Не пробовал, но осуждаю. Уже перебиндил клаву под емакс, как-нибудь в ближайшем будущем заблогопостю как настроить макось под emacs. Начиная от необходимого — ctrl на caps и return. Кроме вима пробовал ещё саблайм, тоже не вкатило.

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

как-нибудь в ближайшем будущем заблогопостю как настроить макось под emacs.

на 100% не получается один хрен

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

Дерево проекта, навигация по функциям/методам класса, переход к имплементации метода по, например, Ctrl+Click на вызове этого метода? Реализуется? Для каких языков? Как? Я не для вброса, просто действительно интересно.

В случае emacs смотреть в первую очередь на cedet. Для языков, которые не поддерживает cedet, есть свои режимы. Есть пакеты и для проверки синтаксиса на лету, и встроенные терминалы с файл-менеджерами. И куча разных модулей для проектов (от дерева файлов отличается дополнительными удобствами). Для каждого языка нужно городить свой конфиг, но все это окупается тем, что освоив правильную работу в emacs редактировать код будет приятно, быстро, удобно.
Ну и Emacs основная ide для лиспов в любом случае.

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

на 100% не получается один хрен

Смотря чего хотеть. Linux тут конечно удобнее будет, но необходимый минимум я настроил: ремап контролов на капс и рет, emacs-like хоткеи для всей системы (чтобы не путаться), есть ещё возможность настроить переключение языков как я это делал в linux, но это пока ещё не сделал. В остальном под капотом есть все что нужно, не хватает только какого-нибудь stumpwm (пользуюсь тут wm на стероидах, но он не умеет хоткеи с префиксами как в emacs).

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

ремап контролов на капс и рет

это даже искаропки делается на раз-два

emacs-like хоткеи для всей системы

оно там и так есть

не хватает только какого-нибудь stumpwm

this

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

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

это даже искаропки делается на раз-два

искаропки — только капс. Ret только через keyRemap4macbook.

оно там и так есть

где?

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

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

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

Прикольно. Но блин, расскажите мне, как освоить Emacs? А то я пару раз пробовал, ни#@$ не понял, и как то забросил в долгий ящик :( Котя штука по первым ощущениям просто турбореактивная по сравнению со всякими там еклипсами.

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

Мне концепция такого окружения сразу понравилась, а когда что-то интересно — осваивается само собой. По-другому не знаю как. Основная проблема и vim и emacs — их используют неправильно. Это когда пользователь пытается работать в них, используя свои старые привычки (включает дополнения, которые приводят среду к виду, похожему на «обычный» редактор). И в виме и в емаксе надо сразу почитать (официальные мануалы, туториалы и скринкасты) о том, как правильно осуществлять навигацию по коду и его редактирование.

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

Например, действительно неправильно использовать стрелки для навигации, их расположение на клавиатуре заставляет смещать руку с т.н. home row. Правильные комбинации с контролом на современных клавиатурах тоже неудобны, но все становится просто шикарно если повесить контролы на capslock и return. Ещё правильно перемещаться по файлу с помощью поиска и не забывать про быстрые «макросы» — C-5 C-n переведет каретку на пять строк вниз, для этого у меня подключена относительная нумерация строк (в виме она тоже есть). Есть ещё много других фишек, я не возьмусь сейчас здесь все описывать. В туториале многое есть.

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

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

неправильно использовать стрелки для навигации, их расположение на клавиатуре заставляет смещать руку с т.н. home row.

Помимо чуть более длинных движений руками еще контраргументы есть?

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

ИМХО эта не проблема, если разрабатывать пальцы.

C-5 C-n переведет каретку на пять строк вниз

Прямо C-n, как в канонах сказано, даже не ErgoEmacs?

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

Помимо чуть более длинных движений руками еще контраргументы есть?

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

Прямо C-n, как в канонах сказано, даже не ErgoEmacs?

Не вижу никакого смысла в ErgoEmacs.

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

значит, vim не может считаться IDE, по крайней мере, для плюсов

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

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

Ни то ни другое. Хотел услышать ваше аргументированное мнение. Занимаюсь изучением данного вопроса. С интересом выслушиваю различные позиции по этому поводу. Я не собирался вас критиковать, это был просто уточняющий вопрос.

Не вижу никакого смысла в ErgoEmacs.

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

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

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

Я очень быстро привык к стандартным. Дело в том, что если контролы перебиндить как я писал, то все стандартные часто используемые емаксовые хоткеи оказываются очень удобно расположены. Т.е. C-n выжимать мне также удобно как j в виме и гораздо удобнее чем использовать стрелочки, потому что обе руки уже лежат в нужном положении. Возможно я просто привык, но я ощущаю определенный комфорт, когда управляю другими приложениями емаксовыми хоткеями. У меня есть некоторые отличия от дефолта, например такие:

(global-set-key [(control h)] 'delete-backward-char)
(global-set-key [(control meta h)] 'backward-kill-word)

Т.к. C-h тоже очень удобно выжимать — и ctrl и h расположены в стандартном положении рук на клавиатуре. А редко используемые хелп-биндинги я на f9 перевесил.

Кроме того, как я вижу — в ErgoEmacs много «стандартных» (не для emacs) хоткеев, которые выжимаются одной рукой. В emacs хоткеи выжимаются двумя и это делать очень удобно, кроме того не сразу развивается привычка использовать правый контрол когда надо.

Если переключаться между разными приложениями, то все эти привычки разбиваются об разные хоткеи. Поэтому мне полюбились conkeror, stumpwm, приложения для emacs (gnus, org-mode и прочие). В такой среде к префиксным хоткеям емакса очень быстро привыкаешь.

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