Sublime text для c: Sublime Text 2 для C/C++ разработчика или SublimeClang / Хабр

Sublime Text 2 для C/C++ разработчика или SublimeClang / Хабр

На хабре много статей посвященных редактору Sublime Text 2. Обычно они рождают за собой множество комментариев, где сторонники ST2 и всевозможных других редакторов (а также полноценных IDE) предаются веселому процессу «достоинствометрии».
Однако, среди комментариев мне лично ни разу не встречалось упоминаний о плагине SublimeClang, который кардинально меняет работу C++ программиста в этом редакторе. Поиск по хабру выдал всего 4 упоминания плагина в комментариях.
Не знаю, чем вызвано такое игнорирование. Хорошие вещи не обсуждаются? ST2 не используют C и С++ разработчики? Своей статьей я хочу исправить ситуацию. Я расскажу о некоторых, возможно не очевидных, особенностях установки и настройки, а также поделюсь парой собственных приемов и скриптов.

О плагине

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

Для файлов C/C++/ObjC/ObjC++ плагин заменяет стандартное автодополнение редактора на свое собственное. Для этого, плагин в фоне прогоняет исходник через компилятор clang, который формирует AST. Полученную информацию плагин использует для интеллектуальных подсказок автодополнения.
Ближайший аналог, который я могу подобрать — это функция IntelliSense в MS Visual Studio.
Использование информации из первых рук — от компилятора — позволяет плагину правильно узнавать, какие переменные, функции, типы и т.п. доступны в данной конкретной точки программы. Так же, в какой-то мере работают Go to definition (alt + d, alt + d) и Go to implementation (alt + d, alt + i). Список остальных горячих клавиш доступен на странице проекта.

Установка

Пользователям Windows и Mac OS X повезло — устанавливается плагин элементарно, через Sublime Package Manager.
Пользователям Linux — повезло меньше. Для Linux необходимые библиотеки не поставляются в собранном виде, так что устанавливать плагин надо из git-репозитория и провести сборку вручную.

(Вообще, поставить-то можно и через Package Manager, вот только он удаляет все собранные вручную библиотеки каждый раз, когда решает проверить обновления). Инструкция по сборке есть на странице плагина, пункт «Additional Prerequisites (Linux Only)».

Пример установки на моей системе Archlinux x64

  1. Установить clang
  2. Установить python26
  3. Для того, чтобы победить ошибку «ctypes can’t be imported» сделать symlink:
    ln -s /usr/lib/python2.6/ /opt/sublime_text/lib/python2.6

  4. Установить SublimeClang
    git clone --recursive git://github.com/quarnster/SublimeClang.git 

  5. Так как в archlinux libclang.so находится в /usr/lib/llvm/, т.е. не там, где ее ожидает увидеть SublimeClang, делаю symlink внутрь папки плагина.
    ln -s /usr/lib/llvm/libclang.so

  6. Собираю недостающие плагину библиотеки по инструкции со страницы проекта.
    cd src
    mkdir build
    cd build
    cmake . .
    make
    

Настройка

Настраивается плагин стандартным для ST2 способом.
Есть файл SublimeClang/SublimeClang.sublime-settings. Файл хорошо документирован, все возможные настройки перечислены там и в комментариях есть примеры использования.
Есть User/SublimeClang.sublime-settings, куда следует перенести собственные настройки.
Так же, возможно указать специфичные для проекта параметры. Они указываются в файле проекта (Project - Edit project) в секции "Settings"

. К имени каждой опции плагина добавляется префикс "sublimeclang". Таким образом, например, настройки проекта, использующего C++11 могут выглядеть так

"settings":
{
	// Настройки самого редактора
	"trim_trailing_white_space_on_save": true,
	// Настройки плагниа
	// В основном файле настроек плагина эта опция называется "additional_language_options". Здесь же добавляем префикс. 
	"sublimeclang_additional_language_options":
	{
		"c++" :["-std=c++11",
				"-stdlib=libc++"
				]
	}
}

Стандартные общие настройки весьма адекватны. Единственное — что я меняю и вношу в User-настройки — это "debug_options": true. Эта опция включает вывод списка параметров, которые передаются компилятору. После включения, параметры компилятора будут выводиться в консоли редактора (View - Show console).

Интеграция с билд-скриптами

Основная проблема, с которой я столкнулся — плагин (а значит и компилятор) не знает где искать заголовочные файлы нестандартных библиотек. (На Windows, вероятно, он и о стандартных ничего не знает).
Основной способ решения проблемы — использование опций плагина "options" и "additional_language_options", которые позволяют передать компилятору пути и необходимые дефайны. Естественно, можно указать общие и специфичные для проекта настройки. Например

"sublimeclang_options":
[
	"-I~/libs/boost_1_52_0",
	"-I~/code/sdl2/root/include"
]

Метод универсальный и простой как валенок, но содержит существенный недостаток — настройки, фактически, повторяют ту информацию, которая и так известна build-системе, которая собирает код проекта.

Плагин предоставляет опцию «options_script», в которой можно указать команду, которая будет вызываться для каждого файла. Эта команда должна вернуть список опций компилятора для данного конкретного файла. Таким образом можно писать собственные скрипты, которые спросят настройки компилятора у build-системы и сообщат их плагину.

Разработчик плагина в комментариях к опции даёт ссылку на скрипт https://gist.github.com/3944250, который берет настройки компиляции из CMake.
Для своего текущего проекта я немного подредактировал скрипт. Теперь

  1. скрипт подбирает настройки к заголовочным файлам;
  2. не жестко задается папка, в которой CMake проводит сборку. Вместо этого скрипт ищет папку build, проходя рекурсивно на верх по дереву папок. У меня в одном проекте ST2 много разных маленьких проектов CMake.

Моя версия скрипта https://gist.github.com/4641812

Аналогично я проводил интеграцию с утилитой ino, которая используется для сборки проектов arduino.

Ссылка на скрипт https://gist.github.com/4641886. В шапке скрипта приведены настройки, которые необходимо добавить в файл проекта ST2. Также следует указать ST2 считать файлы .ino файлами C++. Для этого в правом нижнем углу нажать на выбор схемы подсветки кода и выбрать С++ в подменю "Open all with current extension as...".

Теоретически, можно создать скрипт, который вытащит команды компиляции из Makefile-скриптов. GNU make позволяет сделать дамп всех переменных и правил (make -np), которые затем можно распарсить и вытащить команды компиляции. И я даже начинал писать скрипт, но забросил это дело.

Недостатки

Ну а куда же без них.

  1. В некоторых замороченных случаях (дополнение параметров шаблона какого-нибудь замороченного шаблонного класса) плагин таки падает и роняет за собой ST2. Бывает редко, я видел такое всего пару раз во время моих экспериментов с новыми фичами C++11. Неприятно, конечно, но спасает то, что ST2 очень часто делает автосохранения.
    Я терял всего пару последних изменений кода.
  2. Иногда плагин не видит вариантов для дополнения. Особенно, если в файле есть ошибки. Что, конечно, логично, на исходник с ошибками полагаться нельзя, но тем не менее, не приятно.
  3. Плагин иногда не подсказывает имя метода класса, когда пишешь его вызов в теле другого метода того же класса. this->method_name — подсказывает. Просто начинаешь писать method_name — не подсказывает. Повторяется не всегда, я не могу конкретнее сказать, когда такое происходит — просто не исследовал.
  4. Недостаток, скорее не самого плагина, а моего скрипта выделения параметров компилятора из базы cmake. Допустим мы переходим к определению функции (или класса, чего угодно) в заголовочный файл сторонней библиотеки. Настройки компилятора для этого заголовочного файла плагину уже не известны и он теряется, выдает кучу ошибок на неизвестные типы и т.п.
Заключение

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

Настройка Sublime Text для Unity

Эта заметка больше для разработчиков использующих OS X (Mac OS уже). Потому как, разница между Visual Studio и MonoDevelop, просто разительна, как и скорость работы.

Но есть отличное решение — Sublime Text (ST). Установив несколько плагинов, и без того быстрый и многофункциональный ST, прекрасно подойдет для разработки на C# в Unity. После настройки, вы получите:

  • Автодополнение кода — autocompletion
  • Переход к функции — go to definition
  • Подсветка ошибок и синтаксиса
  • Сворачивание фрагментов кода — code folding
  • XML документирование

Установка Mono

Сначала нужно поставить Mono — open-source реализация . NET фреймворка, он нужен для компиляции и запуска C# скриптов на маке. Его можно установить, например, с помощью Brew:

brew install mono

Установка Package Control для Sublime

Если в вашем ST еще не установлен пакетный менеджер, то сделать это очень просто: нужно открыть консоль внутри ST, вставить кусок кода и нажать Enter.

Установка Omnisharp

Основной плагин который позволит ST работать с C#. Для установки: открывает пакетный менеджер (cmd+shift+p → Install Package), ищем Omnisharp и устанавливаем.

Настройка проекта

Теперь надо создать Sublime Project и связать его с Unity проектом. Для этого: открываем в ST корневую папку с проектом и идем в меню Project → Save Project As…. Сохраняем файл проекта рядом с *.sln файлом для удобства.

Открываем только что созданный файл MyProject.sublime-project в текстовом редакторе, можно в том же ST и редактируем его:

{
    "folders":
    [
        {
            "path": ". ",
            "file_exclude_patterns": ["*.meta"],
        },
    ],
    "solution_file": "./MyProject.sln"
}

Тут немного объясню:

  • path — путь до папки со скриптами, в данном случае корневая папка, но вы можете написать например Scripts, или ту где у вас лежат скрипты
  • file_exclude_patterns — файлы с какими расширениями не показывать в проекте
  • solution_file — самое главное, тут должно быть название вашего SLN файла проекта

Устанавливаем плагины

Для документирования устанавливаем плагин — XmlDocs, для сворачивания кода — SyntaxFold. Устанавливаем также, через пакетный менеджер. Чтобы задокументировать код: вводим три слеша и жмем табуляцию — (/// + tab). А для настройки сворачивания кода, после установки плагина, нажмите shit+f5 и выберите C#.

Последние штрихи

Чтобы автодополнение кода работало не только по ctrl+space, а каждый раз когда вы ставите точку, в конфиг надо добавить правки. Убедитесь, что у вас открыт C# файл, и выбран синтаксис C# (в правом нижнем углу), далее идем в меню: Sublime Text → Preferences → Settings — More → Syntax Specific — User и вставляем этот код:

{
    "auto_complete": true,
    "auto_complete_selector": "source - comment",
    "auto_complete_triggers": [ {"selector": "source.cs", "characters": ".<"} ],
 }

Если вдруг автодополнение кода не заработало, перезагрузить ваш SLN файл: жмем cmd+shift+p, и выбираем OmniSharpSublime: Reload Solution.

Еще момент: это настройка ST для редактирования уже имеющего проекта. И мы не делаем его редактором по-умолчанию. Т. е. если вы откроете файл двойным кликом из Unity, то Omnisharp сервер не запустится. Для «корректного» открытия проекта, нужно в ST выбрать меню: Project → Open Project… и выбрать MyProject.sublime-project файл.

Готово

Теперь можно быстро и комфортно писать C# код для Unity на маке. Конечно, можно поставить еще плагинов, тут уже на ваше усмотрение. Например, есть плагин со сниппетами для C#, ищется в пакетном менеджере по словам C# Snippets.

Только для любителей Sublime Text 🙂 Удачи!

Как запустить программу C и C++ в Sublime Text

В этом руководстве вы узнаете, как запускать программу C и C++ в Sublime Text в Windows.

Это очень популярный и широко используемый программистами и разработчиками текстовый редактор. Просто выполните следующие шаги, чтобы настроить возвышенный текст для компиляции и запуска программ C и C++. Я проверил шаги в возвышенном тексте 3, но я уверен, что он будет работать и для любой другой версии.

Читайте также: Настройка Notepad++ для запуска программ C, C++ и Java

Здесь я считаю, что в вашей системе установлен компилятор GCC.

Часть 1. Добавление пути в переменные среды

1. Скопируйте путь к папке bin компилятора GCC. В моем случае путь выглядит так, как показано ниже, в вашем случае он может быть другим.

C:\Program Files (x86)\CodeBlocks\MinGW\bin

2. Теперь щелкните правой кнопкой мыши Компьютер и выберите Свойства . Затем нажмите на Предварительные настройки системы  и после этого нажмите Переменные среды .

3. В следующем окне в разделе Системные переменные найдите переменную с именем Путь . Выберите его и нажмите кнопку Edit .

4. В текстовом поле Variable value перейдите в конец, затем введите точку с запятой, а затем вставьте путь к папке bin, которую вы скопировали. См. скриншот ниже.

Как установить Notepad++ в Windows

Включите JavaScript

Как установить Notepad++ в Windows

5. Наконец, нажмите все кнопки OK , чтобы сохранить настройки.

Часть 2: Настройка Sublime Text

Откройте возвышенный текст и перейдите в Tools > Build System > New Build System , а затем вставьте в него следующие строки.

Для C:

{ «shell_cmd»: «gcc $file_name -o ${file_base_name}», «рабочий_каталог»: «$file_path», «варианты»: [ { «имя»: «Беги», «shell_cmd»: «gcc $file_name -o ${file_base_name} && ${file_path}/${file_base_name}» } ] }

1

2

3

4

5

6

7

8

9

10

11

12

{

«shell_cmd» : «gcc $file_name -o ${file_base_name}»,

«working_dir» : «$file_path»,

 

«варианты»:

[

{

«имя»: «Выполнить»,

2 «shell_cmd»: «gcc $file_name -o ${file_base_name} && ${file_path}/${file_base_name}» 9:]*):([0-9]+):?([0-9]+)?:? (.*)$», «working_dir»: «${file_path}», «селектор»: «исходник.c, исходник.c++», «варианты»: [ { «имя»: «Беги», «shell_cmd»: «g++ \»${file}\» -o \»${file_path}/${file_base_name}\» && \»${file_path}/${file_base_name}\»» } ] }

1

2

3

4

5

6

7

8

9

10

11

12

13

14 9:]*):([0-9]+):?([0-9]+)?:? (. *)$»,

«working_dir»: «${file_path}»,

«селектор»: «source.c, source.c++»,

 

«варианты»:

[

{

«name»: «Выполнить»,

«shell_cmd»: «g++ \»${file}\» -o \»${file_path}/${file_base_name}\» && \»${file_path}/$ {file_base_name}\»»

}

]

}

Нажмите ctrl+s и сохраните его с именем файла СРР_РУН.

Для запуска программы перейдите в Tools > Build With и затем выберите C_RUN — Run или CPP_RUN — Run в зависимости от используемого языка.

Видеоурок

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

Как запустить C/C++ в Sublime Text? | Хабиб Рахман | Компьютерная культура

Научитесь запускать C или CPP в Sublime Text, Lifesaver of Contest Programming

Christopher Gower Unsplash

C и C++ — самые мощные языки программирования в мире. Большинство сверхбыстрых и сложных библиотек и алгоритмов написаны на C или C++. Большинство мощных программ ядра также написаны на C. Так что пропустить его невозможно.

Большинство программистов предпочитают писать код на C или C++ на соревнованиях по программированию. Tourist считается лучшим в мире участником соревнований по программированию среди всех возрастов, которые пишут код на C++.

Во время соревнований по программированию программисты предпочитают использовать облегченный редактор, чтобы сосредоточиться на кодировании и разработке алгоритмов. Vim, Sublime Text и Notepad++ являются наиболее распространенными редакторами. Помимо конкуренции, многие разработчики программного обеспечения и профессионалы любят использовать Sublime Text из-за его гибкости.

Геннадий Короткевич (он же Турист) — белорусский спортивный программист — фото из Википедии

В этом посте я рассказал о шагах, которые необходимо выполнить перед запуском кода C/C++ в Sublime Text. Мы возьмем входные данные из входного файла и выведем выходные данные в выходной файл без использования freopen связанных с файлами функций в C/C++.

  • Для Windows его можно скачать по ссылке .
  • Для Ubuntu или Debian , мы можем установить его следующим образом:

— Установить ключ GPG:

 wget -qO — https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add - 

— Теперь мы выбираем стабильный канал для использования:

 echo "deb https://download.sublimetext.com/apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list 

— Обновите и установите Sublime Text:

 sudo apt-get update 
sudo apt-get install sublime-text
  • Для macOS , мы можем скачать его по этой ссылке .

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

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

© 2019 Штирлиц Сеть печатных салонов в Перми

Цифровая печать, цветное и черно-белое копирование документов, сканирование документов, ризография в Перми.