<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>@mopnexandreyno</title><author><name>@mopnexandreyno</name></author><id>https://teletype.in/atom/mopnexandreyno</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/mopnexandreyno?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@mopnexandreyno?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=mopnexandreyno"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/mopnexandreyno?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-04-27T17:27:33.117Z</updated><entry><id>mopnexandreyno:utqCXmFNjAb</id><link rel="alternate" type="text/html" href="https://teletype.in/@mopnexandreyno/utqCXmFNjAb?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=mopnexandreyno"></link><title>Настраиваем VS Code для работы с языком C</title><published>2025-06-07T05:27:02.201Z</published><updated>2025-06-07T05:27:02.201Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/f5/a9/f5a98da0-1de0-4dd0-b2a4-bfd09748c877.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/ce/a1/cea1856a-b98d-454f-8ccd-307e66faf430.png&quot;&gt;Писать в консоль было прикольно в первый день, но по мере того, как проектов становится всё больше, как и необходимых команд - становится проще использовать IDE. В этой статье мы разберёмся, что нужно настроить для комфортной работы с C-проектом.</summary><content type="html">
  &lt;p id=&quot;Gp11&quot;&gt;Писать в консоль было прикольно в первый день, но по мере того, как проектов становится всё больше, как и необходимых команд - становится проще использовать IDE. В этой статье мы разберёмся, что нужно настроить для комфортной работы с C-проектом.&lt;/p&gt;
  &lt;p id=&quot;terU&quot;&gt;1. Расширения.&lt;/p&gt;
  &lt;p id=&quot;qSLn&quot;&gt;Прямо при первом открытии .c- файла редактор предлагает установить пакет расширений для работы с C/C++. Кроме него, ещё полезны GitLens - улучшенные утилиты для работы с Git.&lt;br /&gt;&lt;/p&gt;
  &lt;figure id=&quot;Ixed&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/ce/a1/cea1856a-b98d-454f-8ccd-307e66faf430.png&quot; width=&quot;702&quot; /&gt;
    &lt;figcaption&gt;Подсветка синтаксиса, автодополнение, сборка проекта, граф коммитов и многое другое!&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;WvEc&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;3T0n&quot;&gt;2. Настройка форматтера и редактора.&lt;/p&gt;
  &lt;p id=&quot;pRSV&quot;&gt;Можно настроить это глобально в VS Code, а можно завести файл настроек, который будет затем копироваться из проекта в проект. Выглядит это примерно так:&lt;/p&gt;
  &lt;figure id=&quot;wG1K&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b8/3d/b83d3d87-dd55-40eb-8314-44fa6ecc6f62.png&quot; width=&quot;702&quot; /&gt;
    &lt;figcaption&gt;Файл settings.json содержит локальные настройки.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;E1xW&quot;&gt;Содержимое файла:&lt;/p&gt;
  &lt;p id=&quot;OMyj&quot;&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;RLWN&quot;&gt;&lt;code&gt;    &amp;quot;C_Cpp.clang_format_style&amp;quot;: &amp;quot;file:${workspaceFolder}/src/.clang-format&amp;quot;,&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;e3si&quot;&gt;&lt;code&gt;    &amp;quot;editor.tabSize&amp;quot;: 4,&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;lh91&quot;&gt;&lt;code&gt;    &amp;quot;editor.detectIndentation&amp;quot;: true,&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;E2Cw&quot;&gt;&lt;code&gt;    &amp;quot;editor.rulers&amp;quot;: [110],&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;GsOv&quot;&gt;&lt;code&gt;    &amp;quot;files.insertFinalNewline&amp;quot;: true,&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;PySj&quot;&gt;&lt;code&gt;    &amp;quot;files.trimTrailingWhitespace&amp;quot;: true,&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;METi&quot;&gt;&lt;code&gt;    &amp;quot;files.associations&amp;quot;: {&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;wJhN&quot;&gt;&lt;code&gt;        &amp;quot;random&amp;quot;: &amp;quot;c&amp;quot;,&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;XY3H&quot;&gt;&lt;code&gt;        &amp;quot;cstdlib&amp;quot;: &amp;quot;c&amp;quot;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;7Pqs&quot;&gt;&lt;code&gt;    }&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;KHbJ&quot;&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;MIVp&quot;&gt;Обратите внимание на первую строку - форматтер пытается получить правила конкретно для C-кода из файла .clang-format, лежащего в src проекта!&lt;/p&gt;
  &lt;p id=&quot;8h1X&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;lB9w&quot;&gt;3. Настройка компиляции.&lt;/p&gt;
  &lt;p id=&quot;A4mx&quot;&gt;Форматирование кода теперь автоматическое при сохранении файла - пришло время ускорить сборку! Для этого мы будем использовать файл tasks.json в .vscode:&lt;/p&gt;
  &lt;figure id=&quot;3qso&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/1e/e4/1ee467e9-1c5c-49e4-bfe6-3c2422bd9e6d.png&quot; width=&quot;708&quot; /&gt;
    &lt;figcaption&gt;.vscode - папка для мета-файлов, используемых редактором&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;YEmc&quot;&gt;И сам конфиг:&lt;/p&gt;
  &lt;p id=&quot;ZfD4&quot;&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;aVPp&quot;&gt;&lt;code&gt;    &amp;quot;tasks&amp;quot;: [&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Rghb&quot;&gt;&lt;code&gt;        {&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;dcTw&quot;&gt;&lt;code&gt;            &amp;quot;type&amp;quot;: &amp;quot;shell&amp;quot;,&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;QJT1&quot;&gt;&lt;code&gt;            &amp;quot;label&amp;quot;: &amp;quot;C/C++: gcc build&amp;quot;,&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;JzmN&quot;&gt;&lt;code&gt;            &amp;quot;command&amp;quot;: &amp;quot;gcc&amp;quot;,&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;HPOs&quot;&gt;&lt;code&gt;            &amp;quot;args&amp;quot;: [&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;XzlS&quot;&gt;&lt;code&gt;                &amp;quot;-Wall&amp;quot;,&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;nOEn&quot;&gt;&lt;code&gt;                &amp;quot;-Werror&amp;quot;,&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;qqdR&quot;&gt;&lt;code&gt;                &amp;quot;-Wextra&amp;quot;,&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;2dwM&quot;&gt;&lt;code&gt;                &amp;quot;${file}&amp;quot;,&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;McEZ&quot;&gt;&lt;code&gt;                &amp;quot;-o&amp;quot;,&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;O6eZ&quot;&gt;&lt;code&gt;                &amp;quot;${fileDirname}/../build/${fileBasenameNoExtension}&amp;quot;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;EO8M&quot;&gt;&lt;code&gt;            ],&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;xspQ&quot;&gt;&lt;code&gt;            &amp;quot;options&amp;quot;: {&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;j61h&quot;&gt;&lt;code&gt;                &amp;quot;cwd&amp;quot;: &amp;quot;${fileDirname}&amp;quot;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;A3AG&quot;&gt;&lt;code&gt;             },&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Hh7U&quot;&gt;&lt;code&gt;            &amp;quot;problemMatcher&amp;quot;: [&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;MT6j&quot;&gt;&lt;code&gt;                &amp;quot;$gcc&amp;quot;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;xsMU&quot;&gt;&lt;code&gt;            ],&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;6s02&quot;&gt;&lt;code&gt;            &amp;quot;group&amp;quot;: &amp;quot;build&amp;quot;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;6m9u&quot;&gt;&lt;code&gt;        }&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;gsw5&quot;&gt;&lt;code&gt;    ],&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;pYfH&quot;&gt;&lt;code&gt;    &amp;quot;version&amp;quot;: &amp;quot;2.0.0&amp;quot;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;zzEY&quot;&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;CiD9&quot;&gt;Обратите внимание: здесь готовые файлы выводятся в папку ./build, которую нужно предварительно создать. Это нужно, чтобы они не засоряли папку с исходниками... и ещё для кое-какой фичи.&lt;/p&gt;
  &lt;p id=&quot;QDBy&quot;&gt;Чтобы скомпилировать код, теперь достаточно всего лишь нажать Ctrl+Shift+B (Command+Shift+B на MacOS) и запустить задачу &amp;quot;C/C++: gcc build&amp;quot;. Она автоматически выполнится со всеми необходимыми параметрами, добавленными заранее!&lt;/p&gt;
  &lt;p id=&quot;PLYa&quot;&gt;Можно настроить ещё и дебаг-проверку, но об этом я сделаю отдельный пост позже, тема это большая.&lt;/p&gt;
  &lt;p id=&quot;3hLL&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;2wdm&quot;&gt;4. .gitignore&lt;/p&gt;
  &lt;p id=&quot;XUeD&quot;&gt;Последнее, что ещё можно сделать - это настроить git таким образом, чтобы он не отслеживал некоторые файлы - настройки VS Code, скомпилированные программы и т.д. Это делается через файл .gitignore в корне проекта:&lt;/p&gt;
  &lt;figure id=&quot;NFP4&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/df/76/df76a37e-b9c9-4be5-96a1-d62ae93afa6d.png&quot; width=&quot;706&quot; /&gt;
    &lt;figcaption&gt;Единственная проблема - сам .gitignore проигнорировать нельзя.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;vbV1&quot;&gt;В этом файле могут уже присутствовать какие-нибудь строки, а могут и не присутствовать (или даже может не быть самого файла). В любом случае, мы должны записать в него несколько строк...&lt;/p&gt;
  &lt;p id=&quot;jnBN&quot;&gt;&lt;code&gt;# Editor and build files&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;7zWv&quot;&gt;&lt;code&gt;.vscode/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;jXdF&quot;&gt;&lt;code&gt;src/.clang-format&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;xTkv&quot;&gt;&lt;code&gt;build/&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;aZBw&quot;&gt;...которые добавят все наши исполняемые файлы, настройки и .clang-format в исключения для git&amp;#x27;а. Теперь можно смело делать commit -a!&lt;/p&gt;
  &lt;p id=&quot;Av9V&quot;&gt;Впрочем, в VS Code можно и работать с гитом через графический интерфейс, что намного более удобно:&lt;/p&gt;
  &lt;figure id=&quot;aebr&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e3/d6/e3d6c517-88cc-4c4f-b304-5514d786ce7e.png&quot; width=&quot;692&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;JnrA&quot;&gt;Надеюсь, эта мини-статейка поможет вам начать работать с кодом с намного большим удобством :)&lt;/p&gt;

</content></entry></feed>