LINUX.ORG.RU
ФорумTalks

Программирование в редакторе или IDE

 , ,


0

3

Кто чем пользуется?
Стоит ли с IDE переходить на редактор vim или emacs для програмирования?
Если указательный палец не прилип к мышке, а окружение я использую тайловое (по хоткеем с авторесайзом окон)?
Скорость набора текста довольно высокая (особенно English-раскладки).
Ресурсов компа не слишком много — основной аргумент в пользу отказа от IDE.
И да, я программирую на C, C++, Lisp.

Вопрос не столько технический, сколько общий (разговорный). потому в Talks.



Последнее исправление: goodbyeXP (всего исправлений: 2)
Ответ на: комментарий от Pavval

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

Учитывая удобность изкоробочного кейбиндинга к vim'u, именно читать код, мне в vim стало не менее удобно, чем в qtc. Дома, с ноута - самое то.

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

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

Для этого существуют более другие утилиты https://github.com/ggreer/the_silver_searcher и плагины для vim и emacs.

В IDE переход по нужным зависимостям - это дело долей секунды, нажал клавишу - оно уже там. Чем vim и emacs + вручную припиленный ag будут лучше?

qrck ★★
()

Стоит ли с IDE переходить на редактор vim или emacs

Нет. Vim это инструмент для правки конфигов, а емакс это тетрис, в котором даже текстового редактора нет.

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

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

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

Не такой уж я и мышевоз. Подобные споры уже по 1000 раз проходили и возможности ide описывались. Ты пойми, я тебя переубеждать совсем не собираюсь, если тебе удобен vim - это хорошо.

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

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

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

В IDE переход по нужным зависимостям - это дело долей секунды, нажал клавишу - оно уже там. Чем vim и emacs + вручную припиленный ag будут лучше?

Универсальностью. Но goto definition/references удобнее. И я не могу сходу назвать языка, для которого этого нет в emacs.

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

По большей части - субьективно. Возможно, мне просто не нравится emacs.

Ну и как минимум фич и полезных мелочей по сравнению с тем же qtc(неговоря о более продвинутых в плане отладки) - маловато.

Обьективно, если не придираться и не наращивать список до бесконечности(наверняка прост неосилил):

  • Нет древовидного представления для плюсовых обьектов
  • Нет возможности посмотреть значение переменной наведя на неё курсор в исходном коде
  • Нет интерфейса для редактирования watch'ей
  • Нет интерфейса для быстрого редактирования точек останова
  • Нет интерфейса для реверсивной отладки
  • Геометрия окон никак не подстраивается под размер viewport

Понятно, что всё доступно из коммандной строки gdb, но тут преимущества по сравнению с cgdb или просто tui от меня практически ускользают.

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

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

Если тебя полностью устраивает IDE, то ничем. Для меня лучше тем, что это полнооценная лисп-машина. И, соответственно, добавлять новые возможности легко и приятно. Для кого-то аналогичным преимуществом обладает, например, eclipse или atom.

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

Нет древовидного представления для плюсовых обьектов

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

Нет возможности посмотреть значение переменной наведя на неё курсор в исходном коде

Можно навести курсор и добавить watch горячей клавишей.

Нет интерфейса для редактирования watch'ей

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

Нет интерфейса для быстрого редактирования точек останова

Есть. Причем не только горячими клавишами, но и мышью.

Нет интерфейса для реверсивной отладки

Первый раз слышу, но есть

Геометрия окон никак не подстраивается под размер viewport

Ну это уже совсем неосиляторство. Подстраивается как угодно.

Понятно, что всё доступно из коммандной строки gdb, но тут преимущества по сравнению с cgdb или просто tui от меня практически ускользают.

Это надо просто попробовать. Преимущество - удобство. При «шагании» gdb ты сразу наглядно видишь положение в исходниках в соседнем буфере. Можешь в нем быстро добавить/удалить точку останова/watch и прочие приятные мелочи.

пока оно поддерживает только один отладчик

но gud поддерживает не один отладчик. К тому же есть еще, например, realgud. Хинт: по ссылке поддерживаемые отладчики.

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

Ну это уже совсем неосиляторство. Подстраивается как угодно.

Я имел ввиду автоматическую подстройку, например при первом запуске.

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

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

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

Это для тебя достаточно нормальное представление?

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

Если често - не очень :)

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

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

Например - какая из ide, с поддержкой gdb умеет в reverse debug?

Не то чтобы это нужно, но qtcreator умеет. (специально затестил даже сейчас).

показать сколько прошло времени между двумя step'ами

У студии такой дебаггер что он по пол минуты может между step'ами думать, что никак не связано с работой приложения. (Элементарные if по пол минуты)

Даже галку для scheduler-locking или non-stop мало где можно увидеть, в отличии от.

Есть gdb консоль - там все «галки».

В сумме все «мелкие удобства» дебаггера студии не перевешивают ее проблем и недостатков.

Кроме того эти мелочи - скорее дело привычки.

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

В IDE переход по нужным зависимостям - это дело долей секунды, нажал клавишу - оно уже там.

Аналогично и в vim с плагином ycm - нажал и уже там.

Чем vim и emacs + вручную припиленный ag будут лучше?

Это мультипоточный grep, не более. Зачем вы сравниваете теплое с мягким мне непонятно.

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

Внезапно большинство нормальных ide поддерживают vim-плагины.

Ровно для того, что бы потом вам подобные трубили о поддержке vim-плагинов.

andreyu ★★★★★
()

смотря что считать ide и текстовым редактором.

1. ide поддерживает «модель проекта», а не просто считает каталог с исходниками набором с файлами. само по себе это, конечно, ничего не стоит, но вот с моделью можно проводить те или иные операции.

2. ide поддерживает навигацию и рефакторинг. IntelliJ IDEA и начиналась с тулзы для рефакторинга. потом к ней прикрутили редактор.

3. в ide есть мощный интерфейс к отладчику.

4. ряд иде позволяют прикрутить в качестве редактора что-то вимо или емаксоподобное, но лично я пользуюсь обычным «mouse editor» ctrl+c ctrl+v и тд

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

Я и не говорил, что студия - огонь. Я говорил, что отладчик там хорош. А точнее его gui морда, ибо сам отладчик вполне себе сравним с gdb, ток без скриптов на питоне.

Есть gdb консоль - там все «галки».

Суть ide повесить часто используемые «галки» на на «кончики пальцев». В идеале, удалёнными на «количество кликов» в зависимости от частоты использования.

qtcreator умеет

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

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

К той-же Visual Studio достаточно легко расширения разрабатывать тоже, так что - просто другой подход

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

Это мультипоточный grep, не более. Зачем вы сравниваете теплое с мягким мне непонятно.

Не я первый начал. Мне предложили это как «смотри сопляк, вот правильный способ»

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

Вполне ожидаемый ответ любителей ide - «ide удобнее vim». На этом все аргументы заканчиваются.

В срачах vim vs IDE постоянно приводятся аргументы за со всех сторон, только многие почему-то никогда не слушают. vim не может адекватно манипулировать кодом потому что он не строит AST. Да, есть вроде бы плагин, использующий libclang, с помощью которого можно сделать многое. Но даже он не поможет, например, одновременно с переименованием класса переименовать файлы + записи в CmakeLists.txt/Makefile + include guards в заголовочных файлах. Еще раз - я не меряться членами с тобой сюда пришел. Я высказал свое мнение и для меня удобнее пользоваться IDE. Если тебе удобнее vim - используй на здоровье.

m0rph ★★★★★
()
Последнее исправление: m0rph (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.