Pull to refresh

Comments 51

Чего только люди не делают, только что бы мануал к IDE не читать
Ок, хеллоу уорлд собрался.

Следующий шаг — собрать небольшой проект из пары тысяч файлов, подтянув с местного репозитория энное количество библиотек, протянуть тесты, подложить нужные конфиги, подложить плетформ-депендант нейтив библиотеки, задеплоить в продакшн, заодно дёрнув какую джиру.
mvn verify и mvn install относится к системе сборки Maven. Какое отношение это может иметь к Notepad++? Ну если вы будете собирать Notepad++ системой сборки Maven или будете собирать мавеном из консоли Notepad++.
С Maven работают в основном Java-разработчики, хотя есть плагины для интеграции с C/C++, Ruby, Scala, PHP и другими языками.
Спасибо, я знаю, что такое maven. В статье, Вы описываете, как через nppexec в notepad++ собирать java-исходник. rezdm задается следующим шагом (что то сложнее уровня hello world), на что я и предложил, что можно сделать в notepad++ через nppexec вызов maven(gradle\ant раз уж мы про java), который соберет этот проект.
Можно, но никакого смысла в этом нет. Это, как в той картинке про буханку хлеба, превращающуюся в автобус.
Вы когда maven устанавливаете, вы его тестируете как-то?
Вот вы установили. Вам же нужно его как-то протестировать? Что вы делаете? Запускаете из командной строки с аргументами. Как вы иначе проверите правильность его установки и работы? Или вы верите в то, что он изначально установился правильно? Вот вам и ответ. Ну использовать хотя-бы для тестирования правильности установки. И да можно собирать мавеном прямо из текстового редактора и скриптами.
IntelliJ IDEA Community Edition бесплатна, и насколько я помню не имеет ограничений для коммерческого примерения.
Например, чтобы не замусоривать систему многогигабайтными монстрами для простых задач типа «проверить идею». Да и npp запускается мгновенно, не будем показывать пальцем.

Впрочем для этого есть онлайн компиляторы, но вот со сторонними либами часто они работать не умеют.
VSCode весит мегабайт двести — не Notepad++, конечно, но монстром это назвать сложно.
VS Code — отличная IDE для того, что в ней работает. Но вот когда понадобилось просто собрать все.срр файлы в папке и запустить на них указанный мной кастомный С++ компилятор с кастомными параметрами, я это в Code настроить не смог. Удалось только в Qt Creator, и то только через дурацкий CMake + ninja. А по этой статье, наверное, получилось бы как я хотел — напрямую, без лишнего хлама.
допустим, я так нотепадом компилирую Асм-исходники и РоС'ы на языке Си.
Для Си в студии надо создавать проект, настраивать…
Для Асм в студии нет нормальной подсветки + нет другого компилятора, кроме масм.

В нотепаде быстро, удобно, написал, ф6 и готово.
Надеюсь данная публикация будет полезной в освоении, расширении новых знаний и навыков.

Данная публикация будет наглядным примером, как можно расписать на пяти страницах решение вопроса, которому достаточно посвятить пару абзацев текста.
Спасибо за ссылку и информацию. Там два релиза этого проекта Notepad++ для программиста было выпущено.
github.com/simonsteele/pn/releases
Самый недавний это 3 Dec 2016.
Simon Steele работал над этим проектом 15 лет.

NppExec — неудобная хреновина. Не поддерживает юникодные символы в выводе, и с управляющими последовательностями беда (вывод, который в ConEmu отображается раскрашенным — в NppExec остаётся монохромным).


А по остальному — я не понял, причём здесь notepad++. Если я компилирую программу консольной утилитой, то какая разница, в каком редакторе я написал исходники?

«Не поддерживает юникодные символы в выводе»
В какой кодировке у вас исходники? Поставьте UTF-8. Вы путаете установки для системы для юникода, установки Notepad++ для исходников, установки консоли для юникода и установки преобразования символов из одной кодировки в другую в самом NppExec. Вы можете поставить без преобразования и он оставит у вас то что есть.

Что касается ConEmu, то в Windows 10 вы можете использовать полноценную оболочку Bash вместо эмулятора консоли ConEmu.

Раскрасить символы вывода можете и для cmd.

Вы можете писать исходники в любом текстовом редакторе. И я вас не призываю использовать какой-то определенный. Но эта статья относится к Notepad++. Будет время, напишу про другой.
Но эта статья относится к Notepad++.

Вот именно это и непонятно. Каким образом эта статья относится к Notepad++? Разве что в смысле упоминания оного.


Вы путаете установки для системы для юникода, установки Notepad++ для исходников, установки консоли для юникода и установки преобразования символов из одной кодировки в другую в самом NppExec. Вы можете поставить без преобразования и он оставит у вас то что есть.

Нет не путаю. Исходники — в UTF-8, сообщение в консоль я пытаюсь выводить в ней же. Русские буквы — не отображаются. Собственно, поэтому я и снёс некогда NppExec.

Спасибо за ваш интерес. В самом тексте исходника вы задаете кодировку?
Ну например на c# это выглядит так:static void Main(){
Console.OutputEncoding = System.Text.Encoding.UTF8;
Вот мой вывод в консоле самого Notepad++
<<< Process finished (PID=7912). (Exit code 0)
IF: 0 !=0 goto exit
HelloWorld
Process started (PID=6364) >>>
Привет
___________
При этом я везде установил кодировку UTF-8.
Далее в коде на с#, кроме вывода на консоль, я создал окно: MessageBox.Show(«Мир»);

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

Извините. Это я облажался. Сейчас полез проверять, а у меня там строка в UTF-16, тогда как консоль — UTF-8 ждёт.
Непонятно только, почему ConEmu такое жрёт и не давится. Как-то догадывается, что кодировка не та...

Это конечно хорошо, представлять себе, как можно откомпилировать пару файлов. Но писать об этом статью, по-моему, как из пушки по воробьям. Развитие-то какое? Обычно нужно собирать проекты, состоящие из большого количества файлов с исходным кодом и библиотек. Да и после сборки частенько хочется тесты запускать,… а перед сборкой — анализатор качества исходного кода… Библиотеки, опять же, временами пересобирать приходится… Иногда свои патчи применять…

Если хочется на уровне отдельных файлов с исходными текстами работать — посмотрите в сторону make, в частности — gnu make. Если на несколько уровней выше — то в сторону maven. На apache ant тоже можно глянуть, но я бы не советовал… А на ущербном cmd писать 1% от функциональности вышеуказанных кроссплатформенных инструментов — выделки, по-моему, не стоит…
Можно конечно, накачать исходников и собрать всё своими руками. Не все разработчики занимаются maven, apache ant. У всех разные задачи. Здесь я показал наиболее простой путь к пониманию, как мне кажется. Но некоторые вещи требуют еще объяснений. cmd такой же инструмент, вы можете использовать удобные именно вам, вернее даже наиболее подходящие для ваших конкретных задач, которые вы решаете. Но для некоторых задач эти инструменты могут совсем не подойти. Здесь вас скорее всего смутило, то что я привожу в основном примеры на java. Нужно будет дописать на с++ или привести пример взаимодействия потоков и как это просто продемонстрировать с помощью cmd и собственной консоли NppExec.
Мы, похоже, говорим о разном. Конечно, у всех разные задачи. Безусловно, используя что-либо, нужно понимать, как оно работает.

Мне показалось лишь странным, описывать достаточно простые вещи в немаленькой статье. Хотя я не рассматривал данную статью как tutorial для NppExec.

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

Здесь вас скорее всего смутило, то что я привожу в основном примеры на java

Да нет, не смутило. Поэтому gnu make и упомянул.
Здесь я показал наиболее простой путь к пониманию, как мне кажется.

Простите, но к понимаю чего? Что если ты написал код в блокноте, то его можно скомпилировать вручную вызвав компилятор с параметрами в интерпритаторе командной строки?

Насчет cmd — то без него как вы настроите, диагностируете систему? Будете использовать power shell? Как без cmd диагностировать систему, если большая часть утилит не имеет GUI?
Будете подключаться из Linux? Так я выпиливаю ненужные мне части системы. Подсистема posix не нужна для нормальной работы, её вполне можно удалить. Будете использовать кучу стороннего софта и те утилиты с GIU которые есть в системе? Или руками лезть каждый раз в regedit?
Вот моё утверждение:
А на ущербном cmd писать 1% от функциональности вышеуказанных кроссплатформенных инструментов — выделки, по-моему, не стоит…
Ваши вопросы как-то плохо к нему подходят. Если хотите поговорить о cmd, power shell,… etc. — давайте поговорим.
Насчет cmd — то без него как вы настроите, диагностируете систему?… Как без cmd диагностировать систему, если большая часть утилит не имеет GUI?
Скрипты настройки и диагностики могут быть на чём угодно, в том числе на cmd. Просто, на cmd лаконично без «подвыподвертов» у меня хоть сколько-нибудь серьёзной логики написать не получалось. Да и возможность обработки сигналов отсутствует… На том же bash это было существенно красивее. Я использовал и gnuwin, и cygwin, сейчас добавился wsl. На питоне подобную логику приходилось писать — тоже куда удобнее, чем на cmd. Но вас я не отговариваю.
Будете использовать power shell?
power shell я не люблю, поскольку нахожу его весьма тяжеловесным «на вкус и цвет»… Хотя он очень мощный. Правда, для кода, показанного в статье, power shell — по-моему, перебор.
Будете подключаться из Linux?
Мне не очень понятно, что вы имеете в виду. Мы же говорим о windows.
Будете использовать кучу стороннего софта и те утилиты с GIU которые есть в системе?
«кучу стороннего софта» — нет. Только набор удобных утилит, такой, например, как gnuwin. А «утилиты с GIU» для подобных задач сомнительны, да и часто не имеют api.
Или руками лезть каждый раз в regedit?
А тут вообще не понял. REG (\Windows\System32\reg.exe), которую вы используете, — это утилита, которую можно запускать откуда угодно. К cmd она прямого отношения не имеет. Кстати, для изменения мастер-копии переменных окружения, больше подходит утилита SETX. Хотя в рамках «компиляции программ с помощью Notepad++», потребность переписывать что-то в registry заставляет серьёзно задуматься об этой «компиляции». Если не хочется «вводить каждый раз полный путь к программе», в моей ситуации удобнее прописать эти данные в локальном файле конфигурации окружения проекта, поскольку, как правило, компиляторов стоит несколько версий.

что то перемудрили с переменными окружения, они далеко не всегда содержат какой-либо путь на файловой системе, системные и пользовательские переменные отличаются тем кто их видит — только данный пользователь или любой
и строго говоря название статьи не соответствует действительности: Notepad ничего не компилирует, даже с плагином, компилирует по прежнему javac/gcc/что вы там еще вызываете, просто консоль теперь встроена в редактор, как собсно и сделано во многих IDE
Ребят, я из мира линукс. Кто-то объяснит в чём вообще суть проблемы? [SARCASM]

P.S. Такими успехами можно извратиться и в MS Word программы «компилировать».
А вообще, для того чтоб не заниматься вот такой «эротикой» с командной строкой как раз и существуют CMake и другие системы сборки…
Вместо npp берем например, кроссплатформенного Джинна. Суть не меняется
Да. Может быть даже более подходящими будут vi и emacs
Emacs можно скачать с gnu.org
www.gnu.org/software/emacs
Но в них нужно вникать и осваивать другие подходы работы с текстом.
У emacs довольно давно есть возможность работать с искусственным интеллектом.
Только поисковики мне по этому вопросу какую-то билеберду выдают. В основном какие-то рекламные кричащие заголовки.
Я не говорил что я против свободного выбора IDE. Я за нормальные системы сборки, а не скрипты накиданные на коленке, которые перестают работать даже при переносе с одной версии на другую в рамках одной платформы.
ок, вызываем из редактора make, cmake, ant, maven, cargo — что нужно

конечно, это предпочтительный способ для хоть чуть нетривиальных случаев
Не все «с пеленок» попадают в мир Линукс. К тому же с выходом разработок Microsoft и установок на Windows 10 терминалов различных ветвей Линукс, «грань» между системами будет стираться. В Линукс уже давно существует Wine. Если речь идет о некоторой «кросс платорменности», то разработчику приходится вникать в мир различных систем. К тому же некоторые системы, довольно дано сделанные, успешно продолжают жить, даже не всегда в том виде в каком они были выпущены. Разработки для этих систем продолжаются. Да и обратную совместимость никто не отменял. Компилировать программы из MS Word — это конечно утрированно. Речь идет о компиляции с использованием некоторого редактора кода на примере Notepad++. Это не обязательно должен быть Notepad++, в мире Linux вы успешно можете использовать более подходящий именно для вас. Идея только в том чтобы описать это всё в общих чертах. Вы не поверите, но некоторые начинали разработку своих IDE именно так.
Вы ответили не мне, а в общую ветку комментариев, но к счастью я зашёл проверить.
У метода с стандартной CMD и .bat-скриптами под неё тоже есть масса недостатков. Лично сталкивался с случаем когда проект правильно работал на Win-XP, но не хотел на Win-7 т.к. скрипты были заточены чисто под XP и ошибались с путями. Как видите, в данном случае уход от системы сборки убил переносимость не между платформами, а переносимость между разными версиями одной и той-же платформы.
Именно по этой причине я настоятельно рекомендую осваивать системы сборки. IDE можно выбирать на свой вкус и цвет. Но если нужно чтоб проект поддерживали несколько разных человек — стоит всё-же позаботиться о удобстве остальных тоже…
UFO just landed and posted this here
Почему у меня никогда не попадает? Что я делаю не так?
UFO just landed and posted this here
реже комментите через мобильную версию

Совершенно её не использую.
UFO just landed and posted this here
UFO just landed and posted this here
Выглядит так, как будто из Notepad++ попытались сделать Микромир, но не доделали…
Согласен. Но это некоторый учебный материал, который я пытаюсь написать.
Какой я посыл хотел открыть в этом материале: То что начинающему вовсе не обязательно начинать свое обучение с готовых IDE, c готовых фремворков и тд. Да вам может поначалу показаться, что программирование состоит из складывания кубиков GUI и связывания обработчиков. Здесь я писал для лучшего понимания некоторых общих концепций. Во всяком случае пытался. Знание готового фрейворка повысит вашу эффективность. Но не сделает из вас разработчика. Также как и знание одного IDE. Такое знание сделает из вас «Знателя определенного фремворка» или «Знателя IDE одной версии».
Поддержу.
Поколению Z хотя-бы в виде такой экскурсии, нужно показать из чего современные IDE выросли.

Акак это все заставить запускаться с правами админа?

Обратитесь к администратору вашего компьютера.

запустите нотепад от админа, дочерние процессы унаследуют админ права.

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

Спасибо, как я жил без этого! /Сарказм

Sign up to leave a comment.

Articles