За 16 уроков мы рассмотрим всё, что нужно для старта работы с Vim:
- историю текстовых редакторов;
- работу в режиме вставки, в командном режиме, режиме командной строки, визуальном режиме;
- использование регулярных выражений и создание макросов;
- плагины, пакетные менеджеры плагинов;
- конфигурацию Vim, работу с файлом .vimrc (в частности, на примере файла .vimrc автора курса);
- работу с Neovim;
- настройку автодополнения.
Сегодня будет три видеоурока. Подробно разберём плагины, .vimrc и NERDTree.
Мы публикуем видеоуроки и текстовые расшифровки — вы можете смотреть или читать теорию.
Автор курса
Паша Калашников
Тимлид в Purple Magic, продюсер видео в Red Magic, соведущий IT Way Podcast, автор курсов по этому вашему программированию. Любит Ruby.
Поговорим об инфраструктуре Vim: разберём, что такое плагины, пакетные менеджеры, как их настраивать, как использовать готовые сборки для разных языков программирования, и, наконец, познакомимся с Neovim.
Плагины — это те самые инструменты, которые позволяют Vim не отставать от современных IDE, хоть и в своём стиле. Сразу посоветуем отличный сервис для их поиска — vimawesome.com. Плагины там разделены по языкам программирования, стекам технологий, фичам и так далее.
После урока вы можете перейти на сайт и попробовать плагины для своего окружения. Мы же начнём с самых общих принципов работы с ними, подробно остановившись на парочке основных.
Пакетные менеджеры помогают устанавливать, обновлять и удалять программы. Если вы опытный пользователь Unix-подобных систем, вы точно с ними знакомы. В случае с Vim пакетными менеджерами называют плагины, которые позволяют легко устанавливать и удалять другие плагины.
Большинство пакетных менеджеров просто скачивают плагины с GitHub и выполняют установочные скрипты, которые в них заложены. Управление версиями в данном случае — не самая сильная их сторона, потому что конфликты версий в инфраструктуре Vim-плагинов очень редки.
Самый популярный пакетный менеджер для Vim — Vundle. Рассмотрим его более современный аналог под названием vim-plug. У него есть несколько преимуществ. Во-первых, он лучше совмещается с Neovim. Во-вторых, он более отзывчив к пользователю, то есть лучше описывает ошибки, которые могут возникнуть в процессе установки. Приведём один пример его использования.
Сначала установим vim-plug. В его Readme на GitHub есть подробная инструкция по установке в разных операционных системах:
Скриншот: Skillbox MediaУстановка не всегда проходит без проблем; если что-то пошло не так, перейдите в Issues репозитория и поищите описание ситуации, похожей на вашу:
Скриншот: Skillbox MediaСкорее всего, нечто подобное уже с кем-то случалось — и благополучно разрешилось.
А мы тем временем открываем файл .vimrc:
Скриншот: Skillbox MediaВ Linux-системах он по умолчанию находится в домашней директории. Загуглите, где он в вашей ОС. Это несложно.
В файле вводим строку call plug#begin ():
Скриншот: Skillbox MediaДанная команда означает начало блока, который исполнится плагином vim-plug. Мы хотим установить плагин vim-sensible. Вводим название в поиске на сервисе vimawesome.com. Переходим по ссылке на GitHub. Берём из ссылки имя пользователя GitHub и название репозитория:
Скриншот: Skillbox MediaВызываем в .vimrc метод Plug и набираем в кавычках через слеш имя пользователя и название репозитория:
Скриншот: Skillbox MediaВводим команду : PlugInstall. Видим статус установки:
Скриншот: Skillbox MediaПлагин установлен!
По такому же принципу устанавливают практически все плагины в Vim. Конечно, есть и те, что не поддерживают установку через vim-plug, Vundle или иные пакетные менеджеры. Но с годами их становится всё меньше: люди реже пользуются плагинами, которые нельзя установить легко.
Пройдёмся по самым часто используемым плагинам, которые может использовать каждый специалист вне зависимости от стека технологий.
vim-sensible. Плагин vim-sensible применяет общепринятые настройки Vim. Также он хорош, если вам нужно копаться на сервере в Vim, но вы там не один. Позже, если настройки этого плагина вас перестанут устраивать, можно его удалить.
vim-surround. Помогает легко работать с парными символами (скобки или кавычки). Например, с его помощью вы можете заменить любые парные символы на другие. Допустим, в этом коде нам нужно использовать интерполяцию в строке. В Ruby принято строки без интерполяции обрамлять в одинарные кавычки, а с интерполяцией — в двойные. Vim-surround позволяет, находясь внутри блока, нажать cs ‘ ‘’. Сначала идёт символ одинарных кавычек — их нужно заменить, потом символ двойных — на них нужно заменить:
Скриншот: Skillbox MediaЗамена кавычек произошла, теперь можем легко использовать интерполяцию:
Скриншот: Skillbox MediaNERDTree — плагин для работы с деревом файлов. Мы подробно рассмотрим его в следующих уроках.
vim-commentary — плагин для комментирования кода в разных языках программирования.
FZF — плагин для нечёткого поиска по проекту. Ищет не только по коду и файлам, но и по коммитам, по буферам и так далее.
vim-airline — строка статуса внизу экрана. Другие плагины любят использовать эту строку для отображения информации. Да и в целом ориентироваться по файлу с помощью этой строки становится легче.
Остальные плагины и готовые сборки для языков программирования мы обсудим на следующих уроках.
.vimrc — по умолчанию основной файл, в котором хранятся все настройки вашего редактора. Как правило, в нём пишут команды Vim, которые можно вызывать в режиме командной строки. То есть, по сути, настройка Vim через .vimrc — это выполнение всех команд, которые написаны в .vimrc. Исключение составляют команды, которые относятся к конкретным плагинам, — например, vim-plug (см. предыдущий урок).
Попробуем с вами основные настройки, которые можно делать в .vimrc.
Команда : set hlsearch изменяет настройки подсветки поиска в редакторе: после её ввода любой поиск будет подсвечиваться до момента закрытия редактора. Добавим эту команду в .vimrc — и теперь эта настройка будет включаться в редакторе по умолчанию:
Скриншот: Skillbox MediaПроверяем! Закрываем редактор. Открываем заново и выполняем поиск. Работает!
Скриншот: Skillbox MediaВ предыдущих уроках мы уже сетовали, что переход между окнами в Vim довольно сложный: комбинация Ctrl + w и направление. Переназначим этот переход на просто Ctrl и направление. Назначим другой набор клавиш для перехода между окнами. Как нам это сделать?
В режиме командной строки есset есть команда для перехода между окнами : wincmd. В качестве аргумента она принимает направление перехода. Воспользуемся этой командой для настройки в нашем .vimrc:
Скриншот: Skillbox MediaДля назначения клавиш в Vim существует команда map, которая принимает два аргумента: коллекция клавиш, которые надо нажать, и действие, которое нужно выполнить:
Скриншот: Skillbox MediaВы можете назначить комбинацию клавиш отдельно для каждого режима:
-
nmap (normal mode) назначается только для командного режима;
-
imap (insert mode) — для режима ввода;
-
vmap (visual mode) — для визуального режима;
-
smap (select mode) — для режима выделения;
-
cmap (command-line mode) — для режима командной строки.
Мы хотим назначить переход между окнами только в командном режиме, поэтому вводим nmap <C-k>: wincmd k<CR>, где nmap — назначение для командного режима, а <C-k> —комбинация клавиш Ctrl + k.
Скриншот: Skillbox MediaДалее идёт команда, которая вызывается комбинацией клавиш : wincmd k<CR>. <CR> — это по умолчанию обозначение клавиши Enter. Она тут нужна, потому что после ввода команды нужно нажать Enter. Пробуем. Перезапускаем редактор. Открываем два окна. Нажимаем Ctrl + k. Работает!
Скриншот: Skillbox MediaНо мы видим, что команда : wincmd k отобразилась внизу. Это не обязательно — ведь нам не хочется, чтобы постоянно висело напоминание о переходе между окнами. Возвращаемся в .vimrc и добавляем аргумент <silent>:
Скриншот: Skillbox MediaЭтот аргумент убирает вывод команды, которая исполняется в редакторе. Пробуем:
Скриншот: Skillbox MediaПереход работает, команда не отображается. Остаётся только повторить эту настройку для переходов в другие стороны.
Теперь назначим комбинацию клавиш, которая будет отвечать за сохранение. Вводим: map <F2> <Esc>: w<CR>.
Скриншот: Skillbox MediaНажатие Esc по умолчанию будет вызывать переход в командный режим, после чего нужно будет ввести : w и нажать Enter. Делаем аналогичные назначения на закрытие без сохранения:
Скриншот: Skillbox MediaИ на сохранение с закрытием:
Скриншот: Skillbox MediaОтображение номеров строк в Vim можно написать как set nu и как set number:
Скриншот: Skillbox MediaСледующая настройка, set nocompatible, отключает совместимость Vim с Vi:
Скриншот: Skillbox MediaЭтого требуют многие современные плагины, потому что такая совместимость приводит к непредсказуемым последствиям в их работе. Дело в том, что поддержкой совместимости именно с Vi практически никто не занимается. Советуем добавить эту настройку, если не вы не ярый фанат Vi.
Следующие настройки, filetype on и syntax on, регулируют подсветку кода в Vim:
Скриншот: Skillbox MediaБез первой из них большинство плагинов отлично справляются сами, включая специальные функции для расширений файлов. Некоторые даже требуют её отключить — например, в наших настройках Vim написано filetype off. Советуем оставить filetype on до тех пор, пока не потребуется обратное.
Вы также можете настроить подсветку строки и колонки, в которой находится курсор, с помощью set cursorline и set cursorcolumn:
Скриншот: Skillbox MediaВыглядит это так:
Скриншот: Skillbox MediaВ нашем случае эти настройки не добавлены, потому что лишние линии отвлекают. Правда, для set cursorcolumn можно добавить назначение на клавишу F8, чтобы иногда проверять выравнивание форматировании кода. Это полезно, например, когда требуется найти потерявшуюся закрывающую скобку. Как именно включать и отключать настройки по клавише, мы обсудим на следующих уроках.
Команда set nowrap не будет переносить длинные строки:
Скриншот: Skillbox MediaКоманда set history=1000 сохраняет историю стольких команд командной строки, сколько вы укажете:
Скриншот: Skillbox MediaПо умолчанию их 20.
Следующая наша задача — установка цветовой схемы. Предлагаем скачать одну из самых популярных цветовых схем для Vim — Molokai:
Скриншот: Skillbox MediaЦветовые схемы Vim хранятся в директории ~/.vim/colors:
Скриншот: Skillbox MediaСкачаем и положим в эту папку файл цветовой схемы. В Linux это делается с помощью команды curl -o molokai.vim https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim:
Скриншот: Skillbox MediaПереходим в наш файл .vimrc и задаём нашу цветовую схему. Закрываем и открываем Vim. Цветовая схема применилась. Красота!
Скриншот: Skillbox MediaВы можете не только скачивать готовые цветовые схемы, но и изменять их, а также создавать свои. Откроем файл, который мы скачали:
Скриншот: Skillbox MediaПервые строки кода — в основном про совместимость схемы с редактором. А вот со строки 47 начинается сама цветовая схема. Как видим, здесь есть знакомые каждому программисту обозначения: Boolean, Character, Constant и так далее:
Скриншот: Skillbox MediaПоменяем, например, цвет Boolean-значений на белый. Так как у нас 256-цветный терминал, поменяем цвет именно в модуле, который отвечает за его поддержку:
Скриншот: Skillbox MediaЗакрываем Vim, открываем заново Ruby-файл. Вводим Boolean-значения true и false. Они стали белыми:
Скриншот: Skillbox MediaАналогично можно поменять всю цветовую схему на ваше усмотрение. С этим можно играться несколько часов!
Теперь настроим статус-бар. Можно сразу накатить кучу фич с помощью плагина vim-airline, но для того, чтобы понимать, как его настраивать, попробуем сперва настроить бар самостоятельно. Вводим : help statusline:
Скриншот: Skillbox MediaРазберём лишь несколько очевидных фич, которые уже реализованы в vim-airline.
Открываем .vimrc-файл. Вначале нужно очистить статуслайн. Для этого пишем строку кода set statusline=:
Скриншот: Skillbox MediaТеперь на следующей строке пишем set statusline += set statusline+=\ %F\ %R:
Скриншот: Skillbox MediaПараметр F здесь означает вывод полного адреса файла, а параметр R показывает RO, если файл имеет статус read-only. Далее добавим текущую ветку Git. Сперва нам нужно получить название текущей ветки. Создадим переменную внутри .vimrc: let gitBranch=system («git rev-parse --abbrev-ref HEAD»):
Скриншот: Skillbox MediaС помощью такой команды можно получить текущую ветку в Git-репозитории. Как таковой интерполяции в .vimrc нет, поэтому будем использовать лайфхак. Он помогает выполнить действия при отсутствии важных функций типа интерполяции.
Вводим следующую строку execute «set statusline +=». gitBranch:
Скриншот: Skillbox MediaПроверяем! Значение из переменной gitBranch добавлены в статус-бар:
Скриншот: Skillbox MediaТеперь давайте в правую часть статус-бара добавим следующие данные: set statusline+=\ Row:\ %l\ Col:\ %c\ Percent:\ %p%%:
Скриншот: Skillbox MediaЗдесь %l — номер строки, %c — номер столбца, а %p выводит местонахождение курсора в процентном соотношении к размеру файла.
Впрочем, лучше действительно поставить vim-airline и использовать его. Давайте так и сделаем. Добавляем Plug 'vim-airline/vim-airline и вводим команду : PlugInstall:
Скриншот: Skillbox MediaВсё, готово! Красивый статус-бар!
Скриншот: Skillbox MediaЭто все настройки, которые мы хотели вам показать в этом уроке. Но их существует ещё множество. Можно сохранять их, переносить на разные компьютеры, устанавливать заново после обновления системы. Просто сложите нужные файлы в нужные места и перезагрузите редактор! Не во всех современные IDE есть такая возможность.
Также советуем создать собственный репозиторий для настройки рабочего окружения. Такие репозитории (их ещё называют dotfiles) обычно имеют одну команду для установки всего, что нужно, на свежую ОС. Например, у автора этого курса есть собственный репозиторий dotfiles, в котором сохранены все нужные настройки Vim. Хранятся они в файле .vimrc.
Советуем сразу добавлять в глобальный файл .gitignore файлы с расширением .swp и .swn. Это типы файлов, которые Vim создаёт, когда вы редактируете другие файлы. Чтобы случайно не закоммитить их в репозиторий, лучше сразу сделать глобальную настройку на всю систему.
Добавлять эти файлы в настройки конкретного репозитория — очень плохой тон: не факт, что в вашем проекте все будут использовать Vim. Такие настройки должны быть настроены у каждого лично.
NERDTree — самый популярный плагин для просмотра дерева файлов в проекте и управления им. Разберём, как им пользоваться.
Устанавливаем плагин с помощью vim-plug (это займёт секунд пять):
Скриншот: Skillbox MediaПерезагружаем редактор:
Скриншот: Skillbox MediaЧтобы открыть окно с деревом файлов, вводим команду : NERDTree:
Скриншот: Skillbox MediaВы можете забиндить её на любую комбинацию клавиш. Более того, существует команда : NERDTreeToggle, которая откроет NERDTree, если он закрыт, и закроет, если открыт. У нас эта команда находится на комбинации Ctrl + f:
Скриншот: Skillbox MediaПо умолчанию NERDTree считает корневой директорией ту, откуда запустили vim. Папки и файлы открываются нажатием на клавишу о. По умолчанию файлы откроются в окне справа, а папки развернутся. Если хотите открыть файл в новом окне, нажмите i:
Скриншот: Skillbox MediaТе же правила работают при нажатии клавиши s, только разделение окон будет вертикальным. Комбинация Shift + i показывает скрытые файлы:
Скриншот: Skillbox MediaПовторное нажатие снова их скроет. Добавление файла или папки делается следующим образом: перейдите в директорию, в которой хотите их создать, нажмите ma. Вводите название файла. Если в конце названия поставить слеш, будет создана папка:
Скриншот: Skillbox MediaЕсли вы хотите создать файл в папке, которой не существует, вводите полный адрес файла, и папки будут созданы автоматически.
Чтобы изменить название или адрес файла, вводим mm и новое название:
Скриншот: Skillbox MediaДля копирования вводим mc и новое название:
Скриншот: Skillbox MediaДля удаления файла вводим md и подтверждаем нажатием на Enter или y:
Скриншот: Skillbox MediaВажное отличие NERDTree от большинства деревьев файлов, к которым мы привыкли, — оно не обновляется автоматически. Если у вас появился или удалился файл или обновилось его имя, нужно нажать Shift + r, чтобы файлы обновились:
Скриншот: Skillbox MediaВот и все основные фичи этого плагина. В следующем уроке мы поговорим о плагинах для языков программирования.
<!DOCTYPE html>
<html class="l-html" lang="ru">
<head>
<script>
mindbox = window.mindbox || function() { mindbox.queue.push(arguments); };
mindbox.queue = mindbox.queue || [];
mindbox('create', {
endpointId: 'skillbox.skillboxMediaWebsite'
});
</script>
<script src="https://api.s.mindbox.ru/scripts/v1/tracker.js" async></script>
<script>window.yaContextCb = window.yaContextCb || []</script>
<script src="https://yandex.ru/ads/system/context.js" async></script>
<!-- Google Tag Manager -->
<script async data-skip-moving="true" type="text/javascript">
/** Google Tagmanager */
;(function (w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
'gtm.start':
new Date().getTime(), event: 'gtm.js'
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-NLCGQ25');
window.dataLayer = window.dataLayer || [];
function gtag() {
window.dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'GTM-NLCGQ25');
</script>
<!-- End Google Tag Manager -->
<!-- Retail Rocket -->
<script type="text/javascript">
var rrPartnerId = "6048a0d097a52514f050731f";
var rrApi = {};
var rrApiOnReady = rrApiOnReady || [];
rrApi.addToBasket = rrApi.order = rrApi.categoryView = rrApi.view =
rrApi.recomMouseDown = rrApi.recomAddToCart = function() {};
(function(d) {
var ref = d.getElementsByTagName('script')[0];
var apiJs, apiJsId = 'rrApi-jssdk';
if (d.getElementById(apiJsId)) return;
apiJs = d.createElement('script');
apiJs.id = apiJsId;
apiJs.async = true;
apiJs.src = "//cdn.retailrocket.ru/content/javascript/tracking.js";
ref.parentNode.insertBefore(apiJs, ref);
}(document));
</script>
<!-- End Retail Rocket -->
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta http-equiv="X-UA-Compatible" content="ie=edge"/>
<meta name="google-site-verification" content="UA-kf725UpqwkHenFmDQ05SW115fL9UdD9uXiFy-ibQ"/>
<meta name="robots" content="index, follow"/>
<link rel="dns-prefetch" href="//fonts.googleapis.com">
<link rel="shortcut icon" href="/favicon.ico">
<link rel="canonical" href="https://skillbox.ru/media/code/kurs-po-vim-chast-4-plaginy-fayl-vimrc-i-nerdtree/">
<link rel="preload" href="https://marketplace.canva.com/EAD2962NKnQ/2/0/1600w/canva-rainbow-gradient-pink-and-purple-zoom-virtual-background-_Tcjok-d9b4.jpg" as="image" />
<link rel="preload" href="https://via.placeholder.com/1170x250/92c952" as="image" />
<link rel="preload" href="https://via.placeholder.com/768x250/40E0D0" as="image" />
<link rel="preload" href="https://via.placeholder.com/375x250/ffbcee" as="image" />
<title>Vim: плагины, .vimrc, NERDTree — четвёртая часть бесплатного онлайн-курса / Skillbox Media</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="description" content="Рассказываем, как работать в Vim с плагинами и файлом .vimrc. Подробно о том, как установить и использовать плагин NERDTree. Четвёртая часть бесплатного онлайн-курса." />
<link href="/bitrix/cache/css/s1/media/kernel_main/kernel_main_v1.css?177096852510536" type="text/css" rel="stylesheet" />
<link href="/bitrix/js/ui/fonts/opensans/ui.font.opensans.css?16341171742599" type="text/css" rel="stylesheet" />
<link href="/bitrix/js/main/popup/dist/main.popup.bundle.css?163411696226345" type="text/css" rel="stylesheet" />
<link href="//cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.1/css/swiper.min.css" type="text/css" rel="stylesheet" />
<link href="/bitrix/cache/css/s1/media/page_a1ad23d5ae1fea4c6ac7c690c80a4763/page_a1ad23d5ae1fea4c6ac7c690c80a4763_v1.css?1771490810746236" type="text/css" rel="stylesheet" />
<link href="/bitrix/cache/css/s1/media/template_176a7c2453ad8025fa7d27f65ba6a4b1/template_176a7c2453ad8025fa7d27f65ba6a4b1_v1.css?1771490810442835" type="text/css" data-template-style="true" rel="stylesheet" />
<script type="text/javascript">if(!window.BX)window.BX={};if(!window.BX.message)window.BX.message=function(mess){if(typeof mess==='object'){for(let i in mess) {BX.message[i]=mess[i];} return true;}};</script>
<script type="text/javascript">(window.BX||top.BX).message({'JS_CORE_LOADING':'Загрузка...','JS_CORE_NO_DATA':'- Нет данных -','JS_CORE_WINDOW_CLOSE':'Закрыть','JS_CORE_WINDOW_EXPAND':'Развернуть','JS_CORE_WINDOW_NARROW':'Свернуть в окно','JS_CORE_WINDOW_SAVE':'Сохранить','JS_CORE_WINDOW_CANCEL':'Отменить','JS_CORE_WINDOW_CONTINUE':'Продолжить','JS_CORE_H':'ч','JS_CORE_M':'м','JS_CORE_S':'с','JSADM_AI_HIDE_EXTRA':'Скрыть лишние','JSADM_AI_ALL_NOTIF':'Показать все','JSADM_AUTH_REQ':'Требуется авторизация!','JS_CORE_WINDOW_AUTH':'Войти','JS_CORE_IMAGE_FULL':'Полный размер'});</script>
<script type="text/javascript" src="/bitrix/js/main/core/core.js?1634117028565340"></script>
<script>BX.setJSList(['/bitrix/js/main/core/core_ajax.js','/bitrix/js/main/core/core_promise.js','/bitrix/js/main/polyfill/promise/js/promise.js','/bitrix/js/main/loadext/loadext.js','/bitrix/js/main/loadext/extension.js','/bitrix/js/main/polyfill/promise/js/promise.js','/bitrix/js/main/polyfill/find/js/find.js','/bitrix/js/main/polyfill/includes/js/includes.js','/bitrix/js/main/polyfill/matches/js/matches.js','/bitrix/js/ui/polyfill/closest/js/closest.js','/bitrix/js/main/polyfill/fill/main.polyfill.fill.js','/bitrix/js/main/polyfill/find/js/find.js','/bitrix/js/main/polyfill/matches/js/matches.js','/bitrix/js/main/polyfill/core/dist/polyfill.bundle.js','/bitrix/js/main/core/core.js','/bitrix/js/main/polyfill/intersectionobserver/js/intersectionobserver.js','/bitrix/js/main/lazyload/dist/lazyload.bundle.js','/bitrix/js/main/polyfill/core/dist/polyfill.bundle.js','/bitrix/js/main/parambag/dist/parambag.bundle.js']);
BX.setCSSList(['/bitrix/js/main/lazyload/dist/lazyload.bundle.css','/bitrix/js/main/parambag/dist/parambag.bundle.css']);</script>
<script type="text/javascript">(window.BX||top.BX).message({'AMPM_MODE':false});(window.BX||top.BX).message({'MONTH_1':'Январь','MONTH_2':'Февраль','MONTH_3':'Март','MONTH_4':'Апрель','MONTH_5':'Май','MONTH_6':'Июнь','MONTH_7':'Июль','MONTH_8':'Август','MONTH_9':'Сентябрь','MONTH_10':'Октябрь','MONTH_11':'Ноябрь','MONTH_12':'Декабрь','MONTH_1_S':'января','MONTH_2_S':'февраля','MONTH_3_S':'марта','MONTH_4_S':'апреля','MONTH_5_S':'мая','MONTH_6_S':'июня','MONTH_7_S':'июля','MONTH_8_S':'августа','MONTH_9_S':'сентября','MONTH_10_S':'октября','MONTH_11_S':'ноября','MONTH_12_S':'декабря','MON_1':'янв','MON_2':'фев','MON_3':'мар','MON_4':'апр','MON_5':'май','MON_6':'июн','MON_7':'июл','MON_8':'авг','MON_9':'сен','MON_10':'окт','MON_11':'ноя','MON_12':'дек','DAY_OF_WEEK_0':'Воскресенье','DAY_OF_WEEK_1':'Понедельник','DAY_OF_WEEK_2':'Вторник','DAY_OF_WEEK_3':'Среда','DAY_OF_WEEK_4':'Четверг','DAY_OF_WEEK_5':'Пятница','DAY_OF_WEEK_6':'Суббота','DOW_0':'Вс','DOW_1':'Пн','DOW_2':'Вт','DOW_3':'Ср','DOW_4':'Чт','DOW_5':'Пт','DOW_6':'Сб','FD_SECOND_AGO_0':'#VALUE# секунд назад','FD_SECOND_AGO_1':'#VALUE# секунду назад','FD_SECOND_AGO_10_20':'#VALUE# секунд назад','FD_SECOND_AGO_MOD_1':'#VALUE# секунду назад','FD_SECOND_AGO_MOD_2_4':'#VALUE# секунды назад','FD_SECOND_AGO_MOD_OTHER':'#VALUE# секунд назад','FD_SECOND_DIFF_0':'#VALUE# секунд','FD_SECOND_DIFF_1':'#VALUE# секунда','FD_SECOND_DIFF_10_20':'#VALUE# секунд','FD_SECOND_DIFF_MOD_1':'#VALUE# секунда','FD_SECOND_DIFF_MOD_2_4':'#VALUE# секунды','FD_SECOND_DIFF_MOD_OTHER':'#VALUE# секунд','FD_SECOND_SHORT':'#VALUE#с','FD_MINUTE_AGO_0':'#VALUE# минут назад','FD_MINUTE_AGO_1':'#VALUE# минуту назад','FD_MINUTE_AGO_10_20':'#VALUE# минут назад','FD_MINUTE_AGO_MOD_1':'#VALUE# минуту назад','FD_MINUTE_AGO_MOD_2_4':'#VALUE# минуты назад','FD_MINUTE_AGO_MOD_OTHER':'#VALUE# минут назад','FD_MINUTE_DIFF_0':'#VALUE# минут','FD_MINUTE_DIFF_1':'#VALUE# минута','FD_MINUTE_DIFF_10_20':'#VALUE# минут','FD_MINUTE_DIFF_MOD_1':'#VALUE# минута','FD_MINUTE_DIFF_MOD_2_4':'#VALUE# минуты','FD_MINUTE_DIFF_MOD_OTHER':'#VALUE# минут','FD_MINUTE_0':'#VALUE# минут','FD_MINUTE_1':'#VALUE# минуту','FD_MINUTE_10_20':'#VALUE# минут','FD_MINUTE_MOD_1':'#VALUE# минуту','FD_MINUTE_MOD_2_4':'#VALUE# минуты','FD_MINUTE_MOD_OTHER':'#VALUE# минут','FD_MINUTE_SHORT':'#VALUE#мин','FD_HOUR_AGO_0':'#VALUE# часов назад','FD_HOUR_AGO_1':'#VALUE# час назад','FD_HOUR_AGO_10_20':'#VALUE# часов назад','FD_HOUR_AGO_MOD_1':'#VALUE# час назад','FD_HOUR_AGO_MOD_2_4':'#VALUE# часа назад','FD_HOUR_AGO_MOD_OTHER':'#VALUE# часов назад','FD_HOUR_DIFF_0':'#VALUE# часов','FD_HOUR_DIFF_1':'#VALUE# час','FD_HOUR_DIFF_10_20':'#VALUE# часов','FD_HOUR_DIFF_MOD_1':'#VALUE# час','FD_HOUR_DIFF_MOD_2_4':'#VALUE# часа','FD_HOUR_DIFF_MOD_OTHER':'#VALUE# часов','FD_HOUR_SHORT':'#VALUE#ч','FD_YESTERDAY':'вчера','FD_TODAY':'сегодня','FD_TOMORROW':'завтра','FD_DAY_AGO_0':'#VALUE# дней назад','FD_DAY_AGO_1':'#VALUE# день назад','FD_DAY_AGO_10_20':'#VALUE# дней назад','FD_DAY_AGO_MOD_1':'#VALUE# день назад','FD_DAY_AGO_MOD_2_4':'#VALUE# дня назад','FD_DAY_AGO_MOD_OTHER':'#VALUE# дней назад','FD_DAY_DIFF_0':'#VALUE# дней','FD_DAY_DIFF_1':'#VALUE# день','FD_DAY_DIFF_10_20':'#VALUE# дней','FD_DAY_DIFF_MOD_1':'#VALUE# день','FD_DAY_DIFF_MOD_2_4':'#VALUE# дня','FD_DAY_DIFF_MOD_OTHER':'#VALUE# дней','FD_DAY_AT_TIME':'#DAY# в #TIME#','FD_DAY_SHORT':'#VALUE#д','FD_MONTH_AGO_0':'#VALUE# месяцев назад','FD_MONTH_AGO_1':'#VALUE# месяц назад','FD_MONTH_AGO_10_20':'#VALUE# месяцев назад','FD_MONTH_AGO_MOD_1':'#VALUE# месяц назад','FD_MONTH_AGO_MOD_2_4':'#VALUE# месяца назад','FD_MONTH_AGO_MOD_OTHER':'#VALUE# месяцев назад','FD_MONTH_DIFF_0':'#VALUE# месяцев','FD_MONTH_DIFF_1':'#VALUE# месяц','FD_MONTH_DIFF_10_20':'#VALUE# месяцев','FD_MONTH_DIFF_MOD_1':'#VALUE# месяц','FD_MONTH_DIFF_MOD_2_4':'#VALUE# месяца','FD_MONTH_DIFF_MOD_OTHER':'#VALUE# месяцев','FD_MONTH_SHORT':'#VALUE#мес','FD_YEARS_AGO_0':'#VALUE# лет назад','FD_YEARS_AGO_1':'#VALUE# год назад','FD_YEARS_AGO_10_20':'#VALUE# лет назад','FD_YEARS_AGO_MOD_1':'#VALUE# год назад','FD_YEARS_AGO_MOD_2_4':'#VALUE# года назад','FD_YEARS_AGO_MOD_OTHER':'#VALUE# лет назад','FD_YEARS_DIFF_0':'#VALUE# лет','FD_YEARS_DIFF_1':'#VALUE# год','FD_YEARS_DIFF_10_20':'#VALUE# лет','FD_YEARS_DIFF_MOD_1':'#VALUE# год','FD_YEARS_DIFF_MOD_2_4':'#VALUE# года','FD_YEARS_DIFF_MOD_OTHER':'#VALUE# лет','FD_YEARS_SHORT_0':'#VALUE#л','FD_YEARS_SHORT_1':'#VALUE#г','FD_YEARS_SHORT_10_20':'#VALUE#л','FD_YEARS_SHORT_MOD_1':'#VALUE#г','FD_YEARS_SHORT_MOD_2_4':'#VALUE#г','FD_YEARS_SHORT_MOD_OTHER':'#VALUE#л','CAL_BUTTON':'Выбрать','CAL_TIME_SET':'Установить время','CAL_TIME':'Время','FD_LAST_SEEN_TOMORROW':'завтра в #TIME#','FD_LAST_SEEN_NOW':'только что','FD_LAST_SEEN_TODAY':'сегодня в #TIME#','FD_LAST_SEEN_YESTERDAY':'вчера в #TIME#','FD_LAST_SEEN_MORE_YEAR':'более года назад'});</script>
<script type="text/javascript">(window.BX||top.BX).message({'WEEK_START':'1'});</script>
<script type="text/javascript">(window.BX||top.BX).message({'LANGUAGE_ID':'ru','FORMAT_DATE':'DD.MM.YYYY','FORMAT_DATETIME':'DD.MM.YYYY HH:MI:SS','COOKIE_PREFIX':'BITRIX_SM','SERVER_TZ_OFFSET':'10800','UTF_MODE':'Y','SITE_ID':'s1','SITE_DIR':'/','USER_ID':'','SERVER_TIME':'1771635699','USER_TZ_OFFSET':'0','USER_TZ_AUTO':'Y','bitrix_sessid':'04002f458fa481044190da60ea6d3263'});</script>
<script type="text/javascript" src="/bitrix/js/main/date/main.date.js?159955296434530"></script>
<script type="text/javascript" src="/bitrix/js/main/popup/dist/main.popup.bundle.js?1634116962109107"></script>
<script type="text/javascript" src="/bitrix/js/main/core/core_date.js?163411653136080"></script>
<script type="text/javascript" src="/bitrix/js/ui/vue/vue2/prod/dist/vue.bundle.js?1635848017173206"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.1/js/swiper.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/fingerprintjs2/2.1.0/fingerprint2.min.js"></script>
<script type="text/javascript">BX.setCSSList(['/bitrix/js/main/core/css/core_date.css','/setka/css/setka_skillbox.css','/local/templates/.default/components/bitrix/news.detail/article/style.css','/static/css/newarticle.css','/local/templates/media/libs/jquery.formstyler.css','/local/templates/media/fonts/graphik-font/stylesheet.css','/static/css/main.css','/local/templates/media/template_styles.css']);</script>
<script src="https://cdn.skillbox.pro/frontend-libs/promo-banner/5.10.1/banner-plugin.min.js"></script>
<script type="text/javascript" async src="https://relap.io/api/v6/head.js?token=sI73Ph6a5BnkqK2o"></script>
<meta property="og:title" content="Курс по Vim. Часть 4. Плагины, файл .vimrc и NERDTree" />
<meta property="og:description" content="Мы запустили бесплатный курс по легендарному редактору кода Vim. В нём 16 уроков. Сегодня — плагины, .vimrc и NERDTree." />
<meta property="og:url" content="https://skillbox.ru/media/code/kurs-po-vim-chast-4-plaginy-fayl-vimrc-i-nerdtree/" />
<meta property="og:type" content="article" />
<meta property="og:site_name" content="skillbox.ru" />
<meta property="og:locale" content="ru_RU" />
<meta property="og:image" content="https://248006.selcdn.ru/main/iblock/3b8/3b861d21ab95442043a339f3e5da4e54/2755a0f4a2c89c13504f10111de96e36.jpg" />
<meta name="relap-image" content="https://248006.selcdn.ru/main/iblock/3b8/3b861d21ab95442043a339f3e5da4e54/2755a0f4a2c89c13504f10111de96e36.jpg" />
<meta property="og:image:width" content="600" />
<meta property="og:image:height" content="315" />
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:image" content="https://248006.selcdn.ru/main/iblock/3b8/3b861d21ab95442043a339f3e5da4e54/2755a0f4a2c89c13504f10111de96e36.jpg" />
<meta property="vk:image" content="https://248006.selcdn.ru/main/iblock/5c6/5c64550eda950f96eb23e89491897596/29b08180fa090589469d90c2d6ca5598.jpg" />
<meta property="article:author" content="Константин Зотов" />
<meta property="article:tag" content="статьи" />
<meta property="article:section" content="Код" />
<script type="text/javascript" src="/static/js/vendor.js?1771489421543641"></script>
<script type="text/javascript" src="/local/assets/js/common.js?177148933727419"></script>
<script type="text/javascript" src="/static/js/main.js?1771489421125222"></script>
<script type="text/javascript" src="/local/templates/media/js/main.js?17714893372418"></script>
<script type="text/javascript" src="/local/components/prmedia/popup.subscribe/templates/.default/script.js?17714893376820"></script>
<script type="text/javascript" src="/local/templates/.default/components/bitrix/news.detail/article/infinity.js?177148933713735"></script>
<script type="text/javascript" src="/local/templates/.default/components/bitrix/news/articles/script.js?1771489337246"></script>
<script type="text/javascript" src="/setka/js/setka_skillbox.js?1771489337106775"></script>
<script type="text/javascript" src="/local/templates/.default/components/bitrix/news.detail/article/script.js?17714893377503"></script>
<script type="text/javascript">var _ba = _ba || []; _ba.push(["aid", "84a6082a990bbac8858fb733b97bed30"]); _ba.push(["host", "skillbox.ru"]); (function() {var ba = document.createElement("script"); ba.type = "text/javascript"; ba.async = true;ba.src = (document.location.protocol == "https:" ? "https://" : "http://") + "bitrix.info/ba.js";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(ba, s);})();</script>
</head>
<body>
<div class="js-sticky-delimiter"></div>
<div class="bx-panel"></div>
<!-- Google Tag Manager (noscript) -->
<noscript>
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NLCGQ25" height="0" width="0"
style="display:none;visibility:hidden"></iframe>
</noscript>
<!-- End Google Tag Manager (noscript) -->
<svg class="app-svg-visually-hidden" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="def-arrow-down-a" d="M223 20813l4 5 4-5z"/>
<path id="def-arrow-a" d="M1044.6 803.2a.81.81 0 01-.5.18.8.8 0 01-.8-.8v-3.24c-2.97.1-5.17.88-6.52 2.3a4.86 4.86 0 00-1.39 3.29.8.8 0 01-.75.83h-.04a.79.79 0 01-.79-.74c-.22-3.78.69-6.76 2.69-8.84a10.76 10.76 0 016.81-3.07v-3.3a.8.8 0 011.29-.63l7.91 6.39a.8.8 0 010 1.25zm.3-11.73v2.42a.5.5 0 01-.03.1.8.8 0 01-.05.21.78.78 0 01-.47.42.67.67 0 01-.25.05h-.01c-.06 0-3.93-.04-6.46 2.62-.8.85-1.4 1.87-1.74 2.99 1.79-1.7 4.55-2.57 8.21-2.57.44 0 .8.36.8.8v2.4l5.85-4.72z"/>
<path id="def-be-a" d="M55.6 29.58h6.12v-1.59H55.6zm.64 5.74s.26-2.23 2.58-2.23c2.32 0 2.26 2.23 2.26 2.23zm-3.23 1.27S52.56 42 58.72 42c0 0 5.26.37 5.26-3.81H61.4s-.09 1.59-2.58 1.59c0 0-2.58.17-2.58-2.55l7.74-.01c-.08-.32.9-6.42-5.16-6.36-5.77.05-5.81 5.73-5.81 5.73zm-10.34 2.8v-4.24H47s1.7.16 1.7 2.24c0 1.76-1.06 1.99-1.7 2zM47 29.61s1.16.06 1.16 1.62-.76 1.64-1.49 1.64h-4v-3.26zm4.33 1.3c0-2.68-1.81-3.91-4.26-3.91H39v15.01h8.07s4.92.15 4.92-4.43c0 0 .22-3.73-2.9-3.73 0 0 2.24-.25 2.24-2.94z"/>
<path id="def-briefcase-a" d="M855 13538c0-1.7 1.3-3 3-3s3 1.3 3 3v7c0 1.7-1.3 3-3 3s-3-1.3-3-3v-7z"/>
<path id="def-comments-a" d="M752 8958l-4 4v-12a1 1 0 011-1h11a1 1 0 011 1v7a1 1 0 01-1 1zm12-6v13l-3.2-4H751l2-2h9v-8h1c1 0 1 .45 1 1z"/>
<path id="def-eaye-a" d="M630 8956.22c0 1.04-3.58 5.21-8 5.21s-8-4.26-8-5.21c0-1.05 3.58-5.22 8-5.22s8 4.17 8 5.22zm-5 0h-3v-3.13a3.13 3.13 0 100 6.26 3.07 3.07 0 003-3.13z"/>
<path id="def-file-a" d="M493 9457a2 2 0 01-1.98-2v-16a2 2 0 011.98-2h19.82c1.13 0 2.07.87 2.15 2v16a2.15 2.15 0 01-2.15 2zm0-18v8.83l5.3-4.59a.98.98 0 011.35.05l5.34 5.39 3.27-2.48a.98.98 0 011.36.16l3.35 4.07V9439zm19.97 14.55l-4.27-5.18-3.21 2.43c-.4.3-.95.26-1.3-.09l-5.3-5.35-5.9 5.1v4.54h19.98zm-6.1-10.55a1.98 1.98 0 113.97.04 1.98 1.98 0 01-3.97-.04z"/>
<path id="def-gplus-a" d="M466 10169a4 4 0 013.87-3.99 4.14 4.14 0 012.93.99c-.33.36-.67.71-1.03 1.04-.72-.42-1.58-.75-2.41-.46a2.52 2.52 0 00-1.67 3.23c.41 1.35 2.09 2.1 3.4 1.52a2.22 2.22 0 001.33-1.51c-.78-.01-1.56 0-2.34-.03v-1.36h3.9a4.45 4.45 0 01-.83 3.2c-1 1.28-2.88 1.66-4.4 1.16a4 4 0 01-2.75-3.79z"/><path id="def-gplus-b" d="M476.34 10166h1.32l.01 1.33H479v1.33l-1.33.01v1.33h-1.33l-.01-1.33H475v-1.33l1.33-.01.01-1.33z"/>
<path id="def-inst-a" d="M1480.93 332c-3.5 0-3.95.02-5.32.07-1.37.07-2.3.28-3.14.6-.84.34-1.57.77-2.28 1.5a6.36 6.36 0 00-1.5 2.28 9.84 9.84 0 00-.6 3.14c-.07 1.37-.07 1.82-.07 5.32s.02 3.96.07 5.32c.07 1.37.28 2.31.6 3.14.34.85.77 1.58 1.5 2.29a6.51 6.51 0 002.28 1.5c.82.3 1.77.53 3.14.6 1.37.07 1.82.07 5.32.07s3.96-.02 5.32-.07a9.48 9.48 0 003.14-.6 6.14 6.14 0 002.29-1.5 6.36 6.36 0 001.5-2.29c.3-.81.53-1.77.6-3.14.07-1.36.07-1.82.07-5.32s-.02-3.95-.07-5.32a9.48 9.48 0 00-.6-3.14 6.14 6.14 0 00-1.5-2.28 6.36 6.36 0 00-2.29-1.5 9.84 9.84 0 00-3.14-.6c-1.38-.05-1.82-.07-5.32-.07zm0 2.32c3.45 0 3.85.02 5.22.07 1.27.05 1.94.26 2.4.45.6.25 1.03.52 1.48.97.45.45.73.89.97 1.5.18.44.39 1.14.45 2.39.07 1.37.07 1.76.07 5.21s-.01 3.85-.07 5.22a6.55 6.55 0 01-.45 2.4c-.24.6-.52 1.03-.97 1.48-.45.45-.88.73-1.49.97-.45.18-1.14.39-2.39.45-1.37.07-1.77.07-5.22.07-3.45 0-3.84-.01-5.21-.07a6.55 6.55 0 01-2.4-.45 4.11 4.11 0 01-1.49-.97 4.11 4.11 0 01-.97-1.49 7.52 7.52 0 01-.45-2.39c-.07-1.37-.07-1.77-.07-5.22 0-3.45.02-3.84.07-5.21.05-1.27.26-1.95.45-2.4.25-.6.52-1.04.97-1.49.45-.45.89-.72 1.5-.97a7.52 7.52 0 012.39-.45c1.35-.05 1.76-.07 5.21-.07z"/><path id="def-inst-b" d="M1480.93 349.2a4.3 4.3 0 110-8.59 4.3 4.3 0 010 8.6zm0-10.93a6.62 6.62 0 100 13.24 6.62 6.62 0 000-13.24z"/><path id="def-inst-c" d="M1486.27 338.01a1.54 1.54 0 113.09 0 1.54 1.54 0 01-3.09 0z"/>
<path id="def-like-down-a" d="M1004.33 543.66c-1.1 0-2.45-.86-2.61-3.31-.05-1.41.11-2.82.48-4.19h-2.96c-2.15 0-3.42-1.35-3.42-2.67 0-.39.05-.77.17-1.13a2.4 2.4 0 01-.99-2.03 2.35 2.35 0 011.02-2.05c-.12-.34-.18-.7-.17-1.06.86-.6 1.2-1.7.86-2.7 0-2.52 3.45-2.52 4.57-2.52h2.85c1.3.06 2.56.4 3.71 1 .67.36 1.41.6 2.18.67h3.23c.25 0 .5.11.65.31.12.14 1.1 1.47 1.1 4.69.03 1.8-.28 3.6-.9 5.31a.83.83 0 01-.67.5c-.03 0-3.27.4-4.85 1.98a10.32 10.32 0 00-2.8 5.94 1.4 1.4 0 01-1.45 1.26zm-6.84-10.17c0 .34.52 1 1.75 1h4.06a.83.83 0 01.8 1.1c-.5 1.5-.73 3.07-.72 4.65.08 1.1.44 1.6.79 1.72a11.94 11.94 0 013.23-6.67c1.57-1.58 4.2-2.18 5.32-2.38.41-1.37.62-2.8.61-4.24a8.18 8.18 0 00-.56-3.34h-2.75c-1-.07-1.97-.35-2.85-.81a7.53 7.53 0 00-3.04-.85h-2.85c-1.32 0-2.9.15-2.9.85-.02.11.02.22.09.3a.73.73 0 01.75.77.92.92 0 01-.85.87.85.85 0 00-.85.77c-.05.22.01.44.17.6.42.07.71.45.67.88a.87.87 0 01-.86.77.77.77 0 00-.83.85.8.8 0 00.87.85c.46.01.82.4.81.85 0 .43-.33.78-.76.8-.09.21-.12.44-.1.66z"/>
<path id="def-like-up-a" d="M944.67 520c1.1 0 2.45.87 2.61 3.32.05 1.4-.11 2.82-.48 4.18h2.96c2.15 0 3.42 1.36 3.42 2.67 0 .39-.05.77-.17 1.14a2.4 2.4 0 01.99 2.02c.04.81-.35 1.59-1.02 2.05.12.34.18.7.17 1.07-.86.6-1.2 1.7-.86 2.69 0 2.52-3.45 2.52-4.57 2.52h-2.85a8.94 8.94 0 01-3.71-.99 5.67 5.67 0 00-2.18-.67h-3.23a.83.83 0 01-.65-.32c-.12-.14-1.1-1.47-1.1-4.68-.03-1.81.28-3.62.9-5.32a.83.83 0 01.67-.5c.03 0 3.27-.4 4.85-1.98a10.32 10.32 0 002.8-5.93 1.4 1.4 0 011.45-1.27zm6.84 10.17c0-.34-.52-1-1.75-1h-4.06a.83.83 0 01-.8-1.1c.5-1.5.73-3.07.72-4.65-.08-1.1-.44-1.6-.79-1.72a11.94 11.94 0 01-3.23 6.67c-1.57 1.58-4.2 2.19-5.32 2.38a14.38 14.38 0 00-.61 4.25 8.18 8.18 0 00.56 3.33h2.75c1 .07 1.97.35 2.85.82.94.49 1.98.78 3.04.85h2.85c1.32 0 2.9-.15 2.9-.86a.35.35 0 00-.09-.3.73.73 0 01-.75-.77.92.92 0 01.85-.87c.44 0 .81-.33.85-.77a.65.65 0 00-.17-.6.81.81 0 01-.67-.87.87.87 0 01.86-.78.77.77 0 00.83-.85.8.8 0 00-.87-.85.83.83 0 01-.81-.85c0-.43.33-.78.76-.8.09-.21.12-.43.1-.66z"/>
<path id="def-like-a" d="M701.32 8960.32a.95.95 0 01-.95.95h-5.72c-.96 0-1.92-.95-2.87-.95h-.95v-6.68c.04-.6.4-1.12.95-1.36a4.78 4.78 0 002.87-4.37v-.96a.95.95 0 01.95-.95h.95c.53 0 .95.43.95.95v5.73h3.82a.9.9 0 01.96.96zm-14.31.95v-9.54h1.9a.96.96 0 01.97.95v7.64a.96.96 0 01-.96.95zm.99-8.3a.48.48 0 10.88.38.48.48 0 00-.88-.38z"/>
<path id="def-link-a" d="M626.02 1163.93l-.02 15.99 13.02.01v-4a.86.86 0 01.24-.68.9.9 0 01.66-.28 1 1 0 011 1v4.95a1 1 0 01-.29.7 1 1 0 01-.71.29H625a1 1 0 01-.71-.29 1 1 0 01-.29-.7V1163a1 1 0 011-1h3.95a1 1 0 011 1 .89.89 0 01-.93.93z"/><path id="def-link-b" d="M641.95 1171a1 1 0 01-1-1v-5.59l-9.25 9.3a.99.99 0 01-1.41-.01.99.99 0 01.01-1.41l9.24-9.29h-5.56a1 1 0 01-1-1 1 1 0 011-1h7.97a1 1 0 011 1v8a1 1 0 01-1 1z"/>
<path id="def-mail-a" d="M1058 261c0-.6-.4-1-1-1h-14c-.6 0-1 .4-1 1l8 6.5z"/><path id="def-mail-b" d="M1042 262.5v8.5c0 .6.4 1 1 1h14c.6 0 1-.4 1-1v-8.5l-8 6.5z"/>
<path id="def-outside-a" d="M1204.24 9231.16h-10.05c-.92 0-1.67-.75-1.67-1.68v-4.2c0-.46.38-.84.84-.84a.81.81 0 01.8.84v4.2h10.08v-16.8h-10.08v4.2a.81.81 0 01-.8.84.84.84 0 01-.84-.84v-4.2c0-.93.75-1.68 1.67-1.68h10.05c.92 0 1.67.75 1.67 1.68v16.8c0 .93-.75 1.68-1.67 1.68zm-15.56-10.92h11.37a.84.84 0 110 1.68h-11.36l1.91 1.92a.84.84 0 11-1.18 1.2l-3.35-3.36a.86.86 0 01-.24-.6v-.02a.83.83 0 01.24-.58l3.35-3.36a.83.83 0 011.18 0c.33.33.33.87 0 1.2z"/>
<path id="def-pencil-a" d="M1190.84 9818.68a.64.64 0 01-.19.13l-.07.06-4.42 1.82c-.1.05-.21.07-.32.07a.83.83 0 01-.77-1.15l1.84-4.4v-.02a.38.38 0 01.09-.13l.08-.13v-.01l10.82-10.82-.44-.44-3.56 3.57a.83.83 0 01-1.18-1.18l4.16-4.15a.81.81 0 011.17 0l1.03 1.03 1.86-1.86a.84.84 0 011.17 0l2.58 2.58c.33.32.33.85 0 1.18zm-2.88-1.7l-.58 1.41 1.41-.58zm.88-1.47l1.41 1.4 10.24-10.23-1.4-1.4zm12.69-12.68l-1.27 1.27 1.4 1.4 1.28-1.27z"/>
<path id="def-phone-a" d="M732.62 41c-2.25 0-6.37-2.73-10.24-6.78a33.08 33.08 0 01-5.22-6.96c-1.33-2.53-1.52-4.32-.56-5.31l2.91-2.72c.17-.16.4-.24.63-.23.24.02.46.13.61.32l3.79 4.58c.23.28.28.68.12 1.01l-1.47 3.08 5.24 5.48 2.93-1.54a.83.83 0 01.96.12l4.38 3.96c.17.16.28.38.3.63a.97.97 0 01-.22.67l-2.53 3.02c-.33.34-.81.67-1.63.67zm-14.76-17.78c-.15.21-.25 1.09.83 3.15 1.06 2 2.8 4.32 4.93 6.55 3.87 4.06 7.53 6.25 9 6.25.2 0 .3-.04.33-.08l1.94-2.3-3.27-2.95-2.98 1.56a.84.84 0 01-1.01-.17l-6.12-6.42a.92.92 0 01-.16-1.05l1.48-3.12-2.82-3.42z"/>
<path id="def-plus-a" d="M1223.33 4172.67h-6.66v6.66a.67.67 0 01-1.34 0v-6.66h-6.66a.67.67 0 010-1.34h6.66v-6.66a.67.67 0 011.34 0v6.66h6.66a.67.67 0 010 1.34z"/>
<path id="def-search-a" d="M1092.53 24.87a6.7 6.7 0 10-.05 13.4 6.7 6.7 0 00.05-13.4zm12.1 18.85a.95.95 0 01-1.35 0l-5.4-5.43a8.62 8.62 0 111.35-1.35l5.4 5.43c.37.37.37.98 0 1.35z"/>
<path id="def-shape-a" d="M879 13323h-4a1 1 0 01-1-1v-4a1 1 0 011-1h.85c-1.29-8.14-8.38-15.22-16.85-16.81v.81a1 1 0 01-1 1h-4a1 1 0 01-1-1v-.81c-8.47 1.6-15.56 8.67-16.85 16.81h.85a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4a1 1 0 011-1h1.13c1.03-7.24 6.24-13.76 13.07-17h-6.48a1.98 1.98 0 01-1.72 1.01c-.97 0-1.8-.69-1.98-1.65a2 2 0 011.28-2.23 2 2 0 012.42.87H853v-1a1 1 0 011-1h4a1 1 0 011 1v1h12.27a2.01 2.01 0 110 2h-6.47c6.83 3.24 12.04 9.76 13.07 17H879a1 1 0 011 1v4a1 1 0 01-1 1zm-43-4h-2v2h2zm21-21h-2v2h2zm21 21h-2v2h2zm-22.93-12.51a.52.52 0 01.1-.18l.01-.03.03-.03a1 1 0 01.2-.21l.06-.04c.06-.04.12-.08.19-.1l.04-.02.09-.01.05-.01.16-.03.15.03h.04l.11.01.04.02.19.1.02.02.02.01a.92.92 0 01.24.25l.02.03c.04.05.08.12.1.18l.03.05c.02.07 2.33 7.26 8.51 10.59.26.14.45.39.51.68a.97.97 0 01-.2.82 23.7 23.7 0 00-3.99 8.81 8.02 8.02 0 012.21 5.57 1 1 0 01-1 1h-14a1 1 0 01-1-1 8.02 8.02 0 012.21-5.57 23.66 23.66 0 00-3.99-8.8 1 1 0 01.31-1.51c6.21-3.34 8.49-10.52 8.51-10.59l.03-.04zm.93 20.49a6 6 0 00-5.92 5.02h11.84a6 6 0 00-5.92-5.02zm-4.06-.9a8.17 8.17 0 018.12 0 25.8 25.8 0 013.47-7.78 20.33 20.33 0 01-6.53-6.96v6.93a2 2 0 01-.97 3.73 2.03 2.03 0 01-2.03-2 2 2 0 011-1.7v-6.96a20.33 20.33 0 01-6.53 6.96 25.8 25.8 0 013.47 7.78z"/>
<path id="def-strawberry-a" d="M873.26 13427.96a7.49 7.49 0 01-4.13-1.21 20.45 20.45 0 012.02 8.92c0 10.41-17.26 18.25-28.46 18.25-3.71 0-6.53-.86-8.17-2.48l-.1-.1c-3.9-4.01-2.65-13.97.62-21.78 3.77-9.01 9.53-14.39 15.41-14.39 3.1 0 6.17.68 8.97 1.99a8.12 8.12 0 01-.65-1.24c-1.09-2.7-.53-5.87 1.68-9.44a1 1 0 011.11-.45c.21.06 5.12 1.38 6.8 5.49.8 2.19.7 4.61-.29 6.72 1.25-.51 2.58-.79 3.92-.83 5.12 0 7.74 4.75 8.4 7.26a.97.97 0 01-.45 1.1 12.95 12.95 0 01-6.68 2.19zm-36.36 2.36c-3.42 8.19-3.85 16.84-.97 19.69l.08.09c1.26 1.18 3.62 1.82 6.68 1.82a38.27 38.27 0 0017.26-4.82c3.43-1.92 9.18-5.96 9.18-11.43a18.4 18.4 0 00-18.68-18.5c-5.93 0-10.89 6.79-13.55 13.15zm29.59-18.05c-.97-2.38-3.49-3.6-4.73-4.07-1.52 2.71-1.89 5.05-1.12 6.96.96 2.37 3.48 3.6 4.73 4.08 1.52-2.71 1.89-5.05 1.12-6.97zm5.5 7.13c-1.75.08-3.45.6-4.95 1.51.59 1.54 2.36 5.06 6.22 5.06 1.75-.08 3.45-.6 4.94-1.5-.59-1.55-2.36-5.07-6.21-5.07zm-13.43 13.54h3v3h-3zm-4-5h3v3h-3zm2 13h-3v-3h3zm-7-8h3v3h-3zm0-9h3v3h-3zm2 22h-3v-3h3zm-7-8h3v3h-3zm0-9h3v3h-3zm-5 14h3v3h-3zm0-9h3v3h-3z"/>
<path id="def-telegram-a" d="M823.8 272.93l-4.09 20.05c-.3 1.42-1.16 1.76-2.36 1.1l-6.52-4.77-3.13 3c-.55.47-.75.66-1.27.65-.5 0-.74-.3-1.03-1.1l-2.4-7.29-6.26-1.94c-1.01-.32-1.06-1.66.31-2.05l25.01-9.39c1.14-.52 2.18 0 1.74 1.74zm-17.39 18.55l.6-5.26 11.83-10.54c.31-.36.09-.88-.61-.42l-14.24 8.87z"/>
<path id="def-tm-a" d="M1406.46 346.34l13.28-8.34c.65-.44.86.05.57.39l-11.02 9.91-.57 4.96zm16.84-12.16l-23.32 8.83c-1.27.37-1.24 1.62-.3 1.93l5.84 1.82 2.24 6.86c.28.75.5 1.04.96 1.04.49 0 .67-.18 1.19-.62.58-.55 1.5-1.43 2.92-2.83l6.08 4.49c1.12.62 1.92.3 2.21-1.04l3.8-18.85c.41-1.63-.55-2.12-1.62-1.63z"/>
<path id="def-trash-a" d="M1175 9805h-1.09l-1.8 13.12a2.15 2.15 0 01-2.11 1.88h-8a2.14 2.14 0 01-2.1-1.88l-1.78-13.12H1157a1 1 0 010-2h5v-1a3 3 0 013-3h2a3 3 0 013 3v1h5a1 1 0 010 2zm-7-3a1 1 0 00-1-1h-2a1 1 0 00-1 1v1h4zm-7.87 3l1.75 12.9c.02.05.07.09.12.1h8c.06-.01.1-.05.12-.11l1.78-12.89zm6.87 3h2v6h-2zm-4 0h2v6h-2z"/>
<path id="def-triangle-a" d="M1238 6883l7.22 7.22 7.22-7.22z"/>
<path id="def-user-circle-a" d="M1265.24 30.18a10 10 0 01-2.18 10.9 6.94 6.94 0 00-4.7-4.69 5 5 0 10-4.66.01c-2.24.72-4 2.47-4.72 4.71a10 10 0 1116.26-10.93zm-6.22 1.82a3 3 0 11-6-.01 3 3 0 016 .01zm-8.3 10.48c.4-2.6 2.65-4.5 5.28-4.48 2.73 0 5.1 1.96 5.27 4.37l.03.09a9.9 9.9 0 01-10.57.02zM1256 46a12.01 12.01 0 000-24 12 12 0 100 24z"/>
<path id="def-vb-a" d="M955.45 276.38c.68 3.25.79 6.51-.02 9.76-.14.57-.36 1.11-.58 1.65-.84 2.05-2.5 3.13-4.57 3.73-1.63.48-3.31.69-5 .82-.89.07-2.29.03-3.18.02-.76-.01-.55-.04-1.04.45-.96.97-1.84 1.82-2.76 2.84a28 28 0 01-1.35 1.35v-4.93c0-.25-.07-.4-.3-.5-.26-.1-.5-.24-.75-.34a6.95 6.95 0 01-4.35-4.98 19.93 19.93 0 01-.51-6.16c.07-1.4.26-2.79.64-4.15a6.8 6.8 0 013.48-4.25 13.83 13.83 0 014.79-1.47 25.9 25.9 0 019.8.59 8.9 8.9 0 013.5 1.69 6.59 6.59 0 012.2 3.88zm-12.05-1.52c.54.04 1.07.15 1.6.28 1.98.5 3.52 1.53 4.32 3.43.42.99.63 2.02.7 3.08.02.27.15.42.43.42.27-.01.38-.19.39-.43.02-.21.01-.42.01-.64a7.41 7.41 0 00-1.39-4.12c-1.49-1.96-3.43-2.7-6-2.82-.31-.02-.49.1-.51.42-.01.31.21.36.45.38zm4.39 4.61c.11.4.21.81.26 1.22.03.27-.03.64.42.65.32.01.4-.13.43-.67a4.58 4.58 0 00-.68-2.46c-.96-1.52-2.37-2.16-4.16-2.32-.28-.03-.48.08-.52.37-.05.3.14.44.41.48.55.08 1.08.22 1.6.4a3.32 3.32 0 012.24 2.33zm-2.22-1.46a2.29 2.29 0 00-.89-.22c-.38.03-.58.19-.58.45.01.33.3.33.52.39l.27.06c.72.19 1.13.65 1.27 1.36.03.13.04.27.08.4.06.18.18.31.4.31.21-.01.34-.13.39-.32l.04-.35a2.4 2.4 0 00-1.5-2.08zm4.89 7.94c-.78-.65-1.6-1.25-2.47-1.78-1.02-.62-1.77-.45-2.47.49l-.11.14c-.32.39-.72.54-1.22.4a5.89 5.89 0 01-1.51-.74 6.76 6.76 0 01-2.77-3.19c-.35-.82-.19-1.35.54-1.88l.28-.2c.55-.45.68-.89.37-1.52a9.94 9.94 0 00-2.3-3.05 1.3 1.3 0 00-.97-.36 2.9 2.9 0 00-2.62 2.74c-.01.37.08.78.24 1.17 2.23 5.38 6.16 9.1 11.6 11.36.4.17.82.27 1.25.15a3.75 3.75 0 002.55-2.16c.28-.61.14-1.13-.39-1.57z"/>
<path id="def-ynadex-a" d="M471.93 10326.44h-.59c-.92 0-1.8-.64-1.8-2.24 0-1.67.83-2.35 1.68-2.35h.7v4.59zm.92-5.44h-1.6c-1.55 0-2.87 1.13-2.87 3.33 0 1.32.64 2.3 1.78 2.78l-2.13 3.68c-.07.12 0 .21.1.21h1c.08 0 .14-.03.17-.1l1.93-3.6h.7v3.6c0 .05.04.1.1.1h.86c.08 0 .11-.04.11-.1v-9.77c0-.09-.06-.13-.15-.13z"/>
<path id="def-ytube-a" d="M1343.37 349.72v-9.44l6.27 4.72zm-7.81-14.03a3.54 3.54 0 00-3.56 3.51v11.6a3.54 3.54 0 003.56 3.51h19.88a3.54 3.54 0 003.56-3.5V339.2a3.54 3.54 0 00-3.56-3.51h-19.88z"/>
</defs>
<symbol id="icon-arrow-chevron" viewBox="0 0 9 15"><path d="M7.07.862L0 7.93 7.072 15l1.06-1.06-6.011-6.01L8.13 1.922 7.07.862z"/></symbol>
<symbol id="icon-arrow-down" viewBox="0 0 8 5"><use xlink:href="#def-arrow-down-a" transform="translate(-223 -20813)"/></symbol>
<symbol id="icon-arrow-left" viewBox="0 0 18 12"><path d="M.1 6.3c-.1-.3 0-.6.1-.8l4.3-4.3c.3-.3.7-.3 1 0 .3.3.3.7 0 1l-3 3.1h14.1c.4 0 .7.3.7.7 0 .4-.3.7-.7.7H2.5l3.1 3.1c.3.3.3.8 0 1-.2.2-.3.2-.4.3-.2.1-.5 0-.7-.2L.2 6.6c-.1-.1-.1-.2-.1-.3z"/></symbol>
<symbol id="icon-arrow-menu" viewBox="0 0 10 5"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 0l5 5 5-5H0z"/></symbol>
<symbol id="icon-arrow-right" viewBox="0 0 15 12"><path d="M14.19 5.77c.11.26.05.57-.15.78l-4.32 4.33a.72.72 0 01-1.02 0 .72.72 0 010-1.02l3.09-3.1H.69A.72.72 0 010 6.04c0-.38.31-.7.69-.72h11.1L8.7 2.23a.73.73 0 01.33-1.21c.24-.06.51.01.69.19l4.32 4.32a.6.6 0 01.15.24z"/></symbol>
<symbol id="icon-arrow" viewBox="0 0 20 17"><use xlink:href="#def-arrow-a" transform="translate(-1033 -789)"/></symbol>
<symbol id="icon-be" viewBox="0 0 25 16"><use xlink:href="#def-be-a" transform="translate(-39 -27)"/></symbol>
<symbol id="icon-be2-mob" viewBox="0 0 34 34"><path d="M15.426 16.508s1.507-.112 1.507-1.879S15.7 12 14.138 12H9v9.875h5.138s3.137.099 3.137-2.915c0 0 .137-2.452-1.85-2.452zm-4.162-2.753h2.874s.699 0 .699 1.027c0 1.028-.411 1.177-.877 1.177h-2.696v-2.204zm2.742 6.365h-2.742v-2.64h2.874s1.041-.013 1.041 1.357c0 1.142-.761 1.271-1.173 1.283zM23.408 12.582h-4.074v1.216h4.074v-1.216zM21.458 14.513c-3.797 0-3.794 3.793-3.794 3.793s-.26 3.775 3.794 3.775c0 0 3.38.193 3.38-2.626H23.1s.058 1.062-1.584 1.062c0 0-1.737.116-1.737-1.718h5.116s.56-4.286-3.437-4.286zm1.545 2.968h-3.244s.213-1.522 1.738-1.522 1.506 1.522 1.506 1.522z"/></symbol>
<symbol id="icon-be2" viewBox="0 0 56 56"><path d="M27.475 27.946s1.987-.148 1.987-2.479c0-2.33-1.625-3.467-3.685-3.467H19v13.024h6.777s4.137.13 4.137-3.844c0 0 .18-3.234-2.439-3.234zm-5.489-3.631h3.791s.921 0 .921 1.355-.542 1.551-1.156 1.551h-3.556v-2.906zm3.616 8.394h-3.616v-3.48h3.79s1.374-.018 1.374 1.788c0 1.506-1.004 1.677-1.548 1.692zM38.004 22.767H32.63v1.604h5.373v-1.604zM35.432 25.314c-5.009 0-5.004 5.003-5.004 5.003s-.344 4.98 5.004 4.98c0 0 4.456.254 4.456-3.464h-2.292s.077 1.4-2.088 1.4c0 0-2.291.154-2.291-2.266h6.748s.738-5.653-4.533-5.653zm2.037 3.915H33.19s.28-2.008 2.291-2.008c2.013 0 1.987 2.008 1.987 2.008z"/></symbol>
<symbol id="icon-briefcase" viewBox="834 13519 48 44"><path d="M836.5 13563c-1.4 0-2.5-1.2-2.5-2.6v-19.4c0 .6.4 1 1 1h1v18.4c0 .3.2.6.5.6h42.9c.3 0 .5-.3.5-.6v-18.4h1c.6 0 1-.4 1-1s-.4-1-1-1h-1v-10.4c0-.3-.2-.5-.5-.6h-42.9c-.3 0-.5.3-.5.6v10.4h-1c-.6 0-1 .4-1 1v-11.4c0-1.4 1.1-2.5 2.5-2.6H849v1c0 .6.4 1 1 1s1-.4 1-1v-1h14v1c0 .6.4 1 1 1 .3 0 .5-.1.7-.3.2-.2.3-.4.3-.7v-1h12.5c1.4 0 2.5 1.2 2.5 2.6v30.9c0 1.4-1.1 2.6-2.5 2.6h-43zm18.4-21H836v-2h18.9c.6 0 1 .4 1 1s-.4 1-1 1zm25.1-2v2h-18.9c-.6 0-1-.4-1-1s.4-1 1-1H880zm-13-16.8c0-2.3-1.9-4.2-4.2-4.2h-9.6c-2.3 0-4.2 1.9-4.2 4.2v3.8h2v-3.8c0-1.2 1-2.2 2.2-2.2h9.6c1.2 0 2.2 1 2.2 2.2v3.8h2v-3.8z"/><clipPath id="def-briefcase-b"><use xlink:href="#def-briefcase-a" overflow="visible"/></clipPath><g clip-path="url(#def-briefcase-b)"><path stroke-width="4" stroke-miterlimit="50" d="M855 13538c0-1.7 1.3-3 3-3s3 1.3 3 3v7c0 1.7-1.3 3-3 3s-3-1.3-3-3v-7z"/></g></symbol>
<symbol id="icon-burger" viewBox="0 0 20 14"><g fill-rule="evenodd"><path d="M0 0h20v2H0zM0 6h20v2H0zM0 12h20v2H0z"/></g></symbol>
<symbol id="icon-cancel-circle" viewBox="0 0 24 24"><path d="M12 24a12 12 0 110-24 12 12 0 010 24zm0-22a10 10 0 100 20 10 10 0 000-20zm4.71 13.29L13.41 12l3.3-3.29a1 1 0 00-.02-1.4 1 1 0 00-1.4-.02L12 10.59l-3.29-3.3a1 1 0 00-1.4.02 1 1 0 00-.02 1.4l3.3 3.29-3.3 3.29a1 1 0 00.02 1.4 1 1 0 001.4.02l3.29-3.3 3.29 3.3a1 1 0 001.42 0 1 1 0 000-1.42z"/></symbol>
<symbol id="icon-clip" viewBox="0 0 25 22"><path d="M12.1 21.37a1.02 1.02 0 01-.71-1.73L21.74 9.11a4.19 4.19 0 000-5.87 4.04 4.04 0 00-5.78 0l-12 12.21c-.59.49-.94 1.2-.97 1.97.05.49.28.95.63 1.29.31.35.77.53 1.23.48.74-.17 1.4-.57 1.89-1.15l9.42-9.58a.98.98 0 011.41 0c.39.4.39 1.04 0 1.44l-9.42 9.58A5.3 5.3 0 015.1 21.2a3.37 3.37 0 01-2.89-1.05A4.16 4.16 0 011 17.54a4.62 4.62 0 011.55-3.53l12-12.2a6.03 6.03 0 018.6 0 6.24 6.24 0 010 8.74L12.8 21.07a.98.98 0 01-.7.3z"/></symbol>
<symbol id="icon-clock" viewBox="0 0 24 24"><path d="M0 12a12 12 0 1124 0 12 12 0 01-24 0zm2 0a10 10 0 1020 0 10 10 0 00-20 0zm14 5a1 1 0 00.71-1.71L13 11.59V5a1 1 0 00-1-1 1 1 0 00-1 1v7a1 1 0 00.08.38c.05.12.12.24.21.33l4 4c.19.18.45.29.71.29z"/></symbol>
<symbol id="icon-close-menu" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.636 2.303L13.97.636 8.136 6.469 2.303.636.636 2.303 6.47 8.136.636 13.97l1.667 1.667 5.833-5.833 5.833 5.833 1.667-1.666-5.833-5.834 5.833-5.833z"/></symbol>
<symbol id="icon-close" viewBox="0 0 16 15"><g fill-rule="evenodd"><path d="M1.963.045l13.791 12.86-1.364 1.463L.6 1.508z"/><path d="M14.39.045L.6 12.905l1.364 1.463 13.79-12.86z"/></g></symbol>
<symbol id="icon-comments" viewBox="0 0 16 16"><use xlink:href="#def-comments-a" transform="translate(-748 -8949)"/></symbol>
<symbol id="icon-eaye" viewBox="0 0 16 11"><use xlink:href="#def-eaye-a" transform="translate(-614 -8951)"/></symbol>
<symbol id="icon-fb" viewBox="0 0 13 25"><path d="M8.44 25V13.6h3.83l.58-4.45H8.44V6.31c0-1.28.36-2.16 2.2-2.16H13V.18A29.7 29.7 0 009.57 0c-3.4 0-5.73 2.07-5.73 5.87v3.28H0v4.45h3.84V25z"/></symbol>
<symbol id="icon-fb2-mob" viewBox="0 0 34 34"><path fill-rule="evenodd" clip-rule="evenodd" d="M18.415 24.638v-7.131h2.457l.366-2.784h-2.823v-1.776c0-.8.23-1.351 1.411-1.351h1.514v-2.49A21.931 21.931 0 0019.14 9c-2.182 0-3.677 1.295-3.677 3.672v2.051H13v2.784h2.463v7.13h2.952z"/></symbol>
<symbol id="icon-fb2" viewBox="0 0 56 56"><path fill-rule="evenodd" clip-rule="evenodd" d="M30.142 38.625V29.22h3.24l.483-3.671H30.14v-2.343c0-1.056.305-1.782 1.862-1.782H34V18.14a28.937 28.937 0 00-2.902-.14c-2.877 0-4.849 1.708-4.849 4.843v2.706H23v3.671h3.25v9.405h3.892z"/></symbol>
<symbol id="icon-file" viewBox="0 0 24 20"><use xlink:href="#def-file-a" transform="translate(-491 -9437)"/></symbol>
<symbol id="icon-github-mob" viewBox="0 0 34 34"><path d="M17.2 10c-3.978 0-7.2 3.307-7.2 7.386 0 3.263 2.063 6.031 4.923 7.007.36.07.492-.16.492-.355 0-.175-.006-.64-.009-1.256-2.003.445-2.425-.99-2.425-.99-.328-.853-.801-1.081-.801-1.081-.652-.458.05-.449.05-.449.723.052 1.103.761 1.103.761.642 1.13 1.685.803 2.097.615.065-.478.25-.803.456-.988-1.599-.185-3.28-.82-3.28-3.65 0-.806.28-1.464.741-1.981-.08-.187-.324-.938.063-1.955 0 0 .603-.198 1.98.757a6.754 6.754 0 011.8-.25 6.754 6.754 0 011.8.25c1.368-.955 1.971-.757 1.971-.757.387 1.017.144 1.768.072 1.955.46.517.738 1.175.738 1.981 0 2.838-1.683 3.462-3.285 3.644.252.222.486.674.486 1.366 0 .989-.009 1.783-.009 2.023 0 .193.126.424.495.35 2.881-.969 4.942-3.739 4.942-6.997 0-4.079-3.224-7.386-7.2-7.386z"/></symbol>
<symbol id="icon-github" viewBox="0 0 56 56"><path d="M27.913 19C22.436 19 18 23.362 18 28.741c0 4.305 2.84 7.955 6.778 9.242.496.092.677-.21.677-.468 0-.232-.008-.844-.012-1.657-2.758.588-3.34-1.306-3.34-1.306-.45-1.125-1.102-1.425-1.102-1.425-.898-.604.07-.592.07-.592.995.068 1.518 1.004 1.518 1.004.884 1.49 2.32 1.059 2.887.81.09-.63.344-1.059.628-1.302-2.202-.244-4.515-1.082-4.515-4.814 0-1.063.384-1.932 1.02-2.614-.112-.246-.446-1.236.086-2.578 0 0 .83-.26 2.727.999a9.676 9.676 0 012.478-.329 9.676 9.676 0 012.478.329c1.883-1.26 2.714-.999 2.714-.999.532 1.342.198 2.332.099 2.578a3.737 3.737 0 011.016 2.614c0 3.742-2.317 4.566-4.523 4.805.347.293.67.89.67 1.803 0 1.303-.013 2.35-.013 2.667 0 .255.173.56.681.463 3.966-1.279 6.804-4.932 6.804-9.23 0-5.38-4.439-9.741-9.913-9.741z"/></symbol>
<symbol id="icon-gplus" viewBox="0 0 13 8"><use xlink:href="#def-gplus-a" transform="translate(-466 -10165)"/><use xlink:href="#def-gplus-b" transform="translate(-466 -10165)"/></symbol>
<symbol id="icon-head" viewBox="0 0 54 45"><g transform="translate(2 2)" fill-rule="evenodd"><path d="M9.23 19.458v17.61s14.232 8.328 28.462 0V19.231" fill-rule="nonzero"/><path stroke-width="3" fill-rule="nonzero" stroke-linecap="round" stroke-linejoin="round" d="M46.923 13.25L22.99 0 0 14.007l23.179 13.44L46.923 13.25V30"/><path d="M9.23 19.458v17.61s14.232 8.328 28.462 0V19.231" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/><circle stroke-width="3" fill-rule="nonzero" stroke-linecap="round" stroke-linejoin="round" cx="47.308" cy="32.692" r="2.692"/><path d="M32.733 18.745c.53.295 1.074.575 1.604.87 1.302.7 2.468-1.164 1.181-1.865-3.694-1.99-7.403-3.98-11.097-5.957-.53-.294-1.075-.575-1.604-.869-1.302-.7-2.468 1.163-1.181 1.864 3.694 1.99 7.403 3.981 11.097 5.957zM36.733 15.745c.53.295 1.074.575 1.604.87 1.302.7 2.468-1.164 1.181-1.865a4281.61 4281.61 0 00-11.097-5.957c-.53-.294-1.075-.575-1.604-.869-1.302-.7-2.468 1.163-1.181 1.864 3.694 1.99 7.403 3.981 11.097 5.957z" fill-rule="nonzero"/></g></symbol>
<symbol id="icon-inst" viewBox="0 0 26 26"><use xlink:href="#def-inst-a" transform="translate(-1468 -332)"/><use xlink:href="#def-inst-b" transform="translate(-1468 -332)"/><use xlink:href="#def-inst-c" transform="translate(-1468 -332)"/></symbol>
<symbol id="icon-instagram-mob" viewBox="0 0 34 34"><path fill-rule="evenodd" clip-rule="evenodd" d="M24.027 20.23a3.801 3.801 0 01-3.797 3.797h-6.433A3.801 3.801 0 0110 20.23v-6.433A3.801 3.801 0 0113.797 10h6.433a3.801 3.801 0 013.797 3.797v6.433zm-7.014-7.052a3.84 3.84 0 00-3.835 3.835 3.84 3.84 0 003.835 3.836 3.84 3.84 0 003.836-3.836 3.84 3.84 0 00-3.836-3.835zm0 6.848A3.016 3.016 0 0114 17.013 3.016 3.016 0 0117.013 14a3.016 3.016 0 013.013 3.013 3.016 3.016 0 01-3.013 3.013zm2.794-7.077c0-.625.509-1.133 1.133-1.133.625 0 1.134.508 1.134 1.133s-.509 1.134-1.134 1.134a1.135 1.135 0 01-1.133-1.134z"/></symbol>
<symbol id="icon-instagram" viewBox="0 0 56 56"><path fill-rule="evenodd" clip-rule="evenodd" d="M37.5 32.492a5.014 5.014 0 01-5.008 5.008h-8.484A5.014 5.014 0 0119 32.492v-8.484A5.014 5.014 0 0124.008 19h8.484a5.014 5.014 0 015.008 5.008v8.484zm-9.25-9.3a5.064 5.064 0 00-5.058 5.058c0 2.79 2.269 5.059 5.058 5.059 2.79 0 5.059-2.27 5.059-5.059 0-2.79-2.27-5.058-5.059-5.058zm0 9.032a3.978 3.978 0 01-3.974-3.974 3.978 3.978 0 013.974-3.974 3.978 3.978 0 013.974 3.974 3.978 3.978 0 01-3.974 3.974zm3.685-9.334c0-.825.67-1.495 1.494-1.495.825 0 1.495.67 1.495 1.495 0 .824-.67 1.495-1.495 1.495-.824 0-1.494-.67-1.494-1.495z"/></symbol>
<symbol id="icon-like-down" viewBox="0 0 20 22"><use xlink:href="#def-like-down-a" transform="translate(-995 -522)"/></symbol>
<symbol id="icon-like-up" viewBox="0 0 20 22"><use xlink:href="#def-like-up-a" transform="translate(-934 -520)"/></symbol>
<symbol id="icon-like" viewBox="0 0 16 16"><use xlink:href="#def-like-a" transform="translate(-687 -8946)"/></symbol>
<symbol id="icon-link" viewBox="0 0 19 21"><use xlink:href="#def-link-a" transform="translate(-624 -1161)"/><use xlink:href="#def-link-b" transform="translate(-624 -1161)"/></symbol>
<symbol id="icon-mail" viewBox="0 0 16 12"><use xlink:href="#def-mail-a" transform="translate(-1042 -260)"/><use xlink:href="#def-mail-b" transform="translate(-1042 -260)"/></symbol>
<symbol id="icon-minus-zoom" viewBox="0 0 26 2"><path stroke-linecap="square" stroke-miterlimit="50" stroke-width="2" d="M1.5 1h23.19"/></symbol>
<symbol id="icon-outside" viewBox="0 0 21 21"><use xlink:href="#def-outside-a" transform="translate(-1185 -9211)"/></symbol>
<symbol id="icon-pencil" viewBox="0 0 20 21"><use xlink:href="#def-pencil-a" transform="translate(-1185 -9800)"/></symbol>
<symbol id="icon-phone" viewBox="0 0 21 22"><use xlink:href="#def-phone-a" transform="translate(-716 -19)"/></symbol>
<symbol id="icon-play-circle" viewBox="0 0 24 24"><path d="M12 24a12 12 0 110-24 12 12 0 010 24zM2 12a10 10 0 1020 0 10 10 0 00-20 0z"/><path d="M11.01 14.52c-.05.28.1.55.35.67.25.13.55.07.74-.14l2.85-2.94c.26-.27.27-.7.02-.98l-2.83-2.94a.69.69 0 00-.75-.13.67.67 0 00-.38.65z"/></symbol>
<symbol id="icon-play-reviews" viewBox="0 0 9 9"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.074 4.507c0 .41-.745.741-.745.741l-5.854 2.91a.619.619 0 01-.563-.054.649.649 0 01-.294-.494V1.392A.586.586 0 01.895.853a.557.557 0 01.595.01l5.839 2.903s.745.331.745.741z"/></symbol>
<symbol id="icon-play" viewBox="0 0 17 17"><path d="M17 9.02c0 .88-1.6 1.59-1.6 1.59L2.84 16.86c-.4.16-.84.12-1.21-.12A1.4 1.4 0 011 15.68V2.33c-.03-.47.2-.92.6-1.16.39-.24.89-.23 1.27.02L15.4 7.43s1.6.71 1.6 1.59z"/></symbol>
<symbol id="icon-plus-zoom" viewBox="0 0 24 24"><path d="M23 13H13v10a1 1 0 01-1 1 1 1 0 01-1-1V13H1a1 1 0 01-1-1 1 1 0 011-1h10V1a1 1 0 011-1 1 1 0 011 1v10h10a1 1 0 011 1 1 1 0 01-1 1z"/></symbol>
<symbol id="icon-plus" viewBox="0 0 16 16"><use xlink:href="#def-plus-a" transform="translate(-1208 -4164)"/></symbol>
<symbol id="icon-search" viewBox="0 0 22 22"><use xlink:href="#def-search-a" transform="translate(-1083 -22)"/></symbol>
<symbol id="icon-shape" viewBox="0 0 48 38"><use xlink:href="#def-shape-a" transform="translate(-832 -13296)"/></symbol>
<symbol id="icon-share" viewBox="0 0 26 24"><path d="M21.03 8a3.95 3.95 0 01-3.02-1.41l-9.08 4.54c.12.55.13 1.11.02 1.66l9.06 4.61a3.98 3.98 0 11-.9 1.79l-9.05-4.61a4 4 0 11-.05-5.22l9.1-4.55A4 4 0 1121.03 8zm0 14a2 2 0 002-2 2 2 0 10-2 2zm-18-10a2 2 0 104 0 2 2 0 00-4 0zm16-8a2 2 0 104 0 2 2 0 00-4 0z"/></symbol>
<symbol id="icon-smile" viewBox="0 0 23 24"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.5 23.278c-6.351 0-11.5-5.148-11.5-11.5C0 5.427 5.149.278 11.5.278S23 5.427 23 11.778c-.005 6.35-5.15 11.495-11.5 11.5zm0-21.083a9.583 9.583 0 00-9.583 9.583 9.584 9.584 0 1019.167 0A9.599 9.599 0 0011.5 2.195zm-6.613 12.87a7.38 7.38 0 006.613 4.38 7.333 7.333 0 006.613-4.38.957.957 0 00-.93-1.427.96.96 0 00-.796.603 5.277 5.277 0 01-9.774 0 .959.959 0 00-1.726.824zm10.447-3.287a1.917 1.917 0 110-3.833 1.917 1.917 0 010 3.833zM5.75 9.862a1.917 1.917 0 103.833 0 1.917 1.917 0 00-3.833 0z"/></symbol>
<symbol id="icon-socials" viewBox="0 0 40 40"><g fill-rule="evenodd"><circle cx="20" cy="20" r="20"/><path d="M20.021 31h-.485C13.717 31 9 26.08 9 20.009c0-6.07 4.717-10.991 10.536-10.991.309-.024.619-.024.928 0 5.819 0 10.536 4.92 10.536 10.99C31 26.08 26.283 31 20.464 31h-.443zm0-2.198h.316c4.655 0 8.43-3.937 8.43-8.793s-3.775-8.793-8.43-8.793h-.632c-4.655 0-8.43 3.937-8.43 8.793s3.775 8.793 8.43 8.793h.316z"/><path d="M19.382 31C13.648 31 9 26.08 9 20.009c0-6.07 4.648-10.991 10.382-10.991.305-.024.61-.024.914 0 .252.02.488.138.665.33 5.385 5.95 5.385 15.338 0 21.29a.998.998 0 01-1.142.252.992.992 0 01-.437.11zm.322-19.784h-.238c-4.588 0-8.306 3.937-8.306 8.793s3.718 8.793 8.306 8.793a.981.981 0 01.26 0c4.23-5.007 4.23-12.58 0-17.586h-.022z" clip-rule="evenodd"/><path d="M19.91 30.967a1.101 1.101 0 01-.419-.077 1.101 1.101 0 01-1.21-.253c-5.708-5.95-5.708-15.337 0-21.288a1.1 1.1 0 01.704-.33 6.664 6.664 0 011.012 0C26.074 9.02 31 13.94 31 20.01S26.074 31 19.997 31l-.088-.033zm-.353-19.783a13.177 13.177 0 000 17.585c.091-.012.184-.012.275 0 4.861 0 8.802-3.936 8.802-8.792s-3.94-8.793-8.802-8.793h-.275z" clip-rule="evenodd"/><path d="M27.944 17H11.056C10.473 17 10 16.552 10 16s.473-1 1.056-1h16.888c.583 0 1.056.448 1.056 1s-.473 1-1.056 1zM27.944 25H11.056C10.473 25 10 24.552 10 24s.473-1 1.056-1h16.888c.583 0 1.056.448 1.056 1s-.473 1-1.056 1z"/></g></symbol>
<symbol id="icon-strawberry" viewBox="0 0 49 48"><use xlink:href="#def-strawberry-a" transform="translate(-832 -13406)"/></symbol>
<symbol id="icon-telegram" viewBox="0 0 29 24"><use xlink:href="#def-telegram-a" transform="translate(-795 -271)"/></symbol>
<symbol id="icon-telegram2-mob" viewBox="0 0 34 34"><path d="M14.95 19.329l-.25 3.528c.358 0 .514-.154.7-.34l1.683-1.607 3.486 2.553c.64.356 1.09.168 1.263-.588L24.12 12.15c.204-.946-.341-1.316-.964-1.084l-13.452 5.15c-.918.357-.904.869-.156 1.1l3.44 1.07 7.988-4.998c.375-.25.717-.112.436.137L14.95 19.33z"/></symbol>
<symbol id="icon-telegram2" viewBox="0 0 56 56"><path d="M25.848 30.985l-.331 4.653c.473 0 .678-.203.924-.447l2.22-2.121 4.598 3.367c.843.47 1.437.223 1.665-.776l3.018-14.143.001-.001c.268-1.247-.45-1.734-1.272-1.428L18.929 26.88c-1.211.47-1.193 1.145-.206 1.451l4.536 1.411 10.536-6.593c.495-.328.946-.146.575.182l-8.522 7.653z"/></symbol>
<symbol id="icon-tm" viewBox="0 0 26 22"><use xlink:href="#def-tm-a" transform="translate(-1399 -334)"/></symbol>
<symbol id="icon-trash" viewBox="0 0 20 21"><use xlink:href="#def-trash-a" transform="translate(-1156 -9799)"/></symbol>
<symbol id="icon-triangle" viewBox="0 0 16 8"><use xlink:href="#def-triangle-a" transform="translate(-1237 -6883)"/></symbol>
<symbol id="icon-tw" viewBox="0 0 18 15"><path d="M18 1.75c-.66.3-1.37.5-2.12.59A3.7 3.7 0 0017.5.27c-.71.43-1.5.74-2.34.91a3.68 3.68 0 00-6.39 2.56c0 .3.03.58.09.85A10.45 10.45 0 011.25.69 3.75 3.75 0 002.4 5.68a3.67 3.67 0 01-1.68-.47v.05a3.75 3.75 0 002.97 3.67 3.51 3.51 0 01-1.67.06 3.7 3.7 0 003.45 2.6A7.33 7.33 0 010 13.14a10.37 10.37 0 005.66 1.68c6.79 0 10.51-5.7 10.51-10.64l-.01-.49A7.35 7.35 0 0018 1.76z"/></symbol>
<symbol id="icon-twitter-mob" viewBox="0 0 34 34"><path d="M24.406 12.386a6.16 6.16 0 01-1.702.466 2.937 2.937 0 001.3-1.632c-.572.34-1.202.58-1.873.715a2.952 2.952 0 00-5.109 2.02c0 .233.02.458.068.672a8.36 8.36 0 01-6.087-3.089 2.957 2.957 0 00.908 3.947 2.917 2.917 0 01-1.335-.363v.032a2.967 2.967 0 002.366 2.902c-.24.066-.502.097-.774.097-.189 0-.38-.01-.56-.05a2.981 2.981 0 002.76 2.057 5.934 5.934 0 01-3.661 1.26c-.242 0-.475-.011-.707-.04a8.314 8.314 0 004.53 1.325c5.435 0 8.406-4.502 8.406-8.404 0-.13-.004-.257-.01-.382a5.89 5.89 0 001.48-1.533z"/></symbol>
<symbol id="icon-twitter" viewBox="0 0 56 56"><path d="M38 21.828c-.707.31-1.46.515-2.244.615a3.874 3.874 0 001.713-2.153 7.783 7.783 0 01-2.47.943 3.894 3.894 0 00-6.738 2.664c0 .308.026.605.09.887a11.025 11.025 0 01-8.028-4.074 3.922 3.922 0 00-.533 1.969 3.9 3.9 0 001.73 3.237 3.847 3.847 0 01-1.76-.48v.043a3.913 3.913 0 003.12 3.827 3.887 3.887 0 01-1.02.129c-.25 0-.502-.015-.738-.067.505 1.543 1.937 2.677 3.64 2.714a7.827 7.827 0 01-4.83 1.66c-.32 0-.626-.013-.932-.052a10.966 10.966 0 005.976 1.748c7.167 0 11.086-5.938 11.086-11.085a9.95 9.95 0 00-.014-.503A7.77 7.77 0 0038 21.828z"/></symbol>
<symbol id="icon-user-circle" viewBox="0 0 24 24"><use xlink:href="#def-user-circle-a" transform="translate(-1244 -22)"/></symbol>
<symbol id="icon-vb" viewBox="0 0 25 27"><use xlink:href="#def-vb-a" transform="translate(-931 -270)"/></symbol>
<symbol id="icon-view-list" viewBox="0 0 15 15"><path d="M0 6V0h15v6zm0 9V9h15v6z"/></symbol>
<symbol id="icon-view-tile" viewBox="0 0 15 15"><path d="M0 6V0h6v6zm9 0V0h6v6zm0 9V9h6v6zm-9 0V9h6v6z"/></symbol>
<symbol id="icon-vk" viewBox="0 0 22 14"><path d="M10.61 13.8h1.3s.39-.04.59-.27c.19-.2.18-.59.18-.59s-.02-1.8.78-2.07c.8-.26 1.82 1.75 2.91 2.52.81.58 1.44.46 1.44.46l2.89-.05s1.52-.09.8-1.33c-.06-.1-.42-.92-2.15-2.59-1.82-1.75-1.58-1.47.61-4.5 1.33-1.84 1.87-2.97 1.7-3.45-.16-.46-1.14-.34-1.14-.34l-3.26.02s-.24-.03-.42.08-.29.36-.29.36-.52 1.43-1.2 2.64c-1.46 2.57-2.04 2.7-2.27 2.54-.56-.37-.42-1.49-.42-2.28 0-2.49.36-3.52-.71-3.79A5.26 5.26 0 0010.43 1c-1.16-.01-2.15.01-2.7.29-.38.19-.66.61-.49.63.22.03.71.14.97.51.33.47.32 1.53.32 1.53s.19 2.92-.45 3.29c-.44.25-1.04-.26-2.34-2.59-.66-1.19-1.16-2.5-1.16-2.5s-.1-.25-.27-.38c-.21-.16-.5-.21-.5-.21l-3.1.02s-.47.01-.64.22c-.15.19-.01.58-.01.58s2.43 5.89 5.17 8.87c2.52 2.72 5.38 2.54 5.38 2.54z"/></symbol>
<symbol id="icon-vk2-mob" viewBox="0 0 34 34"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.79 21.913h.947a.77.77 0 00.436-.201.795.795 0 00.13-.459s-.016-1.399.573-1.608c.588-.209 1.336 1.351 2.13 1.954.297.259.68.383 1.063.346l2.123-.032s1.116-.073.589-1.03a7.642 7.642 0 00-1.582-2.002c-1.337-1.35-1.153-1.134.451-3.473.978-1.424 1.367-2.3 1.245-2.67a.866.866 0 00-.832-.257l-2.4.016a.463.463 0 00-.305.056.702.702 0 00-.214.282 15.134 15.134 0 01-.886 2.042c-1.062 1.978-1.49 2.082-1.665 1.962-.405-.29-.306-1.15-.306-1.77 0-1.913.268-2.717-.511-2.926a4.053 4.053 0 00-1.123-.12 4.804 4.804 0 00-1.987.225c-.275.144-.48.466-.351.49.273.03.524.167.703.386.165.37.246.774.237 1.182 0 0 .145 2.26-.329 2.54-.32.194-.764-.2-1.719-1.993a17.581 17.581 0 01-.848-1.938.803.803 0 00-.198-.29.84.84 0 00-.367-.16l-2.276.016a.723.723 0 00-.466.169.581.581 0 00-.016.442s1.788 4.559 3.805 6.859c.99 1.217 2.427 1.931 3.95 1.962z"/></symbol>
<symbol id="icon-vk2" viewBox="0 0 56 56"><path fill-rule="evenodd" clip-rule="evenodd" d="M28.274 34.074h1.25c.213-.024.413-.117.574-.265.117-.177.177-.39.172-.605 0 0-.02-1.845.755-2.12.776-.276 1.763 1.78 2.811 2.576.391.342.895.506 1.4.456l2.802-.042s1.47-.096.775-1.358a10.079 10.079 0 00-2.085-2.64c-1.763-1.782-1.522-1.495.594-4.582 1.29-1.877 1.804-3.033 1.642-3.52a1.143 1.143 0 00-1.098-.34l-3.163.021a.61.61 0 00-.403.075.925.925 0 00-.282.37 19.972 19.972 0 01-1.17 2.694c-1.4 2.61-1.964 2.747-2.196 2.588-.534-.382-.403-1.516-.403-2.333 0-2.524.353-3.584-.675-3.86a5.345 5.345 0 00-1.48-.16 6.336 6.336 0 00-2.62.298c-.363.19-.635.615-.464.646.36.039.691.221.927.51.218.487.325 1.02.312 1.558 0 0 .192 2.98-.433 3.352-.423.254-1.007-.265-2.267-2.63a23.184 23.184 0 01-1.118-2.556 1.06 1.06 0 00-.262-.382 1.109 1.109 0 00-.484-.212l-3.002.021a.953.953 0 00-.615.223.767.767 0 00-.02.583s2.358 6.013 5.018 9.046c1.305 1.606 3.2 2.548 5.209 2.588z"/></symbol>
<symbol id="icon-yandex" viewBox="0 0 5 11"><path d="M4.847 0H3.259C1.7 0 .376 1.169.376 3.438c0 1.36.64 2.364 1.783 2.86L.028 10.092c-.07.123 0 .22.111.22h.99c.083 0 .139-.028.166-.097L3.231 6.49h.697v3.726c0 .041.041.097.097.097h.864c.083 0 .111-.042.111-.11V.138C5 .04 4.944 0 4.847 0zm-.92 5.61h-.584c-.92 0-1.81-.66-1.81-2.31 0-1.719.835-2.42 1.684-2.42h.71v4.73z" fill-rule="nonzero"/></symbol>
<symbol id="icon-ynadex" viewBox="0 0 5 10"><use xlink:href="#def-ynadex-a" transform="translate(-468 -10321)"/></symbol>
<symbol id="icon-ytube" viewBox="0 0 27 20"><use xlink:href="#def-ytube-a" transform="translate(-1332 -335)"/></symbol>
</svg>
<div class="header-banner topBanner" data-type="header" style="display: block; position: sticky; top: 0; z-index: 999;">
<a data-source="213357" data-banner="226288" class="universal-notice js-universal-notice-notice universal-notice--webp universal-notice--bitrix universal-notice--active" href="https://skillbox.ru/sale/main/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_banners_header_all_all_skillbox" target="_blank" style="--banner-bg: #5927E9;--banner-color: #fff;--button-font-color: #000000;--button-bg-color: #FFFFFF;--banner-img-left: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_left/602754/f9ac17dd-a1d4-46c6-aa14-4f7b949defd1.png);--banner-img-left-webp: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_left/602754/f9ac17dd-a1d4-46c6-aa14-4f7b949defd1.webp);--banner-img-center: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_center/602507/232fc4a5-b130-4af2-a629-bdb293a4dd2e.png);--banner-img-center-webp: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_center/602507/232fc4a5-b130-4af2-a629-bdb293a4dd2e.webp);--banner-img-center-mobile: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_center/602507/232fc4a5-b130-4af2-a629-bdb293a4dd2e.png);--banner-img-center-mobile-webp: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_center/602507/232fc4a5-b130-4af2-a629-bdb293a4dd2e.webp);--banner-img-right: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_right/602755/ad7a7fe5-b8d3-47a3-885b-51a7971c12a9.png);--banner-img-right-webp: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_right/602755/ad7a7fe5-b8d3-47a3-885b-51a7971c12a9.webp);">
<span class="universal-notice__wrapper">
<b class="universal-notice__title">
Скидка до 55% и 3 курса в подарок
</b>
<span class="universal-timer js-universal-notice-timer js-universal-notice-active">
<span class="universal-timer__days js-universal-notice-days">2 дня</span>
<span class="js-universal-notice-hours">13</span>
:<span class="js-universal-notice-minutes">30</span>
:<span class="js-universal-notice-seconds">09</span>
</span>
<span class="universal-notice__button">Выбрать курс</span>
</span>
</a><script>
document.addEventListener('DOMContentLoaded', () => {
// Установите конечную дату
const deadline = new Date();
deadline.setDate(5);
deadline.setHours(0, 0, 0);
// Найдите элементы DOM
var timer = document.querySelector('.universal-timer');
const elDays = timer.querySelector('.js-universal-notice-days');
const elHours = timer.querySelector('.js-universal-notice-hours');
const elMinutes = timer.querySelector('.js-universal-notice-minutes');
const elSeconds = timer.querySelector('.js-universal-notice-seconds');
// Функция обновления таймера
const updateTimer = () => {
const now = new Date();
let diff = Math.max(0, deadline - now);
if (diff === 0) {
let lastDayOfMonth = new Date(now.getFullYear(), now.getMonth() + 1, 0);
let lastDay = lastDayOfMonth.getDate();
if (lastDay - now.getDate() < 4) {
deadline.setMonth(deadline.getMonth() + 1, 1);
} else {
deadline.setDate(deadline.getDate() + 4);
}
diff = Math.max(0, deadline - now);
}
// Time calculations for days, hours, minutes and seconds
var days = Math.floor(diff / (1000 * 60 * 60 * 24));
var hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)).toString();
var minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60)).toString();
var seconds = Math.floor((diff % (1000 * 60)) / 1000).toString();
if (timer) {
let dayTitles = ['день', 'дня', 'дней'];
let daySuffix = dayTitles[(days % 100 > 4 && days % 100 < 20) ? 2 : [2, 0, 1, 1, 1, 2][days % 10 < 5 ? days % 10 : 5]]
elDays.innerHTML = days + ' ' + daySuffix;
elHours.innerHTML = hours.padStart(2, '0');
elMinutes.innerHTML = minutes.padStart(2, '0');
elSeconds.innerHTML = seconds.padStart(2, '0');
}
};
updateTimer();
const timerId = setInterval(updateTimer, 1000);
});
</script>
<style>@font-face{font-display:swap;font-family:Graphik;font-weight:500;font-style:normal;src:url(https://248006.selcdn.ru/Shared/fonts/GraphikLCTT-VA-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:Graphik;font-weight:700;font-style:normal;src:url(https://248006.selcdn.ru/Shared/fonts/GraphikLCTT-VA-Bold.woff2) format("woff2")}.universal-notice{position:sticky;z-index:5;top:0;box-sizing:border-box;text-decoration:none;display:none;justify-content:space-between;overflow:hidden;color:var(--banner-color);background-color:var(--banner-bg);font-family:Graphik,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:opacity .25s ease-in-out}.universal-notice--active{display:flex}.universal-notice--bitrix{z-index:1000}.universal-notice *,.universal-notice ::after,.universal-notice ::before{box-sizing:inherit}.universal-notice::after,.universal-notice::before{display:none;width:194px;height:56px;content:"";background-size:194px 56px;background-repeat:no-repeat}.universal-notice--no-webp::before{background-image:var(--banner-img-left)}.universal-notice--no-webp::after{background-image:var(--banner-img-right)}.universal-notice--webp::before{background-image:var(--banner-img-left-webp)}.universal-notice--webp::after{background-image:var(--banner-img-right-webp)}.universal-notice--new-design{position:static;margin:4px;border-radius:16px}.universal-notice--new-design::after,.universal-notice--new-design::before{width:166px;height:48px;background-size:166px 48px}.universal-notice__wrapper{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:12px;padding:12px;width:100%}.universal-notice--new-design .universal-notice__wrapper::after{height:48px}.universal-notice__title{font-weight:500;font-size:15px;line-height:16px}.universal-notice--new-design .universal-notice__title{font-size:14px;line-height:15px}.universal-timer{display:none;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:500;font-size:24px;line-height:26px}.universal-notice--new-design .universal-timer{font-size:22px;line-height:24px}.universal-timer__days{margin-right:8px}.universal-notice__button{grid-column:2/3;padding:6px 16px;border-radius:6px;color:var(--button-font-color);background-color:var(--button-bg-color);font-weight:500;font-size:14px;line-height:20px}.universal-notice-sticky{position:fixed;z-index:5;top:0;left:0;width:100%;padding:11px 8px;color:var(--banner-color);background-color:var(--banner-bg);text-align:center;transition:transform .3s ease-in-out;will-change:transform;transform:translateY(-200%)}.universal-notice-sticky--show{transform:translateY(0)}@media (min-width:360px) and (max-width:0px){.universal-notice__wrapper{padding:0 12px;grid-template-columns:1fr 56px auto}.universal-notice__wrapper::after{grid-column:2/3;grid-row:1/2;width:100%;height:56px;background-size:cover;background-repeat:no-repeat;content:""}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 48px auto}.universal-notice--no-webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-mobile)}.universal-notice--webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-mobile-webp)}.universal-notice__button{grid-column:3/4}}@media (min-width:360px){.universal-notice__wrapper{padding:0 12px;grid-template-columns:1fr 56px auto}.universal-notice__wrapper::after{grid-column:2/3;grid-row:1/2;width:100%;height:56px;background-size:cover;background-repeat:no-repeat;content:""}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 48px auto}.universal-notice--no-webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-mobile)}.universal-notice--webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-mobile-webp)}.universal-notice__button{grid-column:3/4}}@media (min-width:768px){.universal-notice::before{background-position:right center;flex-shrink:0;display:block}.universal-notice--no-webp .universal-notice__wrapper::after{background-image:var(--banner-img-center)}.universal-notice--webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-webp)}}@media (min-width:768px) and (max-width:0px){.universal-notice::before{background-position:right center;flex-shrink:0;display:block}.universal-notice--no-webp .universal-notice__wrapper::after{background-image:var(--banner-img-center)}.universal-notice--webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-webp)}}@media (min-width:1024px){.universal-notice::after,.universal-notice::before{width:250px;height:72px;background-size:250px 72px}.universal-notice--new-design{height:64px;border-radius:32px}.universal-notice--new-design::after,.universal-notice--new-design::before{width:226px;height:64px;background-size:226px 64px}.universal-notice__wrapper{grid-template-columns:1fr 72px auto;grid-gap:24px;padding-right:16px;padding-left:24px}.universal-notice__wrapper::after{height:72px}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 64px auto}.universal-notice--new-design .universal-notice__wrapper::after{height:64px}.universal-notice__title{font-size:24px;line-height:26px}.universal-notice--new-design .universal-notice__title{font-size:22px;line-height:24px}.universal-notice__button{padding:10px 24px;border-radius:8px}.universal-notice-sticky{padding:14px 24px}}@media (min-width:1024px) and (max-width:0px){.universal-notice::after,.universal-notice::before{width:250px;height:72px;background-size:250px 72px}.universal-notice--new-design{height:64px;border-radius:32px}.universal-notice--new-design::after,.universal-notice--new-design::before{width:226px;height:64px;background-size:226px 64px}.universal-notice__wrapper{grid-template-columns:1fr 72px auto;grid-gap:24px;padding-right:16px;padding-left:24px}.universal-notice__wrapper::after{height:72px}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 64px auto}.universal-notice--new-design .universal-notice__wrapper::after{height:64px}.universal-notice__title{font-size:24px;line-height:26px}.universal-notice--new-design .universal-notice__title{font-size:22px;line-height:24px}.universal-notice__button{padding:10px 24px;border-radius:8px}.universal-notice-sticky{padding:14px 24px}}@media (min-width:1280px){.universal-notice::before{flex-shrink:1}.universal-notice::after{background-position:left center;display:block}.universal-notice__wrapper{grid-template-columns:1fr 72px minmax(202px,auto) auto;min-width:940px;max-width:1020px;padding-right:24px}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 64px minmax(202px,auto) auto}.universal-timer.js-universal-notice-active{display:flex}.universal-notice__timer-nuxt{display:flex}.universal-notice__button{grid-column:4/5}}@media (min-width:1280px) and (max-width:0px){.universal-notice::before{flex-shrink:1}.universal-notice::after{background-position:left center;display:block}.universal-notice__wrapper{grid-template-columns:1fr 72px minmax(202px,auto) auto;min-width:940px;max-width:1020px;padding-right:24px}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 64px minmax(202px,auto) auto}.universal-timer.js-universal-notice-active{display:flex}.universal-notice__timer-nuxt{display:flex}.universal-notice__button{grid-column:4/5}}@media (min-width:1400px) and (max-width:0px){.universal-notice::before{flex-shrink:0}.universal-notice::after{flex-shrink:0}}@media (min-width:1400px){.universal-notice::before{flex-shrink:0}.universal-notice::after{flex-shrink:0}}</style> </div>
<script>
document.addEventListener("DOMContentLoaded", function(event) {
window.TopBanner = true;
});
$(document).ready(function () {
$.ajax({
url: '/local/ajax/advert.php',
type: 'POST',
data: {
'type': 'top-banner-show',
'id': 226288,
'section_id': 0,
},
success: function (result) {
}
});
});
$(document).on('click', '.header-banner', function () {
$.ajax({
url: '/local/ajax/advert.php',
type: 'POST',
data: {
'type': 'top-banner-click',
'id': 226288,
'section_id': 0,
},
success: function (result) {
}
});
var page = window.location;
var $article = $('section[data-article-text]');
var pageId = $article.data('articleid');
if(pageId === undefined)
{
pageId = 0;
}
window.dataLayer.push({
'event': 'go_to_course',
'courseID': 226288,
'page': page,
'pageID': pageId
});
});
</script>
<header class="header">
<div id="menu" class="header__wrapper container">
<div class="header__logo link-active">
<a href="/media/" class="header__media-main-link">
<img src="/local/templates/media/images/logo/skillbox-media.svg" alt="Skillbox"/>
</a>
<a href="/media/code/" class="header__media-category-link">
<span class="header__media-category js-category ">Код</span>
</a>
</div>
<a href="/media/about-media/" v-if="!isMobile" rel="nofollow" class="menu-nav__link menu-nav__link--about" target="_blank" style="display: none">
Про медиа
</a>
<button v-if="!isMobile" v-show="!isMobile" rel="nofollow" class="toggle-menu header__toggle toggle-menu--course"
@click="openCourseMenu()"
:class="{ 'toggle-menu--active': isOpenCourseMenu }"
style="display: none">
Онлайн-курсы
<svg width="13" height="12" viewBox="0 0 13 12" fill="none" xmlns="http://www.w3.org/2000/svg"
:class="{
'animated-chevron--default': isOpenCourseMenu,
'animated-chevron--active animated-chevron--default': ! isOpenCourseMenu
}"
class="animated-chevron toggle-menu__arrow select-arrow select-arrow--small">
<line x1="6.48415" y1="5.92242" x2="11.4909" y2="10.9291" stroke="currentColor" stroke-width="1.78"
class=" animated-chevron__line animated-chevron__line1 animated-chevron__line1--default"></line>
<line x1="6.3701" y1="5.9224" x2="11.3768" y2="0.915678" stroke="currentColor" stroke-width="1.78"
class="animated-chevron__line"></line>
<line x1="1.36337" y1="10.9291" x2="6.3701" y2="5.9224" stroke="currentColor" stroke-width="1.78"
class="animated-chevron__line animated-chevron__line2 animated-chevron__line2--default"></line>
<line x1="1.47743" y1="0.915681" x2="6.48415" y2="5.9224" stroke="currentColor" stroke-width="1.78"
class="animated-chevron__line"></line>
</svg>
</button>
<a href="https://skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=button_main_skillbox&utm_term=mainskillbox" v-if="!isMobile" v-show="!isMobile" rel="nofollow" class="menu-nav__link menu-nav__link-ml0 menu-nav__link--main" target="_blank" style="display: none">
Главная Skillbox
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.9375 10.0618L9.9161 4.08203" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M3.93811 3.93665H10.0631V10.0616" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<div v-if="isOpenCourseMenu && !isMobile" class="menu-block menu-block--desktop" @click="closeCourseMenu($event)" style="display: none">
<div class="menu-block__wrapper menu-block__wrapper--desktop">
<div class="menu-block__content vue-container">
<span class="menu-block__title">
Направления обучения
</span>
<ul class="menu-directions menu-block__direction">
<li class="menu-directions__item">
<a href="https://skillbox.ru/courses/?utm_source=media&utm_medium=button&utm_campaign=button_courses_all&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="All directions">
Все направления
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/code/?utm_source=media&utm_medium=button&utm_campaign=button_courses_code&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Code">
Программирование
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/design/?utm_source=media&utm_medium=button&utm_campaign=button_courses_design&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Design">
Дизайн
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/management?utm_source=media&utm_medium=button&utm_campaign=button_courses_management&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Management">
Управление
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/marketing?utm_source=media&utm_medium=button&utm_campaign=button_courses_marketing&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Marketing">
Маркетинг
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/games?utm_source=media&utm_medium=button&utm_campaign=button_courses_games&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="GameDev">
Игры
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/multimedia?utm_source=media&utm_medium=button&utm_campaign=button_courses_multimedia&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="">
Кино и Музыка
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/psychology?utm_source=media&utm_medium=button&utm_campaign=button_courses_psychology&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Development">
Психология
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/health?utm_source=media&utm_medium=button&utm_campaign=button_courses_health&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Development">
Здоровье
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/spo/?utm_source=media&utm_medium=button&utm_campaign=button_courses_spo&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Development">
Цифровой колледж
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/general-development/?utm_source=media&utm_medium=button&utm_campaign=button_courses_general-development&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Education">
Общее развитие
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/engineering/?utm_source=media&utm_medium=button&utm_campaign=button_courses_engineering&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="engineering">
Инженерия
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/english/?utm_source=media&utm_medium=button&utm_campaign=button_courses_english&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="english">
Английский язык
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/other/?utm_source=media&utm_medium=button&utm_campaign=button_courses_other&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Other">
Другое
</a>
</li>
</ul>
</div>
</div>
</div>
<div v-show="isOpenMenu" class="menu-block" @click="closeMenu($event)" style="display: none">
<div class="menu-block__wrapper">
<div class="menu-block__content vue-container">
<h2 class="menu-block__header">Редакции</h2>
<div class="tab-nav" data-tab-parent="" data-action="index">
<div class="tab-nav__item">
<a class="" data-tab-name="media_nav" data-section-id="0" data-code="All directions" href="/media/">
<img src="/local/templates/media/images/common/menu-icon-mobile-1.png" alt=""/>
Все
</a>
</div>
<div class="tab-nav__item tab-nav__item--custom tab-nav__item--spec"
data-nav-parent-item>
<a
data-tab-name="media_nav"
data-code=""
href="/media/topic/history/">
<img src="/local/templates/media/images/common/menu-icon-mobile-19.png"
alt=""/>
Истории</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="8"
data-code="Design"
href="/media/design/">
<img src="/local/templates/media/images/common/menu-icon-mobile-2.png" alt=""/>
Дизайн</a>
</div>
<div class="tab-nav__item">
<a class="tab-active"
data-tab-name="media_nav"
data-section-id="10"
data-code="Code"
href="/media/code/">
<img src="/local/templates/media/images/common/menu-icon-mobile-3.png" alt=""/>
Код</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="18"
data-code="GameDev"
href="/media/gamedev/">
<img src="/local/templates/media/images/common/menu-icon-mobile-4.png" alt=""/>
Геймдев</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="21"
data-code="Business"
href="/media/business/">
<img src="/local/templates/media/images/common/menu-icon-mobile-9.png" alt=""/>
Бизнес</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="9"
data-code="Marketing"
href="/media/marketing/">
<img src="/local/templates/media/images/common/menu-icon-mobile-5.png" alt=""/>
Маркетинг</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="11"
data-code=""
href="/media/management/">
<img src="/local/templates/media/images/common/menu-icon-mobile-6.png" alt=""/>
Управление</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="29"
data-code=""
href="/media/cinemusic/">
<img src="/local/templates/media/images/common/menu-icon-mobile-22.png" alt=""/>
Кино</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="36"
data-code=""
href="/media/music/">
<img src="/local/templates/media/images/common/menu-icon-mobile-23.png" alt=""/>
Музыка</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="34"
data-code=""
href="/media/photo/">
<img src="/local/templates/media/images/common/menu-icon-mobile-20.png" alt=""/>
Проектная фотография</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="17"
data-code="Development"
href="/media/growth/">
<img src="/local/templates/media/images/common/menu-icon-mobile-7.png" alt=""/>
Развитие</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="33"
data-code=""
href="/media/health/">
<img src="/local/templates/media/images/common/menu-icon-mobile-16.png" alt=""/>
Здоровье</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="32"
data-code=""
href="/media/money/">
<img src="/local/templates/media/images/common/menu-icon-mobile-17.png" alt=""/>
Деньги</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="22"
data-code="Education"
href="/media/education/">
<img src="/local/templates/media/images/common/menu-icon-mobile-8.png" alt=""/>
Образование</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="31"
data-code=""
href="/media/edtech/">
<img src="/local/templates/media/images/common/menu-icon-mobile-11.png" alt=""/>
EdTech</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="30"
data-code=""
href="/media/corptrain/">
<img src="/local/templates/media/images/common/menu-icon-mobile-10.png" alt=""/>
Корп. обучение</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="35"
data-code=""
href="/media/skillbox-blog/">
<img src="/local/templates/media/images/common/menu-icon-mobile-21.png" alt=""/>
Блог Skillbox</a>
</div>
<div class="tab-nav__item tab-nav__item--custom tab-nav__item--spec"
data-nav-parent-item>
<a
data-tab-name="media_nav"
data-code=""
href="https://skillbox.ru/media/glossary/">
<img src="/local/templates/media/images/common/menu-icon-mobile-18.png"
alt=""/>
Глоссарий</a>
</div>
<div class="tab-nav__item tab-nav__item--custom tab-nav__item--spec"
data-nav-parent-item>
<a
data-tab-name="media_nav"
data-code=""
href="/media/topic/specials/">
<img src="/local/templates/media/images/common/menu-icon-mobile-13.png"
alt=""/>
Спецпроекты</a>
</div>
<div class="tab-nav__item tab-nav__item--custom tab-nav__item--spec"
data-nav-parent-item>
<a
data-tab-name="media_nav"
data-code=""
href="https://skillbox.ru/course/career-guide-free/">
<img src="/local/templates/media/images/common/menu-icon-mobile-15.png"
alt=""/>
Профориентация</a>
</div>
</div>
<h2 class="menu-block__header">Онлайн-курсы</h2>
<ul class="menu-directions menu-block__direction">
<li class="menu-directions__item">
<a href="https://skillbox.ru/courses/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="All directions">
Все направления
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/code/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Code">
Программирование
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/design/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Design">
Дизайн
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/marketing/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Marketing">
Маркетинг
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/management/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Management">
Управление
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/games/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="GameDev">
Игры
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/multimedia/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="">
Мультимедиа
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/psychology/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Development">
Психология
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/general-development/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Education">
Общее развитие
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/engineering/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="engineering">
Инженерия
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/english/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="english">
Английский язык
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/other/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Other">
Другое
</a>
</li>
</ul>
<a href="/media/about-media/" rel="nofollow" class="menu-nav__link">
Про медиа
</a>
<a href="https://skillbox.ru/" rel="nofollow" class="menu-nav__link">
Главная Skillbox
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.9375 10.0618L9.9161 4.08203" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M3.93811 3.93665H10.0631V10.0616" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</div>
</div>
</div>
<button v-if="isMobile" class="menu-toggle"
@click="openMenu()"
:class="{ 'menu-toggle--opened': isOpenMenu }" style="opacity: 0">
<span v-if="isOpenMenu" class="menu-toggle__line"></span>
<svg v-if="!isOpenMenu" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M24 5.5H0V4H24V5.5ZM24 11.5H0V13H24V11.5ZM24 19H0V20.5H24V19Z" fill="black"/>
</svg>
</button>
</div>
<script>
BX.Vue.create({
el: '#menu',
data: {
isOpenMenu: false,
isOpenCourseMenu: false,
isMobile: false,
isSubOpen: false,
display: 'none'
},
computed: {
isMobile() {
const w = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
return w < 1024;
}
},
methods: {
openMenu() {
this.isOpenMenu = !this.isOpenMenu;
document.getElementsByTagName('body')[0].classList.toggle('scroll-locked');
window.addEventListener('keyup', this.closeMenu);
},
closeMenu(event) {
if (event.target.classList.contains('menu-block') || event.keyCode === 27) {
this.isOpenMenu = false;
document.getElementsByTagName('body')[0].classList.remove('scroll-locked');
window.removeEventListener('keyup', this.closeMenu);
}
},
openCourseMenu() {
this.isOpenCourseMenu = !this.isOpenCourseMenu;
if (this.isOpenCourseMenu) {
document.getElementsByTagName('body')[0].classList.add('scroll-locked');
window.addEventListener('keyup', this.closeCourseMenu);
} else {
document.getElementsByTagName('body')[0].classList.remove('scroll-locked');
window.removeEventListener('keyup', this.closeCourseMenu);
}
},
closeCourseMenu(event) {
if (event.target.classList.contains('menu-block') || event.keyCode === 27) {
this.isOpenCourseMenu = false;
document.getElementsByTagName('body')[0].classList.remove('scroll-locked');
window.removeEventListener('keyup', this.closeCourseMenu);
}
},
openSub() {
this.isSubOpen = !this.isSubOpen;
},
isMobileFn() {
const w = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
this.isMobile = (w < 1024);
}
},
created() {
window.addEventListener("resize", this.isMobileFn);
document.querySelector('.menu-block').style.display = '';
document.querySelector('.menu-toggle').style.opacity = '1';
document.querySelector('.menu-nav__link').style.display = '';
this.display = 'block';
this.isMobileFn();
},
destroyed() {
window.removeEventListener("resize", this.isMobileFn);
}
});
</script>
</header>
<main class="content">
<div class="page style-update">
<div class="page-wrap">
<style>
.article-inner .rr-widget__title {
padding-top: 0 !important;
}
.article-inner div[data-retailrocket-markup-block] {
margin-top: -32px;
display: none;
}
.article-inner {
font-family: 'Graphik';
}
</style>
<div class="under_header_banner" data-type="under_header"><!-- Yandex.RTB R-A-13443663-10 -->
<div id="yandex_rtb_R-A-13443663-10"></div>
<script>
window.yaContextCb.push(() => {
Ya.Context.AdvManager.render({
"blockId": "R-A-13443663-10",
"renderTo": "yandex_rtb_R-A-13443663-10"
})
})
</script>
</div> <div data-area="article" data-title="Vim: плагины, .vimrc, NERDTree — четвёртая часть бесплатного онлайн-курса / Skillbox Media" class=" noFullClass">
<div class="article-inner">
<section class="top-section-detail-page ">
<div class="container">
<div class="article-preview-info">
<div class="article-preview-info__tags ">
<div class="tag article-preview-info__tag">
<a href="/media/code/"
class="tag-item programming">
Код </a>
</div>
</div>
<a class="info-hashtag article-preview-info__hashtag" href="/media/topic/articles/">
#статьи </a>
<ul class="info article-preview__info-box">
<li class="info-item"> <time class="info-text" datatime="#">7 окт 2022</time></li>
<li class="info-item hidden">
<span class="info-icon"><img src="/local/templates/media/images/icons/like.svg" alt=""></span>
<span class="info__text js-article-like-value">0</span>
</li>
</ul>
</div>
<div class="row">
<div class="top-section-detail-page__title-block col-xl-9 col-lg-10">
<div class="article-preview">
<h1 class="article-preview__title">Курс по Vim. Часть 4. Плагины, файл .vimrc и NERDTree</h1>
<p class="article-preview__description">Мы запустили бесплатный курс по легендарному редактору кода Vim. В нём 16 уроков. Сегодня — плагины, .vimrc и NERDTree.</p>
</div>
</div>
</div>
</div>
</section>
<section data-article-text
data-articleId="213357"
data-courseId="351"
>
<div class="container">
<noindex>
<div class="share" data-nosnippet>
<button class="share__handler-btn ">
<span class="share__handler-icon">
<svg width="11" height="12" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11 4.99902L6 0V2.99805C2.688 2.99805 0 5.68505 0 8.99805V11.498H0.0980225C0.765022 8.91205 3.107 6.99805 5.901 6.99805H6.00098V9.99805L11 4.99902Z" fill="currentColor"/>
</svg>
</span>
<span class="share__handler-text">Поделиться</span>
</button>
<div class="share__list">
<a href="#" class="share__item" data-code="vk">
<span class="share__item-icon share__item-icon--vk">
<svg width="9" height="5" viewBox="0 0 9 5" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.04776 4.98054H4.53996C4.62377 4.97136 4.70279 4.9361 4.76621 4.87951C4.81226 4.81209 4.83594 4.73139 4.83369 4.64925C4.83369 4.64925 4.82574 3.94629 5.1314 3.84125C5.43701 3.73621 5.826 4.51998 6.23879 4.82297C6.39281 4.95308 6.59128 5.01558 6.79053 4.99669L7.89399 4.98054C7.89399 4.98054 8.47355 4.94415 8.19965 4.46339C7.98372 4.08315 7.70589 3.743 7.37799 3.45744C6.68338 2.77872 6.77865 2.8878 7.61219 1.71216C8.12024 0.997077 8.32269 0.556717 8.25918 0.370875C8.14651 0.254767 7.98299 0.205914 7.82655 0.241594L6.58018 0.249674C6.52565 0.241067 6.46984 0.251007 6.42141 0.277954C6.37298 0.314507 6.33466 0.363228 6.31025 0.419356C6.18259 0.772814 6.0287 1.11586 5.8498 1.44552C5.29807 2.43936 5.07579 2.49188 4.98451 2.43128C4.77416 2.28584 4.82574 1.85356 4.82574 1.54248C4.82574 0.580957 4.96468 0.176954 4.55979 0.0719133C4.36879 0.0254376 4.17259 0.00505841 3.97631 0.0113129C3.62834 -0.0214164 3.27745 0.017045 2.94429 0.124433C2.8014 0.197154 2.69423 0.358753 2.76171 0.370875C2.90334 0.385518 3.03406 0.454932 3.12688 0.564795C3.21268 0.750336 3.25481 0.953675 3.24993 1.15868C3.24993 1.15868 3.32535 2.29392 3.07925 2.43532C2.91254 2.53228 2.68232 2.33432 2.18616 1.4334C2.01958 1.11848 1.87243 0.793298 1.74557 0.459754C1.72231 0.404013 1.68704 0.354309 1.64236 0.314316C1.58589 0.272672 1.52066 0.245006 1.45184 0.233514L0.268986 0.241594C0.181167 0.241154 0.0958013 0.271066 0.0268587 0.326434C-0.00595087 0.396174 -0.00882613 0.476652 0.0189202 0.548633C0.0189202 0.548633 0.947737 2.83932 1.99563 3.99477C2.51 4.60651 3.2568 4.96526 4.04776 4.98054Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Vkontakte</span>
</a>
<a href="#" class="share__item" data-code="tw">
<span class="share__item-icon share__item-icon--tw">
<svg width="9" height="7" viewBox="0 0 9 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.52788 0.00144284V0H5.9158L6.05754 0.027414C6.15204 0.0452114 6.23783 0.068535 6.31491 0.0973918C6.39201 0.126249 6.46661 0.159917 6.53872 0.198391C6.61083 0.236864 6.67623 0.276066 6.73492 0.315982C6.79311 0.355422 6.84533 0.397265 6.89158 0.441509C6.93733 0.486237 7.0087 0.49778 7.10568 0.476138C7.20266 0.454495 7.3071 0.424433 7.419 0.38596C7.5309 0.347487 7.64156 0.304201 7.75097 0.256104C7.86039 0.208007 7.92703 0.177469 7.95091 0.164484C7.97428 0.151022 7.98671 0.143808 7.98821 0.142841L7.98969 0.140677L7.99715 0.13707L8.00461 0.133463L8.01207 0.129856L8.01953 0.126249L8.02102 0.124084L8.02326 0.122642L8.02551 0.121199L8.02699 0.119034L8.03445 0.11687L8.04191 0.115427L8.04043 0.126249L8.03818 0.13707L8.03445 0.147891L8.03072 0.158713L8.02699 0.165927L8.02326 0.173141L8.01953 0.183962C8.01705 0.191176 8.01456 0.200793 8.01207 0.212819C8.00959 0.224845 7.98596 0.272935 7.9412 0.357103C7.89644 0.441271 7.84049 0.526637 7.77335 0.613208C7.70621 0.699778 7.64604 0.765182 7.59283 0.809434C7.53911 0.854162 7.50355 0.885421 7.48614 0.903219C7.46874 0.921492 7.4476 0.938323 7.42273 0.953718L7.38543 0.977525L7.37797 0.981132L7.37051 0.984739L7.36902 0.986903L7.36678 0.988346L7.36454 0.989789L7.36305 0.991953L7.35559 0.99556L7.34813 0.999168L7.34664 1.00133L7.3444 1.00277L7.34216 1.00422L7.34067 1.00638L7.33918 1.00855L7.33694 1.00999L7.3347 1.01143L7.33321 1.0136H7.37051L7.57939 0.970311C7.71865 0.941454 7.85168 0.906588 7.9785 0.865705L8.17992 0.800777L8.2023 0.793563L8.21349 0.789956L8.22095 0.786348L8.22841 0.782741L8.23587 0.779134L8.24333 0.775527L8.25825 0.773363L8.27317 0.77192V0.786348L8.26944 0.787791L8.26571 0.789956L8.26423 0.79212L8.26198 0.793563L8.25974 0.795006L8.25825 0.79717L8.25677 0.799334L8.25452 0.800777L8.25228 0.80222L8.25079 0.804384L8.24931 0.806548L8.24706 0.807991L8.24333 0.815205L8.2396 0.82242L8.23736 0.823862C8.23637 0.825305 8.20479 0.866181 8.14262 0.946504C8.08046 1.0273 8.04689 1.06818 8.04191 1.06915C8.03694 1.07059 8.02997 1.0778 8.02102 1.09079C8.01257 1.10425 7.95985 1.15788 7.86287 1.25166C7.76589 1.34545 7.67091 1.42889 7.57791 1.502C7.48441 1.57558 7.43716 1.666 7.43616 1.77325C7.43467 1.88002 7.42895 2.00074 7.419 2.13541C7.40905 2.27007 7.3904 2.41555 7.36305 2.57186C7.3357 2.72817 7.29342 2.90492 7.23623 3.10211C7.17904 3.29929 7.10941 3.49168 7.02735 3.67925C6.94529 3.86681 6.8595 4.03514 6.76998 4.18424C6.68046 4.33334 6.5984 4.45958 6.5238 4.56299C6.4492 4.66639 6.37336 4.76378 6.29626 4.85516C6.21918 4.94654 6.12171 5.04947 6.00384 5.16393C5.88547 5.27791 5.82082 5.34044 5.80988 5.3515C5.79844 5.36208 5.74971 5.40152 5.66365 5.46981C5.57812 5.53858 5.48611 5.60736 5.38763 5.67614C5.28966 5.74443 5.19964 5.80143 5.11758 5.84711C5.03552 5.8928 4.93655 5.94498 4.82067 6.00366C4.70529 6.06282 4.58046 6.11765 4.44618 6.16815C4.3119 6.21865 4.17016 6.26554 4.02096 6.30882C3.87176 6.35211 3.72753 6.38578 3.58827 6.40982C3.44903 6.43387 3.29112 6.45431 3.11456 6.47114L2.84973 6.49639V6.5H2.36483V6.49639L2.30142 6.49279C2.25915 6.49038 2.22433 6.48797 2.19698 6.48557C2.16963 6.48317 2.06643 6.46994 1.88739 6.44589C1.70835 6.42185 1.56785 6.3978 1.4659 6.37375C1.36395 6.34971 1.21225 6.30401 1.01083 6.23668C0.809413 6.16935 0.637087 6.10129 0.493854 6.03252C0.351121 5.96422 0.261601 5.92094 0.225293 5.90266C0.189485 5.88487 0.149201 5.86275 0.10444 5.83629L0.0373001 5.79661L0.0358156 5.79445L0.0335701 5.79301L0.0313321 5.79156L0.0298401 5.7894L0.0223801 5.78579L0.0149201 5.78219L0.0134355 5.78002L0.01119 5.77858L0.00895204 5.77714L0.00746003 5.77497L0.00597548 5.77281L0.00373001 5.77137H0V5.75694L0.00746003 5.75838L0.0149201 5.76054L0.0484902 5.76415C0.0708703 5.76655 0.131796 5.77016 0.231261 5.77497C0.330733 5.77978 0.436412 5.77978 0.548312 5.77497C0.660213 5.77016 0.774605 5.75934 0.891474 5.74251C1.00835 5.72568 1.14636 5.69682 1.30551 5.65594C1.46466 5.61505 1.61087 5.56648 1.74416 5.51021C1.87695 5.45346 1.97144 5.41114 2.02764 5.38324C2.08334 5.35583 2.16838 5.30484 2.28277 5.2303L2.45435 5.11848L2.45584 5.11632L2.45808 5.11487L2.46033 5.11343L2.46181 5.11127L2.4633 5.1091L2.46554 5.10766L2.46779 5.10622L2.46927 5.10405L2.47673 5.10189L2.48419 5.10044L2.48568 5.09323L2.48792 5.08602L2.49017 5.08457L2.49165 5.08241L2.43197 5.0788C2.39219 5.0764 2.35364 5.07399 2.31634 5.07159C2.27904 5.06918 2.2206 5.05836 2.14103 5.03912C2.06146 5.01988 1.97567 4.99103 1.88366 4.95255C1.79165 4.91408 1.70213 4.86838 1.6151 4.81548C1.52807 4.76258 1.46515 4.71857 1.42636 4.68346C1.38807 4.64883 1.33833 4.59978 1.27716 4.53629C1.21648 4.47233 1.16376 4.40668 1.119 4.33934C1.07424 4.27202 1.03148 4.19433 0.990699 4.10633L0.928774 3.97503L0.925044 3.96421L0.921314 3.95339L0.919076 3.94617L0.917584 3.93896L0.928774 3.9404L0.939964 3.94256L1.02202 3.95339C1.07674 3.9606 1.16253 3.963 1.27939 3.9606C1.39627 3.9582 1.47709 3.95339 1.52185 3.94617C1.56661 3.93896 1.59396 3.93414 1.60391 3.93174L1.61883 3.92814L1.63748 3.92453L1.65613 3.92092L1.65762 3.91876L1.65986 3.91731L1.6621 3.91587L1.66359 3.91371L1.64867 3.9101L1.63375 3.90649L1.61883 3.90289L1.60391 3.89928L1.58899 3.89567C1.57904 3.89327 1.56164 3.88846 1.53677 3.88124C1.5119 3.87403 1.44476 3.84757 1.33535 3.80189C1.22594 3.7562 1.1389 3.71171 1.07424 3.66842C1.00943 3.62501 0.947626 3.57754 0.889235 3.5263C0.831047 3.47436 0.767145 3.40751 0.697513 3.32575C0.627888 3.24399 0.565724 3.149 0.511012 3.04079C0.456308 2.93257 0.415277 2.82917 0.387922 2.73058C0.360676 2.63256 0.3427 2.53235 0.334217 2.43119L0.320781 2.27969L0.328241 2.28113L0.335701 2.2833L0.343161 2.2869L0.350621 2.29051L0.358081 2.29412L0.365541 2.29772L0.481172 2.34822C0.558264 2.38189 0.653998 2.41075 0.768383 2.43479C0.882775 2.45884 0.951154 2.47207 0.973534 2.47447L1.0071 2.47808H1.07424L1.07276 2.47592L1.07051 2.47447L1.06828 2.47303L1.06678 2.47087L1.0653 2.4687L1.06305 2.46726L1.06082 2.46582L1.05932 2.46365L1.05186 2.46004L1.0444 2.45644L1.04292 2.45427L1.04067 2.45283L1.03844 2.45139L1.03694 2.44922L1.02948 2.44562L1.02202 2.44201L1.02054 2.43984C1.01905 2.43888 0.99766 2.42349 0.956376 2.39367C0.915592 2.36337 0.872823 2.32418 0.828063 2.27608C0.783303 2.22798 0.738543 2.17749 0.693783 2.12458C0.64894 2.07156 0.609 2.01483 0.574422 1.95505C0.539614 1.89493 0.502806 1.81846 0.464014 1.72564C0.425721 1.6333 0.396627 1.54023 0.376731 1.44645C0.356843 1.35266 0.345653 1.26008 0.343161 1.1687C0.340677 1.07732 0.343161 0.999168 0.350621 0.93424C0.358081 0.869312 0.373001 0.795965 0.395382 0.714206C0.417762 0.632448 0.450093 0.545877 0.492362 0.454495L0.555772 0.317425L0.559502 0.306604L0.563232 0.295782L0.565478 0.29434L0.566962 0.292175L0.568454 0.290011L0.570692 0.288568L0.572938 0.290011L0.574422 0.292175L0.575914 0.29434L0.578152 0.295782L0.580398 0.297225L0.581882 0.29939L0.583374 0.301554L0.585612 0.302997L0.589342 0.310211L0.593072 0.317425L0.595318 0.318868L0.596802 0.321032L0.697513 0.429245C0.764653 0.501387 0.844229 0.581948 0.936234 0.670921C1.02825 0.759894 1.07922 0.806065 1.08916 0.809434C1.09912 0.813279 1.11154 0.824338 1.12646 0.842619C1.14138 0.860417 1.19112 0.902981 1.27567 0.970311C1.36022 1.03764 1.47087 1.1158 1.60764 1.20477C1.74441 1.29375 1.89609 1.38152 2.0627 1.46809C2.22931 1.55466 2.40835 1.63281 2.59982 1.70255C2.7913 1.77229 2.92558 1.81798 3.00266 1.83962C3.07975 1.86127 3.21154 1.88892 3.39804 1.92259C3.58454 1.95625 3.72505 1.9779 3.81954 1.98751C3.91403 1.99713 3.97869 2.00266 4.0135 2.00411L4.06572 2.00555L4.06423 1.99473L4.06199 1.98391L4.04707 1.89373C4.03712 1.83361 4.03215 1.74944 4.03215 1.64123C4.03215 1.53302 4.04085 1.43322 4.05826 1.34184C4.07567 1.25046 4.10178 1.15788 4.13659 1.0641C4.1714 0.970311 4.20547 0.895038 4.23879 0.838291C4.27261 0.78202 4.31687 0.717814 4.37158 0.645671C4.42629 0.573529 4.49716 0.498985 4.58419 0.422031C4.67122 0.345077 4.77069 0.276542 4.88259 0.216426C4.99449 0.15631 5.09769 0.110615 5.19218 0.0793563C5.28668 0.0480971 5.36625 0.0276521 5.4309 0.0180355C5.49556 0.00841898 5.52788 0.00288568 5.52788 0.00144284Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Twitter</span>
</a>
<a href="#" class="share__item" data-code="tg">
<span class="share__item-icon share__item-icon--tg">
<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.39589 3.04852C1.39589 3.04852 5.05491 1.51189 6.32392 0.9708C6.8104 0.754384 8.46012 0.0617918 8.46012 0.0617918C8.46012 0.0617918 9.22155 -0.241191 9.15809 0.494655C9.13692 0.797667 8.96773 1.85815 8.79854 3.00523C8.54472 4.62846 8.26976 6.40316 8.26976 6.40316C8.26976 6.40316 8.22746 6.90097 7.86791 6.98753C7.50836 7.0741 6.91613 6.68455 6.8104 6.59795C6.72577 6.53304 5.22411 5.5591 4.6742 5.08295C4.52614 4.9531 4.35695 4.6934 4.69533 4.39039C5.45676 3.67617 6.36622 2.78882 6.91613 2.2261C7.16995 1.96638 7.42374 1.36038 6.36622 2.09622C4.86456 3.15674 3.38403 4.15231 3.38403 4.15231C3.38403 4.15231 3.04561 4.36873 2.41111 4.17394C1.77657 3.97918 1.03631 3.71945 1.03631 3.71945C1.03631 3.71945 0.528726 3.39481 1.39589 3.04852Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Telegram</span>
</a>
<a href="#" class="share__item js-share-item-copy">
<span class="share__item-icon share__item-icon--copy">
<svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.19922 5.40327C4.37217 5.63449 4.59283 5.8258 4.84622 5.96425C5.09962 6.10269 5.37982 6.18501 5.66783 6.20564C5.95584 6.22627 6.24492 6.18471 6.51546 6.08379C6.78599 5.98287 7.03166 5.82495 7.2358 5.62074L8.44399 4.41255C8.81079 4.03277 9.01375 3.52412 9.00917 2.99615C9.00458 2.46818 8.79281 1.96313 8.41946 1.58978C8.04611 1.21644 7.54106 1.00466 7.01309 1.00008C6.48512 0.995488 5.97647 1.19845 5.59669 1.56525L4.904 2.25392" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.81002 4.59658C5.63707 4.36536 5.41641 4.17404 5.16302 4.0356C4.90962 3.89716 4.62942 3.81483 4.34141 3.79421C4.0534 3.77358 3.76432 3.81514 3.49379 3.91605C3.22325 4.01697 2.97758 4.17489 2.77344 4.3791L1.56525 5.58729C1.19845 5.96707 0.995488 6.47572 1.00008 7.0037C1.00466 7.53167 1.21644 8.03672 1.58978 8.41006C1.96313 8.78341 2.46818 8.99518 2.99615 8.99977C3.52412 9.00436 4.03277 8.80139 4.41255 8.43459L5.10122 7.74592" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</span>
<span class="share__item-text">Скопировать ссылку</span>
</a>
</div>
</div> <!-- //share -->
</noindex>
<div class="row">
<div class="col-xl-9 col-lg-8 col-poster">
<div class="article-poster">
<picture >
<img src="https://248006.selcdn.ru/main/iblock/13d/13db297022a812deda524def4f248b22/ffaec1b52bbbe20242d507e70669529d.png" itemprop='image' class='hidden-xs' />
</picture> <picture >
<img src="https://248006.selcdn.ru/main/iblock/13d/13db297022a812deda524def4f248b22/ffaec1b52bbbe20242d507e70669529d.png" itemprop='image' class='visible-xs' />
</picture> </div>
<noindex>
<p class="article-poster-text" data-nosnippet>
Иллюстрация: Polina Vari для Skillbox Media </p>
</noindex>
</div>
<div class="col-xl-3 col-lg-4 col-author">
<div class="article-author">
<div class="article-author__image">
<a href="/media/authors/konstantin-zotov/">
<img src="https://248006.selcdn.ru/main/iblock/cb6/cb6ebfb6abf59159bb9aa19e2ff1924b/c70f643c2bc534ae80311fe7aca5bdc2.png" alt="Константин Зотов">
</a>
</div>
<div class="article-author__info">
<div class="article-author__name">
Константин Зотов </div>
<div class="article-author__description">
Журналист, редактор. Фанат виртуальности во всех её видах — потому о ней и пишет. </div>
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="row flex-row-rev">
<div class="col-xl-3 col-lg-4 col-author">
<div class="js-article-banner" data-article-banner-mobile data-type="side_mounted" data-article-banner-sticky-start>
<!--AdFox START-->
<!--yandex_skillbox.media-->
<!--Площадка: Skillbox / Сквозной для застройщика Легенда / Боковой баннер сквозной для застройщика Легенда-->
<!--Категория: <не задана>-->
<!--Тип баннера: Media banner-->
<div id="adfox_176131540100027244"></div>
<script>
window.yaContextCb.push(()=>{
Ya.adfoxCode.create({
ownerId: 11649869,
containerId: 'adfox_176131540100027244',
params: {
p1: 'dkugb',
p2: 'p'
}
})
})
</script> </div>
<div class="js-article-banner" data-article-banner-mobile data-type="vertical" data-article-banner-sticky-end></div>
</div>
<div class="col-xl-9 col-lg-8 col-poster">
<div class="container container--setka">
<div class="js-article-banner" data-type="top"></div>
<div class="article-detail-text__setka" data-detail-text>
<div class="stk-post stk-layout_12col_18068 stk-theme_26309" data-stk="{"images":[{"id":41997,"alt":"","caption":""},{"id":42000,"alt":"","caption":""},{"id":41999,"alt":"","caption":""},{"id":42001,"alt":"","caption":""},{"id":41998,"alt":"","caption":""},{"id":41996,"alt":"","caption":""},{"id":41993,"alt":"","caption":""},{"id":41995,"alt":"","caption":""},{"id":41994,"alt":"","caption":""},{"id":41992,"alt":"","caption":""},{"id":41990,"alt":"","caption":""},{"id":41991,"alt":"","caption":""},{"id":41988,"alt":"","caption":""},{"id":41989,"alt":"","caption":""},{"id":41987,"alt":"","caption":""},{"id":41984,"alt":"","caption":""},{"id":41986,"alt":"","caption":""},{"id":41983,"alt":"","caption":""},{"id":41985,"alt":"","caption":""},{"id":41982,"alt":"","caption":""},{"id":41981,"alt":"","caption":""},{"id":41980,"alt":"","caption":""},{"id":41978,"alt":"","caption":""},{"id":41979,"alt":"","caption":""},{"id":41976,"alt":"","caption":""},{"id":41977,"alt":"","caption":""},{"id":41975,"alt":"","caption":""},{"id":41974,"alt":"","caption":""},{"id":41970,"alt":"","caption":""},{"id":41971,"alt":"","caption":""},{"id":41973,"alt":"","caption":""},{"id":41969,"alt":"","caption":""},{"id":41972,"alt":"","caption":""},{"id":41968,"alt":"","caption":""},{"id":41965,"alt":"","caption":""},{"id":41967,"alt":"","caption":""},{"id":41966,"alt":"","caption":""},{"id":41964,"alt":"","caption":""},{"id":41958,"alt":"","caption":""},{"id":41962,"alt":"","caption":""},{"id":41959,"alt":"","caption":""},{"id":41960,"alt":"","caption":""},{"id":41961,"alt":"","caption":""},{"id":41957,"alt":"","caption":""},{"id":41954,"alt":"","caption":""},{"id":41956,"alt":"","caption":""},{"id":41952,"alt":"","caption":""},{"id":41953,"alt":"","caption":""},{"id":41955,"alt":"","caption":""},{"id":41948,"alt":"","caption":""},{"id":41950,"alt":"","caption":""},{"id":41949,"alt":"","caption":""},{"id":41946,"alt":"","caption":""},{"id":41947,"alt":"","caption":""},{"id":41951,"alt":"","caption":""}]}" data-ui-id="post" data-ce-tag="post" data-reset-type="class" data-layout-type="auto" data-editor-version="3.2.8-rc1"><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><p class="stk-reset stk-theme_26309__mb_05" data-ce-tag="paragraph">За 16 уроков мы рассмотрим всё, что нужно для старта работы с Vim:</p><ul class="stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item">историю текстовых редакторов;</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">работу в режиме вставки, в командном режиме, режиме командной строки, визуальном режиме;</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">использование регулярных выражений и создание макросов;</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">плагины, пакетные менеджеры плагинов;</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">конфигурацию Vim, работу с файлом .vimrc (в частности, на примере файла .vimrc автора курса);</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">работу с Neovim;</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">настройку автодополнения.</li></ul><p class="stk-reset" data-ce-tag="paragraph">Сегодня будет три видеоурока. Подробно разберём плагины, .vimrc и NERDTree.</p></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph"><strong class="stk-reset">Как устроен курс</strong></h2><p class="stk-reset" data-ce-tag="paragraph">Мы публикуем видеоуроки и текстовые расшифровки — вы можете смотреть или читать теорию.</p><div class="valign-bottom stk-grid" data-ce-tag="grid"><div data-col-width="3" class="stk-grid-col" data-stk-css="" data-stk-css-m="" data-ce-tag="grid-col"><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/09114824082022_dfaaeed694eae97c85b434d102c0fe199eb9c461.png" data-image-id="39454" data-image-name="0.png" class="stk-image stk-reset" width="365" height="365" loading="lazy"/></div></figure></div><div data-col-width="9" class="stk-grid-col valign-bottom stk-grid-col_last" data-ce-tag="grid-col"><p class=" stk-reset stk-theme_26309__style_small_text stk-theme_26309__mb_05" data-ce-tag="paragraph"><strong class="stk-reset">Автор курса</strong></p><h3 class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Паша Калашников</h3><p class="stk-theme_26309__style_small_text stk-theme_26309__mb_0 stk-reset" data-ce-tag="paragraph">Тимлид в Purple Magic, продюсер видео в Red Magic, соведущий IT Way Podcast, автор курсов по этому вашему программированию. Любит Ruby.</p></div></div><div class="stk-grid" data-ce-tag="grid" data-stk-css="stk43mvx"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col" data-stk-css="" data-stk-css-m=""><p class="stk-reset stk-theme_26309__style_font_style-1629786048064 stk-theme_26309__mb_05" data-ce-tag="paragraph">В предыдущих частях:</p><ul class="stk-theme_26309__style_small_text stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-theme_26309__style_small_text stk-reset stk-list-item" data-ce-tag="list-item"><a href="https://skillbox.ru/media/code/kurs-po-vim-chast-1-istoriya-tekstovykh-redaktorov-i-evolyutsiya-vim/" target="_blank" class="stk-reset">Уроки 1–2. История текстовых редакторов и эволюция Vim</a></li><li class="stk-theme_26309__style_small_text stk-reset stk-list-item" data-ce-tag="list-item"><a href="https://skillbox.ru/media/code/kurs-po-vim-chast-2-rezhimy-vim-komandnyy-komandnoy-stroki-vstavki-i-vizualnyy/" target="_blank" class="stk-reset">Уроки 3–7. Всё о режимах Vim</a></li><li class="stk-theme_26309__style_small_text stk-reset stk-list-item" data-ce-tag="list-item"><a href="https://skillbox.ru/media/code/kurs-po-vim-chast-3-rabota-s-regulyarnymi-vyrazheniyami-i-makrosami-v-vim/" target="_blank" class="stk-reset">Уроки 8–10. Регулярные выражения, работа с окнами, макросы</a></li></ul></div></div></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h4 class="stk-reset stk-theme_26309__mb_0 stk-theme_26309__style_small_header" data-ce-tag="paragraph">Урок 11</h4><hr class="stk-theme_26309__mb_05 stk-theme_26309__separator_divider-1498128612642 stk-reset"/><h2 class="stk-theme_26309__style_large_header stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Плагины и пакетные менеджеры плагинов</strong></h2><figure class="stk-code_keep-ratio stk-reset stk-embed_rendered" data-embed-link="https://www.youtube.com/watch?v=EoA3Qj5-1Xc&list=PL8hRAtHSjAgZv7WFVDvQzzU-WoL-7jZGJ&index=11" data-ce-tag="embed"><code class="stk-code" style="--stk-embed-height-ratio:56.21%"><iframe class="embedly-embed" src="//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FEoA3Qj5-1Xc%3Flist%3DPL8hRAtHSjAgZv7WFVDvQzzU-WoL-7jZGJ&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DEoA3Qj5-1Xc&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FEoA3Qj5-1Xc%2Fhqdefault.jpg&key=8d3909c69dfb4ee29c710191d8dd756a&type=text%2Fhtml&schema=youtube" width="854" height="480" scrolling="no" title="YouTube embed" frameborder="0" allow="autoplay; fullscreen" allowfullscreen="true"></iframe></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Поговорим об инфраструктуре Vim: разберём, что такое плагины, пакетные менеджеры, как их настраивать, как использовать готовые сборки для разных языков программирования, и, наконец, познакомимся с Neovim.</p><p class="stk-reset" data-ce-tag="paragraph">Плагины — это те самые инструменты, которые позволяют Vim не отставать от современных IDE, хоть и в своём стиле. Сразу посоветуем отличный сервис для их поиска — <a href="https://vimawesome.com/" target="_blank" class="stk-reset">vimawesome.com</a>. Плагины там разделены по языкам программирования, стекам технологий, фичам и так далее.</p><p class="stk-reset" data-ce-tag="paragraph">После урока вы можете перейти на сайт и попробовать плагины для своего окружения. Мы же начнём с самых общих принципов работы с ними, подробно остановившись на парочке основных.</p><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Что такое пакетный менеджер</strong></h3><p class="stk-reset" data-ce-tag="paragraph">Пакетные менеджеры помогают устанавливать, обновлять и удалять программы. Если вы опытный пользователь Unix-подобных систем, вы точно с ними знакомы. В случае с Vim пакетными менеджерами называют плагины, которые позволяют легко устанавливать и удалять другие плагины.</p><p class="stk-reset" data-ce-tag="paragraph">Большинство пакетных менеджеров просто скачивают плагины с GitHub и выполняют установочные скрипты, которые в них заложены. Управление версиями в данном случае — не самая сильная их сторона, потому что конфликты версий в инфраструктуре Vim-плагинов очень редки.</p><p class="stk-reset" data-ce-tag="paragraph">Самый популярный пакетный менеджер для Vim — Vundle. Рассмотрим его более современный аналог под названием <a href="https://github.com/junegunn/vim-plug" target="_blank" class="stk-reset">vim-plug</a>. У него есть несколько преимуществ. Во-первых, он лучше совмещается с Neovim. Во-вторых, он более отзывчив к пользователю, то есть лучше описывает ошибки, которые могут возникнуть в процессе установки. Приведём один пример его использования.</p><p class="stk-reset" data-ce-tag="paragraph">Сначала установим vim-plug. В его Readme на GitHub есть подробная инструкция по установке в разных операционных системах:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13072506102022_5c20dcbcfbab07ab6c2df7e27444d5ac2afca569.png" data-image-id="41951" data-image-name="1.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Установка не всегда проходит без проблем; если что-то пошло не так, перейдите в Issues репозитория и поищите описание ситуации, похожей на вашу:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13072406102022_278cadb5c5a600fd354bbb4a32acf34407bf98f0.png" data-image-id="41947" data-image-name="2.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Скорее всего, нечто подобное уже с кем-то случалось — и благополучно разрешилось.</p><p class="stk-reset" data-ce-tag="paragraph">А мы тем временем открываем файл .vimrc:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13072406102022_bd473197c461193ea9b6d317f4c236910d065887.png" data-image-id="41946" data-image-name="3.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">В Linux-системах он по умолчанию находится в домашней директории. Загуглите, где он в вашей ОС. Это несложно.</p><p class="stk-reset" data-ce-tag="paragraph">В файле вводим строку <u class="stk-reset">call plug#begin ()</u>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13072406102022_e3039f248dd555899a396179b51a05be377f9973.png" data-image-id="41949" data-image-name="4.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Данная команда означает начало блока, который исполнится плагином vim-plug. Мы хотим установить плагин vim-sensible. Вводим название в поиске на сервисе <a class="stk-reset" href="http://vimawesome.com" target="_blank">vimawesome.com</a>. Переходим по ссылке на GitHub. Берём из ссылки имя пользователя GitHub и название репозитория:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13072506102022_ee673444daa2c4c150863fb4fe2e59385df85324.png" data-image-id="41950" data-image-name="5.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Вызываем в .vimrc метод <u class="stk-reset">Plug</u> и набираем в кавычках через слеш имя пользователя и название репозитория:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13072406102022_a3e9b924b0c79cb7169afa563a255fa0a5b1cadd.png" data-image-id="41948" data-image-name="6.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Вводим команду <u class="stk-reset">: PlugInstall</u>. Видим статус установки:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13085906102022_cae856732bd4226855875d839121e46dd85999a9.png" data-image-id="41955" data-image-name="7.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Плагин установлен!</p><p class="stk-reset" data-ce-tag="paragraph">По такому же принципу устанавливают практически все плагины в Vim. Конечно, есть и те, что не поддерживают установку через vim-plug, Vundle или иные пакетные менеджеры. Но с годами их становится всё меньше: люди реже пользуются плагинами, которые нельзя установить легко.</p><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Полезные плагины для Vim</strong></h3><p class="stk-reset" data-ce-tag="paragraph">Пройдёмся по самым часто используемым плагинам, которые может использовать каждый специалист вне зависимости от стека технологий.</p><p class="stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">vim-sensible.</strong> Плагин vim-sensible применяет общепринятые настройки Vim. Также он хорош, если вам нужно копаться на сервере в Vim, но вы там не один. Позже, если настройки этого плагина вас перестанут устраивать, можно его удалить.</p><p class="stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">vim-surround.</strong> Помогает легко работать с парными символами (скобки или кавычки). Например, с его помощью вы можете заменить любые парные символы на другие. Допустим, в этом коде нам нужно использовать интерполяцию в строке. В Ruby принято строки без интерполяции обрамлять в одинарные кавычки, а с интерполяцией — в двойные. Vim-surround позволяет, находясь внутри блока, нажать <strong class="stk-reset">cs ‘ ‘’.</strong> Сначала идёт символ одинарных кавычек — их нужно заменить, потом символ двойных — на них нужно заменить:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13085906102022_073efc852a65b7685aeef7707c1c1bd107b26868.png" data-image-id="41953" data-image-name="8.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Замена кавычек произошла, теперь можем легко использовать интерполяцию:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13085906102022_d0e289e355555cb39f9d7f499b6888c389473c54.png" data-image-id="41952" data-image-name="9.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">NERDTree</strong> — плагин для работы с деревом файлов. Мы подробно рассмотрим его в следующих уроках.</p><p class="stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">vim-commentary</strong> — плагин для комментирования кода в разных языках программирования.</p><p class="stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">FZF </strong>— плагин для нечёткого поиска по проекту. Ищет не только по коду и файлам, но и по коммитам, по буферам и так далее.</p><p class="stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">vim-airline </strong>— строка статуса внизу экрана. Другие плагины любят использовать эту строку для отображения информации. Да и в целом ориентироваться по файлу с помощью этой строки становится легче.</p><p class="stk-reset" data-ce-tag="paragraph">Остальные плагины и готовые сборки для языков программирования мы обсудим на следующих уроках.</p></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h4 class="stk-reset stk-theme_26309__mb_0 stk-theme_26309__style_small_header" data-ce-tag="paragraph">Урок 12</h4><hr class="stk-theme_26309__mb_05 stk-theme_26309__separator_divider-1498128612642 stk-reset"/><h2 class="stk-theme_26309__style_large_header stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Работа с файлом .vimrc</strong></h2><figure class="stk-code_keep-ratio stk-reset stk-embed_rendered" data-embed-link="https://www.youtube.com/watch?v=IaLEDqFcJ1s&list=PL8hRAtHSjAgZv7WFVDvQzzU-WoL-7jZGJ&index=12" data-ce-tag="embed"><code class="stk-code" style="--stk-embed-height-ratio:56.21%"><iframe class="embedly-embed" src="//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FIaLEDqFcJ1s%3Flist%3DPL8hRAtHSjAgZv7WFVDvQzzU-WoL-7jZGJ&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DIaLEDqFcJ1s&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FIaLEDqFcJ1s%2Fhqdefault.jpg&key=8d3909c69dfb4ee29c710191d8dd756a&type=text%2Fhtml&schema=youtube" width="854" height="480" scrolling="no" title="YouTube embed" frameborder="0" allow="autoplay; fullscreen" allowfullscreen="true"></iframe></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">.vimrc</strong> — по умолчанию основной файл, в котором хранятся все настройки вашего редактора. Как правило, в нём пишут команды Vim, которые можно вызывать в режиме командной строки. То есть, по сути, настройка Vim через .vimrc — это выполнение всех команд, которые написаны в .vimrc. Исключение составляют команды, которые относятся к конкретным плагинам, — например, vim-plug (см. предыдущий урок).</p><p class="stk-reset" data-ce-tag="paragraph">Попробуем с вами основные настройки, которые можно делать в .vimrc.</p><p class="stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Команда</strong> <u class="stk-reset"><strong class="stk-reset">: set hlsearch</strong></u> изменяет настройки подсветки поиска в редакторе: после её ввода любой поиск будет подсвечиваться до момента закрытия редактора. Добавим эту команду в .vimrc — и теперь эта настройка будет включаться в редакторе по умолчанию:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13085906102022_26df41bdfacbababd13ce5a2ed7e751b3c19643a.png" data-image-id="41956" data-image-name="10.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Проверяем! Закрываем редактор. Открываем заново и выполняем поиск. Работает!</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13085906102022_6451db2226570ea0b99a95968d54a6a08d58b1f8.png" data-image-id="41954" data-image-name="11.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">В предыдущих уроках <a href="https://skillbox.ru/media/code/kurs-po-vim-chast-3-rabota-s-regulyarnymi-vyrazheniyami-i-makrosami-v-vim/" target="_blank" class="stk-reset">мы уже сетовали</a>, что переход между окнами в Vim довольно сложный: комбинация <strong class="stk-reset">Ctrl + w и направление</strong>. Переназначим этот переход на просто <strong class="stk-reset">Ctrl и направление</strong>. Назначим другой набор клавиш для перехода между окнами. Как нам это сделать?</p><p class="stk-reset" data-ce-tag="paragraph">В режиме командной строки <u class="stk-reset">есset</u> есть команда для перехода между окнами <u class="stk-reset">: wincmd</u>. В качестве аргумента она принимает направление перехода. Воспользуемся этой командой для настройки в нашем .vimrc:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13102606102022_79a3bf1b60dcd0c001f9454c21d4401a9576e013.png" data-image-id="41957" data-image-name="12.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Для назначения клавиш в Vim существует команда <u class="stk-reset">map</u>, которая принимает два аргумента: коллекция клавиш, которые надо нажать, и действие, которое нужно выполнить:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13102706102022_44e69e18d5579b310b71a78d394ed8c7a91c182f.png" data-image-id="41961" data-image-name="13.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Вы можете назначить комбинацию клавиш отдельно для каждого режима:</p><ul class="stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset"><strong class="stk-reset">nmap</strong></u> (normal mode) назначается только для командного режима;</li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset"><strong class="stk-reset">imap</strong></u> (insert mode) — для режима ввода;</li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset"><strong class="stk-reset">vmap</strong></u> (visual mode) — для визуального режима;</li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset"><strong class="stk-reset">smap</strong></u> (select mode) — для режима выделения;</li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset"><strong class="stk-reset">cmap</strong></u> (command-line mode) — для режима командной строки.</li></ul><p class="stk-reset" data-ce-tag="paragraph">Мы хотим назначить переход между окнами только в командном режиме, поэтому вводим <u class="stk-reset">nmap <C-k>: wincmd k<CR></u>, где <u class="stk-reset">nmap</u> — назначение для командного режима, а <C-k> —комбинация клавиш <strong class="stk-reset">Ctrl + k</strong>.</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13102706102022_854dea6f537eb50a7df2fcca1a632655ba83fb34.png" data-image-id="41960" data-image-name="14.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Далее идёт команда, которая вызывается комбинацией клавиш <u class="stk-reset">: wincmd k<CR></u>. <u class="stk-reset"><CR></u> — это по умолчанию обозначение клавиши <strong class="stk-reset">Enter</strong>. Она тут нужна, потому что после ввода команды нужно нажать <strong class="stk-reset">Enter</strong>. Пробуем. Перезапускаем редактор. Открываем два окна. Нажимаем <strong class="stk-reset">Ctrl + k</strong>. Работает!</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13102606102022_35e8ec2c216ebe3b8a886221f50a89fb11b30057.png" data-image-id="41959" data-image-name="15.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Но мы видим, что команда <u class="stk-reset">: wincmd k</u> отобразилась внизу. Это не обязательно — ведь нам не хочется, чтобы постоянно висело напоминание о переходе между окнами. Возвращаемся в .vimrc и добавляем аргумент <u class="stk-reset"><silent></u>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13102706102022_977ecce833acf31fb612a48f20161dd32ced1cab.png" data-image-id="41962" data-image-name="16.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Этот аргумент убирает вывод команды, которая исполняется в редакторе. Пробуем:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13102606102022_3511985f8d2fe60f5a689701dcfbe84110df1893.png" data-image-id="41958" data-image-name="17.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Переход работает, команда не отображается. Остаётся только повторить эту настройку для переходов в другие стороны.</p><p class="stk-reset" data-ce-tag="paragraph">Теперь назначим комбинацию клавиш, которая будет отвечать за сохранение. Вводим: <u class="stk-reset">map <F2> <Esc>: w<CR></u>.</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13124406102022_5df0b482fb1dc77b26b81c121d5af0d3e5869e14.png" data-image-id="41964" data-image-name="18.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Нажатие <strong class="stk-reset">Esc</strong> по умолчанию будет вызывать переход в командный режим, после чего нужно будет ввести <u class="stk-reset">: w</u> и нажать <strong class="stk-reset">Enter</strong>. Делаем аналогичные назначения на закрытие без сохранения:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13124406102022_4cbe6f4354dda2f27002951462e6105f47be6d89.png" data-image-id="41966" data-image-name="19.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">И на сохранение с закрытием:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13124406102022_2d42bcd147bbaf6c3e403c3df1bc46190d6f5651.png" data-image-id="41967" data-image-name="20.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Отображение номеров строк в Vim можно написать как <u class="stk-reset">set nu</u> и как <u class="stk-reset">set number</u>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13243606102022_0cd04c0ea28937a818e00687d4f61092419aea81.jpg" data-image-id="41980" data-image-name="01231.jpg" class="stk-image stk-reset" width="1540" height="866" loading="lazy"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Следующая настройка, <u class="stk-reset">set nocompatible</u>, отключает совместимость Vim с Vi:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13124406102022_fd855cfe5fcc2e450b54422f60ca2e4a0b277aab.png" data-image-id="41965" data-image-name="22.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Этого требуют многие современные плагины, потому что такая совместимость приводит к непредсказуемым последствиям в их работе. Дело в том, что поддержкой совместимости именно с Vi практически никто не занимается. Советуем добавить эту настройку, если не вы не ярый фанат Vi.</p><p class="stk-reset" data-ce-tag="paragraph">Следующие настройки, <u class="stk-reset">filetype on</u> и <u class="stk-reset">syntax on</u>, регулируют подсветку кода в Vim:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13124406102022_a4fda8a8daf91ce2662aa3054d135a8d8c1242a8.png" data-image-id="41968" data-image-name="23.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Без первой из них большинство плагинов отлично справляются сами, включая специальные функции для расширений файлов. Некоторые даже требуют её отключить — например, в наших настройках Vim написано <u class="stk-reset">filetype off</u>. Советуем оставить <u class="stk-reset">filetype on</u> до тех пор, пока не потребуется обратное.</p><p class="stk-reset" data-ce-tag="paragraph">Вы также можете настроить подсветку строки и колонки, в которой находится курсор, с помощью <u class="stk-reset">set cursorline</u> и <u class="stk-reset">set cursorcolumn</u>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13135306102022_a6433e3d0e387dfcc17fb3247071ca7d850a189e.png" data-image-id="41972" data-image-name="24.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Выглядит это так:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13135206102022_d923d832852c84ff8cb1d764c150f8a33ddaf2bc.png" data-image-id="41969" data-image-name="25.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">В нашем случае эти настройки не добавлены, потому что лишние линии отвлекают. Правда, для <u class="stk-reset">set cursorcolumn</u> можно добавить назначение на клавишу <strong class="stk-reset">F8</strong>, чтобы иногда проверять выравнивание форматировании кода. Это полезно, например, когда требуется найти потерявшуюся закрывающую скобку. Как именно включать и отключать настройки по клавише, мы обсудим на следующих уроках.</p><p class="stk-reset" data-ce-tag="paragraph">Команда <u class="stk-reset">set nowrap</u> не будет переносить длинные строки:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13135306102022_e232256a49fa7e721d9a6532e6c1427f31d3174c.png" data-image-id="41973" data-image-name="26.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Команда <u class="stk-reset">set history=1000</u> сохраняет историю стольких команд командной строки, сколько вы укажете:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13135306102022_f9b0de1e9b4ae52e91fcaefb97f3a0c121b34237.png" data-image-id="41971" data-image-name="27.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">По умолчанию их 20.</p><p class="stk-reset" data-ce-tag="paragraph">Следующая наша задача — установка цветовой схемы. Предлагаем скачать одну из самых популярных цветовых схем для Vim — Molokai:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13135206102022_699184ca50692a14175429d1c4431ae86d6bbbb6.png" data-image-id="41970" data-image-name="28.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Цветовые схемы Vim хранятся в директории<u class="stk-reset"> <strong class="stk-reset">~/.vim/colors</strong></u>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13225906102022_da370518f8b52faddfe465175846d7d4775a0897.png" data-image-id="41974" data-image-name="29.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Скачаем и положим в эту папку файл цветовой схемы. В Linux это делается с помощью команды <u class="stk-reset">curl -o molokai.vim https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim</u>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13230006102022_ddace1f881c1a08e89577b760a2164f86af39d29.png" data-image-id="41975" data-image-name="30.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Переходим в наш файл .vimrc и задаём нашу цветовую схему. Закрываем и открываем Vim. Цветовая схема применилась. Красота!</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13230006102022_573d3a90bd6b0e2cffb974dbb2c1ad97b00d4e0f.png" data-image-id="41977" data-image-name="31.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Вы можете не только скачивать готовые цветовые схемы, но и изменять их, а также создавать свои. Откроем файл, который мы скачали:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13230006102022_c5ca533415fa6b78fa5b8c55ea64bd5856c8ef38.png" data-image-id="41976" data-image-name="32.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Первые строки кода — в основном про совместимость схемы с редактором. А вот со строки 47 начинается сама цветовая схема. Как видим, здесь есть знакомые каждому программисту обозначения: <u class="stk-reset">Boolean</u>, <u class="stk-reset">Character</u>, <u class="stk-reset">Constant</u> и так далее:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13230006102022_add7766bc49df29a6c5ca98a947824619af27964.png" data-image-id="41979" data-image-name="33.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Поменяем, например, цвет Boolean-значений на белый. Так как у нас 256-цветный терминал, поменяем цвет именно в модуле, который отвечает за его поддержку:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13230006102022_029ff492d4a8bb8b3b13a746fff4f416396d012a.png" data-image-id="41978" data-image-name="34.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Закрываем Vim, открываем заново Ruby-файл. Вводим Boolean-значения <u class="stk-reset">true</u> и <u class="stk-reset">false</u>. Они стали белыми:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13250406102022_c1529f4ca453e127db639f0fd734b552d2e57fcf.png" data-image-id="41981" data-image-name="35.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Аналогично можно поменять всю цветовую схему на ваше усмотрение. С этим можно играться несколько часов!</p><p class="stk-reset" data-ce-tag="paragraph">Теперь настроим статус-бар. Можно сразу накатить кучу фич с помощью плагина vim-airline, но для того, чтобы понимать, как его настраивать, попробуем сперва настроить бар самостоятельно. Вводим <u class="stk-reset">: help statusline</u>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13250506102022_4448049c38bfa05c5072d0c36ffc2002cbcae561.png" data-image-id="41982" data-image-name="36.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Разберём лишь несколько очевидных фич, которые уже реализованы в vim-airline.</p><p class="stk-reset" data-ce-tag="paragraph">Открываем .vimrc-файл. Вначале нужно очистить статуслайн. Для этого пишем строку кода <u class="stk-reset">set statusline=</u>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13250506102022_4a275c7c8711ee6ddebf41f0a6675d75ce81243f.png" data-image-id="41985" data-image-name="37.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Теперь на следующей строке пишем <u class="stk-reset">set statusline += set statusline+=\ %F\ %R</u>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13250506102022_4278c750599d7457b6d8b1a9e7651bb8f886bd81.png" data-image-id="41983" data-image-name="38.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Параметр <strong class="stk-reset">F</strong> здесь означает вывод полного адреса файла, а параметр <strong class="stk-reset">R</strong> показывает RO, если файл имеет статус read-only. Далее добавим текущую ветку Git. Сперва нам нужно получить название текущей ветки. Создадим переменную внутри .vimrc: <u class="stk-reset">let gitBranch=system («git rev-parse --abbrev-ref HEAD»)</u>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13250506102022_006866f50e658fdfce99d82d7fdb7d49c6d3f3dc.png" data-image-id="41986" data-image-name="39.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">С помощью такой команды можно получить текущую ветку в Git-репозитории. Как таковой интерполяции в .vimrc нет, поэтому будем использовать лайфхак. Он помогает выполнить действия при отсутствии важных функций типа интерполяции.</p><p class="stk-reset" data-ce-tag="paragraph">Вводим следующую строку <u class="stk-reset">execute «set statusline +=». gitBranch</u>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13250506102022_0fac5d280bca55f7f3747958cccfe7e38d2e7886.png" data-image-id="41984" data-image-name="40.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Проверяем! Значение из переменной <u class="stk-reset">gitBranch</u> добавлены в статус-бар:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13265406102022_6bb40952ffaf9caa95039c00148d6c59293239c6.png" data-image-id="41987" data-image-name="41.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Теперь давайте в правую часть статус-бара добавим следующие данные: <u class="stk-reset">set statusline+=\ Row:\ %l\ Col:\ %c\ Percent:\ %p%%</u>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13265506102022_cc65cd7be7e06db407eca497a9fb42e3fb3074f5.png" data-image-id="41989" data-image-name="42.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Здесь <u class="stk-reset">%l</u> — номер строки, <u class="stk-reset">%c</u> — номер столбца, а <u class="stk-reset">%p</u> выводит местонахождение курсора в процентном соотношении к размеру файла.</p><p class="stk-reset" data-ce-tag="paragraph">Впрочем, лучше действительно поставить vim-airline и использовать его. Давайте так и сделаем. Добавляем <u class="stk-reset">Plug 'vim-airline/vim-airline</u> и вводим команду <u class="stk-reset">: PlugInstall</u>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13265506102022_a3c3ee6d37dc6053769d900583fc89dd669679b5.png" data-image-id="41988" data-image-name="43.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Всё, готово! Красивый статус-бар!</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13265506102022_b32762a7028bd5dd4034db8c7aa16d23fe33953a.png" data-image-id="41991" data-image-name="44.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Это все настройки, которые мы хотели вам показать в этом уроке. Но их существует ещё множество. Можно сохранять их, переносить на разные компьютеры, устанавливать заново после обновления системы. Просто сложите нужные файлы в нужные места и перезагрузите редактор! Не во всех современные IDE есть такая возможность.</p><p class="stk-reset" data-ce-tag="paragraph">Также советуем создать собственный репозиторий для настройки рабочего окружения. Такие репозитории (их ещё называют dotfiles) обычно имеют одну команду для установки всего, что нужно, на свежую ОС. Например, у автора этого курса есть собственный репозиторий dotfiles, в котором сохранены все нужные настройки Vim. Хранятся они в файле .vimrc.</p><p class="stk-reset" data-ce-tag="paragraph">Советуем сразу добавлять в глобальный файл <strong class="stk-reset">.gitignore</strong> файлы с расширением <strong class="stk-reset">.swp</strong> и <strong class="stk-reset">.swn</strong>. Это типы файлов, которые Vim создаёт, когда вы редактируете другие файлы. Чтобы случайно не закоммитить их в репозиторий, лучше сразу сделать глобальную настройку на всю систему.</p><p class="stk-reset" data-ce-tag="paragraph">Добавлять эти файлы в настройки конкретного репозитория — очень плохой тон: не факт, что в вашем проекте все будут использовать Vim. Такие настройки должны быть настроены у каждого лично.</p></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h4 class="stk-reset stk-theme_26309__mb_0 stk-theme_26309__style_small_header" data-ce-tag="paragraph">Урок 13</h4><hr class="stk-theme_26309__mb_05 stk-theme_26309__separator_divider-1498128612642 stk-reset"/><h2 class="stk-theme_26309__style_large_header stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Плагин NERDTree</strong></h2><figure class="stk-code_keep-ratio stk-reset stk-embed_rendered" data-embed-link="https://www.youtube.com/watch?v=ThvU_om0_QA&list=PL8hRAtHSjAgZv7WFVDvQzzU-WoL-7jZGJ&index=13" data-ce-tag="embed"><code class="stk-code" style="--stk-embed-height-ratio:56.21%"><iframe class="embedly-embed" src="//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FThvU_om0_QA%3Flist%3DPL8hRAtHSjAgZv7WFVDvQzzU-WoL-7jZGJ&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DThvU_om0_QA&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FThvU_om0_QA%2Fhqdefault.jpg&key=8d3909c69dfb4ee29c710191d8dd756a&type=text%2Fhtml&schema=youtube" width="854" height="480" scrolling="no" title="YouTube embed" frameborder="0" allow="autoplay; fullscreen" allowfullscreen="true"></iframe></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">NERDTree — самый популярный плагин для просмотра дерева файлов в проекте и управления им. Разберём, как им пользоваться.</p><p class="stk-reset" data-ce-tag="paragraph">Устанавливаем плагин с помощью vim-plug (это займёт секунд пять):</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13265506102022_8063604dd999d0cf7824bf2d762e7aec92dc80ab.png" data-image-id="41990" data-image-name="45.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Перезагружаем редактор:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13322606102022_a4098694b657894b47b05d776db7dbc42b93873b.png" data-image-id="41992" data-image-name="46.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Чтобы открыть окно с деревом файлов, вводим команду <u class="stk-reset">: NERDTree</u>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13322706102022_6f65c72a2e521b47a98f05ae6b2aefea6231788f.png" data-image-id="41994" data-image-name="47.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Вы можете забиндить её на любую комбинацию клавиш. Более того, существует команда <u class="stk-reset">: NERDTreeToggle</u>, которая откроет NERDTree, если он закрыт, и закроет, если открыт. У нас эта команда находится на комбинации <strong class="stk-reset">Ctrl + f</strong>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13322706102022_2bd8835c248a902cdccc2cd0b38dae42a281d62b.png" data-image-id="41995" data-image-name="48.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">По умолчанию NERDTree считает корневой директорией ту, откуда запустили vim. Папки и файлы открываются нажатием на клавишу <strong class="stk-reset">о</strong>. По умолчанию файлы откроются в окне справа, а папки развернутся. Если хотите открыть файл в новом окне, нажмите <strong class="stk-reset">i</strong>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13322606102022_62f97ae2d479cb51d2b0a585d52ff04ac62c5d22.png" data-image-id="41993" data-image-name="49.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Те же правила работают при нажатии клавиши <strong class="stk-reset">s</strong>, только разделение окон будет вертикальным. Комбинация <strong class="stk-reset">Shift + i</strong> показывает скрытые файлы:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13322706102022_8bf086f873b95ce52c3bfd70ab21a972659fd71b.png" data-image-id="41996" data-image-name="50.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Повторное нажатие снова их скроет. Добавление файла или папки делается следующим образом: перейдите в директорию, в которой хотите их создать, нажмите <strong class="stk-reset">ma</strong>. Вводите название файла. Если в конце названия поставить слеш, будет создана папка:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13331906102022_a2b2a7e8a12f7a5bcb06d670c8c4c0b528df1181.png" data-image-id="41998" data-image-name="51.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Если вы хотите создать файл в папке, которой не существует, вводите полный адрес файла, и папки будут созданы автоматически.</p><p class="stk-reset" data-ce-tag="paragraph">Чтобы изменить название или адрес файла, вводим <strong class="stk-reset">mm</strong> и новое название:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13332006102022_a8d7648b0c613f77fbecaf5e3c21f4f5f54f8adb.png" data-image-id="42001" data-image-name="52.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Для копирования вводим <strong class="stk-reset">mc</strong> и новое название:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13332006102022_5c76b7f7a16e997cd91291fa4057fc9dccda640b.png" data-image-id="41999" data-image-name="53.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Для удаления файла вводим <strong class="stk-reset">md</strong> и подтверждаем нажатием на <strong class="stk-reset">Enter</strong> или<strong class="stk-reset"> y</strong>:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13332006102022_407533df55b377672aa6f491085be4935ed0ec69.png" data-image-id="42000" data-image-name="54.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Важное отличие NERDTree от большинства деревьев файлов, к которым мы привыкли, — оно не обновляется автоматически. Если у вас появился или удалился файл или обновилось его имя, нужно нажать <strong class="stk-reset">Shift + r</strong>, чтобы файлы обновились:</p><figure class="stk-reset stk-image-figure" data-ce-tag="image-figure"><div class="stk-mask" data-ce-tag="mask"><img src="/upload/setka_images/13331906102022_378b987ff41a2f723f01dd66c5f9c0cbd2c7dfcd.png" data-image-id="41997" data-image-name="55.png" width="1540" height="866" loading="lazy" class="stk-image stk-reset"/></div><figcaption style="display:block" class="stk-reset stk-description" data-ce-tag="description"><em class="stk-reset">Скриншот: Skillbox Media</em></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Вот и все основные фичи этого плагина. В следующем уроке мы поговорим о плагинах для языков программирования.</p><div class="stk-grid" data-ce-tag="grid" data-stk-css="stktEj7g"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col" data-stk-css="" data-stk-css-m=""><p class="stk-reset stk-theme_26309__style_small_text stk-theme_26309__mb_05" data-ce-tag="paragraph"><strong class="stk-reset">Читайте также:</strong></p><ul class="stk-theme_26309__style_small_text stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-theme_26309__style_small_text stk-reset stk-list-item" data-ce-tag="list-item"><a href="https://skillbox.ru/media/code/kak-pisat-kod-bystro-i-effektivno-emacs-vim-i-drugie-redaktory-dlya-khaskelista/" target="_blank" class="stk-reset">Как писать код быстро и эффективно: Emacs, Vim и другие редакторы для хаскелиста</a></li><li class="stk-theme_26309__style_small_text stk-reset stk-list-item" data-ce-tag="list-item"><a href="https://skillbox.ru/media/code/story-pavel-makarov/" target="_blank" class="stk-reset">«Мне казалось, что писать код — всё равно что строить космические корабли»</a></li><li class="stk-theme_26309__style_small_text stk-reset stk-list-item" data-ce-tag="list-item"><a href="https://skillbox.ru/media/code/chto_takoe_api/" target="_blank" class="stk-reset">Что такое API и как он помогает в создании программных систем</a></li></ul></div></div></div></div><style data-stk-css="stktEj7g" media="all" class="">
[data-stk-css="stktEj7g"]:not(#stk):not(#stk):not(style) {
padding: 20px;
background-color: rgba(254, 245, 224, 1)
}
</style><style data-stk-css="stk43mvx" media="all" class="">
[data-stk-css="stk43mvx"]:not(#stk):not(#stk):not(style) {
padding: 20px;
background-color: rgba(254, 245, 224, 1)
}
</style></div> </div>
</div>
</div>
</div>
<div class="col-xl-9 col-lg-8 col-poster">
<div class="article-preview-info">
</div>
</div>
<noindex>
<div class="share" data-nosnippet>
<button class="share__handler-btn ">
<span class="share__handler-icon">
<svg width="11" height="12" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11 4.99902L6 0V2.99805C2.688 2.99805 0 5.68505 0 8.99805V11.498H0.0980225C0.765022 8.91205 3.107 6.99805 5.901 6.99805H6.00098V9.99805L11 4.99902Z" fill="currentColor"/>
</svg>
</span>
<span class="share__handler-text">Поделиться</span>
</button>
<div class="share__list">
<a href="#" class="share__item" data-code="vk">
<span class="share__item-icon share__item-icon--vk">
<svg width="9" height="5" viewBox="0 0 9 5" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.04776 4.98054H4.53996C4.62377 4.97136 4.70279 4.9361 4.76621 4.87951C4.81226 4.81209 4.83594 4.73139 4.83369 4.64925C4.83369 4.64925 4.82574 3.94629 5.1314 3.84125C5.43701 3.73621 5.826 4.51998 6.23879 4.82297C6.39281 4.95308 6.59128 5.01558 6.79053 4.99669L7.89399 4.98054C7.89399 4.98054 8.47355 4.94415 8.19965 4.46339C7.98372 4.08315 7.70589 3.743 7.37799 3.45744C6.68338 2.77872 6.77865 2.8878 7.61219 1.71216C8.12024 0.997077 8.32269 0.556717 8.25918 0.370875C8.14651 0.254767 7.98299 0.205914 7.82655 0.241594L6.58018 0.249674C6.52565 0.241067 6.46984 0.251007 6.42141 0.277954C6.37298 0.314507 6.33466 0.363228 6.31025 0.419356C6.18259 0.772814 6.0287 1.11586 5.8498 1.44552C5.29807 2.43936 5.07579 2.49188 4.98451 2.43128C4.77416 2.28584 4.82574 1.85356 4.82574 1.54248C4.82574 0.580957 4.96468 0.176954 4.55979 0.0719133C4.36879 0.0254376 4.17259 0.00505841 3.97631 0.0113129C3.62834 -0.0214164 3.27745 0.017045 2.94429 0.124433C2.8014 0.197154 2.69423 0.358753 2.76171 0.370875C2.90334 0.385518 3.03406 0.454932 3.12688 0.564795C3.21268 0.750336 3.25481 0.953675 3.24993 1.15868C3.24993 1.15868 3.32535 2.29392 3.07925 2.43532C2.91254 2.53228 2.68232 2.33432 2.18616 1.4334C2.01958 1.11848 1.87243 0.793298 1.74557 0.459754C1.72231 0.404013 1.68704 0.354309 1.64236 0.314316C1.58589 0.272672 1.52066 0.245006 1.45184 0.233514L0.268986 0.241594C0.181167 0.241154 0.0958013 0.271066 0.0268587 0.326434C-0.00595087 0.396174 -0.00882613 0.476652 0.0189202 0.548633C0.0189202 0.548633 0.947737 2.83932 1.99563 3.99477C2.51 4.60651 3.2568 4.96526 4.04776 4.98054Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Vkontakte</span>
</a>
<a href="#" class="share__item" data-code="tw">
<span class="share__item-icon share__item-icon--tw">
<svg width="9" height="7" viewBox="0 0 9 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.52788 0.00144284V0H5.9158L6.05754 0.027414C6.15204 0.0452114 6.23783 0.068535 6.31491 0.0973918C6.39201 0.126249 6.46661 0.159917 6.53872 0.198391C6.61083 0.236864 6.67623 0.276066 6.73492 0.315982C6.79311 0.355422 6.84533 0.397265 6.89158 0.441509C6.93733 0.486237 7.0087 0.49778 7.10568 0.476138C7.20266 0.454495 7.3071 0.424433 7.419 0.38596C7.5309 0.347487 7.64156 0.304201 7.75097 0.256104C7.86039 0.208007 7.92703 0.177469 7.95091 0.164484C7.97428 0.151022 7.98671 0.143808 7.98821 0.142841L7.98969 0.140677L7.99715 0.13707L8.00461 0.133463L8.01207 0.129856L8.01953 0.126249L8.02102 0.124084L8.02326 0.122642L8.02551 0.121199L8.02699 0.119034L8.03445 0.11687L8.04191 0.115427L8.04043 0.126249L8.03818 0.13707L8.03445 0.147891L8.03072 0.158713L8.02699 0.165927L8.02326 0.173141L8.01953 0.183962C8.01705 0.191176 8.01456 0.200793 8.01207 0.212819C8.00959 0.224845 7.98596 0.272935 7.9412 0.357103C7.89644 0.441271 7.84049 0.526637 7.77335 0.613208C7.70621 0.699778 7.64604 0.765182 7.59283 0.809434C7.53911 0.854162 7.50355 0.885421 7.48614 0.903219C7.46874 0.921492 7.4476 0.938323 7.42273 0.953718L7.38543 0.977525L7.37797 0.981132L7.37051 0.984739L7.36902 0.986903L7.36678 0.988346L7.36454 0.989789L7.36305 0.991953L7.35559 0.99556L7.34813 0.999168L7.34664 1.00133L7.3444 1.00277L7.34216 1.00422L7.34067 1.00638L7.33918 1.00855L7.33694 1.00999L7.3347 1.01143L7.33321 1.0136H7.37051L7.57939 0.970311C7.71865 0.941454 7.85168 0.906588 7.9785 0.865705L8.17992 0.800777L8.2023 0.793563L8.21349 0.789956L8.22095 0.786348L8.22841 0.782741L8.23587 0.779134L8.24333 0.775527L8.25825 0.773363L8.27317 0.77192V0.786348L8.26944 0.787791L8.26571 0.789956L8.26423 0.79212L8.26198 0.793563L8.25974 0.795006L8.25825 0.79717L8.25677 0.799334L8.25452 0.800777L8.25228 0.80222L8.25079 0.804384L8.24931 0.806548L8.24706 0.807991L8.24333 0.815205L8.2396 0.82242L8.23736 0.823862C8.23637 0.825305 8.20479 0.866181 8.14262 0.946504C8.08046 1.0273 8.04689 1.06818 8.04191 1.06915C8.03694 1.07059 8.02997 1.0778 8.02102 1.09079C8.01257 1.10425 7.95985 1.15788 7.86287 1.25166C7.76589 1.34545 7.67091 1.42889 7.57791 1.502C7.48441 1.57558 7.43716 1.666 7.43616 1.77325C7.43467 1.88002 7.42895 2.00074 7.419 2.13541C7.40905 2.27007 7.3904 2.41555 7.36305 2.57186C7.3357 2.72817 7.29342 2.90492 7.23623 3.10211C7.17904 3.29929 7.10941 3.49168 7.02735 3.67925C6.94529 3.86681 6.8595 4.03514 6.76998 4.18424C6.68046 4.33334 6.5984 4.45958 6.5238 4.56299C6.4492 4.66639 6.37336 4.76378 6.29626 4.85516C6.21918 4.94654 6.12171 5.04947 6.00384 5.16393C5.88547 5.27791 5.82082 5.34044 5.80988 5.3515C5.79844 5.36208 5.74971 5.40152 5.66365 5.46981C5.57812 5.53858 5.48611 5.60736 5.38763 5.67614C5.28966 5.74443 5.19964 5.80143 5.11758 5.84711C5.03552 5.8928 4.93655 5.94498 4.82067 6.00366C4.70529 6.06282 4.58046 6.11765 4.44618 6.16815C4.3119 6.21865 4.17016 6.26554 4.02096 6.30882C3.87176 6.35211 3.72753 6.38578 3.58827 6.40982C3.44903 6.43387 3.29112 6.45431 3.11456 6.47114L2.84973 6.49639V6.5H2.36483V6.49639L2.30142 6.49279C2.25915 6.49038 2.22433 6.48797 2.19698 6.48557C2.16963 6.48317 2.06643 6.46994 1.88739 6.44589C1.70835 6.42185 1.56785 6.3978 1.4659 6.37375C1.36395 6.34971 1.21225 6.30401 1.01083 6.23668C0.809413 6.16935 0.637087 6.10129 0.493854 6.03252C0.351121 5.96422 0.261601 5.92094 0.225293 5.90266C0.189485 5.88487 0.149201 5.86275 0.10444 5.83629L0.0373001 5.79661L0.0358156 5.79445L0.0335701 5.79301L0.0313321 5.79156L0.0298401 5.7894L0.0223801 5.78579L0.0149201 5.78219L0.0134355 5.78002L0.01119 5.77858L0.00895204 5.77714L0.00746003 5.77497L0.00597548 5.77281L0.00373001 5.77137H0V5.75694L0.00746003 5.75838L0.0149201 5.76054L0.0484902 5.76415C0.0708703 5.76655 0.131796 5.77016 0.231261 5.77497C0.330733 5.77978 0.436412 5.77978 0.548312 5.77497C0.660213 5.77016 0.774605 5.75934 0.891474 5.74251C1.00835 5.72568 1.14636 5.69682 1.30551 5.65594C1.46466 5.61505 1.61087 5.56648 1.74416 5.51021C1.87695 5.45346 1.97144 5.41114 2.02764 5.38324C2.08334 5.35583 2.16838 5.30484 2.28277 5.2303L2.45435 5.11848L2.45584 5.11632L2.45808 5.11487L2.46033 5.11343L2.46181 5.11127L2.4633 5.1091L2.46554 5.10766L2.46779 5.10622L2.46927 5.10405L2.47673 5.10189L2.48419 5.10044L2.48568 5.09323L2.48792 5.08602L2.49017 5.08457L2.49165 5.08241L2.43197 5.0788C2.39219 5.0764 2.35364 5.07399 2.31634 5.07159C2.27904 5.06918 2.2206 5.05836 2.14103 5.03912C2.06146 5.01988 1.97567 4.99103 1.88366 4.95255C1.79165 4.91408 1.70213 4.86838 1.6151 4.81548C1.52807 4.76258 1.46515 4.71857 1.42636 4.68346C1.38807 4.64883 1.33833 4.59978 1.27716 4.53629C1.21648 4.47233 1.16376 4.40668 1.119 4.33934C1.07424 4.27202 1.03148 4.19433 0.990699 4.10633L0.928774 3.97503L0.925044 3.96421L0.921314 3.95339L0.919076 3.94617L0.917584 3.93896L0.928774 3.9404L0.939964 3.94256L1.02202 3.95339C1.07674 3.9606 1.16253 3.963 1.27939 3.9606C1.39627 3.9582 1.47709 3.95339 1.52185 3.94617C1.56661 3.93896 1.59396 3.93414 1.60391 3.93174L1.61883 3.92814L1.63748 3.92453L1.65613 3.92092L1.65762 3.91876L1.65986 3.91731L1.6621 3.91587L1.66359 3.91371L1.64867 3.9101L1.63375 3.90649L1.61883 3.90289L1.60391 3.89928L1.58899 3.89567C1.57904 3.89327 1.56164 3.88846 1.53677 3.88124C1.5119 3.87403 1.44476 3.84757 1.33535 3.80189C1.22594 3.7562 1.1389 3.71171 1.07424 3.66842C1.00943 3.62501 0.947626 3.57754 0.889235 3.5263C0.831047 3.47436 0.767145 3.40751 0.697513 3.32575C0.627888 3.24399 0.565724 3.149 0.511012 3.04079C0.456308 2.93257 0.415277 2.82917 0.387922 2.73058C0.360676 2.63256 0.3427 2.53235 0.334217 2.43119L0.320781 2.27969L0.328241 2.28113L0.335701 2.2833L0.343161 2.2869L0.350621 2.29051L0.358081 2.29412L0.365541 2.29772L0.481172 2.34822C0.558264 2.38189 0.653998 2.41075 0.768383 2.43479C0.882775 2.45884 0.951154 2.47207 0.973534 2.47447L1.0071 2.47808H1.07424L1.07276 2.47592L1.07051 2.47447L1.06828 2.47303L1.06678 2.47087L1.0653 2.4687L1.06305 2.46726L1.06082 2.46582L1.05932 2.46365L1.05186 2.46004L1.0444 2.45644L1.04292 2.45427L1.04067 2.45283L1.03844 2.45139L1.03694 2.44922L1.02948 2.44562L1.02202 2.44201L1.02054 2.43984C1.01905 2.43888 0.99766 2.42349 0.956376 2.39367C0.915592 2.36337 0.872823 2.32418 0.828063 2.27608C0.783303 2.22798 0.738543 2.17749 0.693783 2.12458C0.64894 2.07156 0.609 2.01483 0.574422 1.95505C0.539614 1.89493 0.502806 1.81846 0.464014 1.72564C0.425721 1.6333 0.396627 1.54023 0.376731 1.44645C0.356843 1.35266 0.345653 1.26008 0.343161 1.1687C0.340677 1.07732 0.343161 0.999168 0.350621 0.93424C0.358081 0.869312 0.373001 0.795965 0.395382 0.714206C0.417762 0.632448 0.450093 0.545877 0.492362 0.454495L0.555772 0.317425L0.559502 0.306604L0.563232 0.295782L0.565478 0.29434L0.566962 0.292175L0.568454 0.290011L0.570692 0.288568L0.572938 0.290011L0.574422 0.292175L0.575914 0.29434L0.578152 0.295782L0.580398 0.297225L0.581882 0.29939L0.583374 0.301554L0.585612 0.302997L0.589342 0.310211L0.593072 0.317425L0.595318 0.318868L0.596802 0.321032L0.697513 0.429245C0.764653 0.501387 0.844229 0.581948 0.936234 0.670921C1.02825 0.759894 1.07922 0.806065 1.08916 0.809434C1.09912 0.813279 1.11154 0.824338 1.12646 0.842619C1.14138 0.860417 1.19112 0.902981 1.27567 0.970311C1.36022 1.03764 1.47087 1.1158 1.60764 1.20477C1.74441 1.29375 1.89609 1.38152 2.0627 1.46809C2.22931 1.55466 2.40835 1.63281 2.59982 1.70255C2.7913 1.77229 2.92558 1.81798 3.00266 1.83962C3.07975 1.86127 3.21154 1.88892 3.39804 1.92259C3.58454 1.95625 3.72505 1.9779 3.81954 1.98751C3.91403 1.99713 3.97869 2.00266 4.0135 2.00411L4.06572 2.00555L4.06423 1.99473L4.06199 1.98391L4.04707 1.89373C4.03712 1.83361 4.03215 1.74944 4.03215 1.64123C4.03215 1.53302 4.04085 1.43322 4.05826 1.34184C4.07567 1.25046 4.10178 1.15788 4.13659 1.0641C4.1714 0.970311 4.20547 0.895038 4.23879 0.838291C4.27261 0.78202 4.31687 0.717814 4.37158 0.645671C4.42629 0.573529 4.49716 0.498985 4.58419 0.422031C4.67122 0.345077 4.77069 0.276542 4.88259 0.216426C4.99449 0.15631 5.09769 0.110615 5.19218 0.0793563C5.28668 0.0480971 5.36625 0.0276521 5.4309 0.0180355C5.49556 0.00841898 5.52788 0.00288568 5.52788 0.00144284Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Twitter</span>
</a>
<a href="#" class="share__item" data-code="tg">
<span class="share__item-icon share__item-icon--tg">
<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.39589 3.04852C1.39589 3.04852 5.05491 1.51189 6.32392 0.9708C6.8104 0.754384 8.46012 0.0617918 8.46012 0.0617918C8.46012 0.0617918 9.22155 -0.241191 9.15809 0.494655C9.13692 0.797667 8.96773 1.85815 8.79854 3.00523C8.54472 4.62846 8.26976 6.40316 8.26976 6.40316C8.26976 6.40316 8.22746 6.90097 7.86791 6.98753C7.50836 7.0741 6.91613 6.68455 6.8104 6.59795C6.72577 6.53304 5.22411 5.5591 4.6742 5.08295C4.52614 4.9531 4.35695 4.6934 4.69533 4.39039C5.45676 3.67617 6.36622 2.78882 6.91613 2.2261C7.16995 1.96638 7.42374 1.36038 6.36622 2.09622C4.86456 3.15674 3.38403 4.15231 3.38403 4.15231C3.38403 4.15231 3.04561 4.36873 2.41111 4.17394C1.77657 3.97918 1.03631 3.71945 1.03631 3.71945C1.03631 3.71945 0.528726 3.39481 1.39589 3.04852Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Telegram</span>
</a>
<a href="#" class="share__item js-share-item-copy">
<span class="share__item-icon share__item-icon--copy">
<svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.19922 5.40327C4.37217 5.63449 4.59283 5.8258 4.84622 5.96425C5.09962 6.10269 5.37982 6.18501 5.66783 6.20564C5.95584 6.22627 6.24492 6.18471 6.51546 6.08379C6.78599 5.98287 7.03166 5.82495 7.2358 5.62074L8.44399 4.41255C8.81079 4.03277 9.01375 3.52412 9.00917 2.99615C9.00458 2.46818 8.79281 1.96313 8.41946 1.58978C8.04611 1.21644 7.54106 1.00466 7.01309 1.00008C6.48512 0.995488 5.97647 1.19845 5.59669 1.56525L4.904 2.25392" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.81002 4.59658C5.63707 4.36536 5.41641 4.17404 5.16302 4.0356C4.90962 3.89716 4.62942 3.81483 4.34141 3.79421C4.0534 3.77358 3.76432 3.81514 3.49379 3.91605C3.22325 4.01697 2.97758 4.17489 2.77344 4.3791L1.56525 5.58729C1.19845 5.96707 0.995488 6.47572 1.00008 7.0037C1.00466 7.53167 1.21644 8.03672 1.58978 8.41006C1.96313 8.78341 2.46818 8.99518 2.99615 8.99977C3.52412 9.00436 4.03277 8.80139 4.41255 8.43459L5.10122 7.74592" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</span>
<span class="share__item-text">Скопировать ссылку</span>
</a>
</div>
</div>
</noindex>
</div>
<section class="container inset" data-banner="222587" data-source="213357" data-format="horizontal">
<section class="container inset" data-format="horizontal">
<div class="row">
<div class="col-lg-8 col-sm-12">
<a data-source="213357" data-banner="222587" target="_blank" href="https://skillbox.ru/course/profession-python/" class="article-advert-banner__link courseLink" data-format="horizontal" data-type="horizontal" data-courseid="3254">
<div class="inset__wrapper" style="background-color: #DEECE8;">
<div class="inset__content">
<h2 class="inset__header">Курс с помощью в трудоустройстве</h2>
<p class="inset__description">
Профессия Python-разработчик
</p>
<ul class="inset__text" style="color:#000!important; list-style:'\2022 ' outside; margin-left:20px;">
<li style="list-style:'\2022 '; padding-left:10px; margin-bottom:6px">
Практика, в том числе стажировки в крупных компаниях, таких как VK</li>
<li style="list-style:'\2022 '; padding-left:10px; margin-bottom:6px">
Сильное портфолио: чат-бот, маркетплейс, соцсеть и 3 сервиса</li>
<li style="list-style:'\2022 '; padding-left:10px; margin-bottom:6px">
Нейросети в программе, чтобы быстрее писать и проверять код</li>
</ul>
<p class="inset__button article-advert-banner__link">
Подробнее
</p>
</div>
<div class="inset__image">
<img width="250" src="https://cdn.skillbox.pro/landgen/blocks/start-screen/156946/lg/d42b4089-b306-4b88-ab2a-3f52057e6fbe.webp" height="250" alt="">
</div>
</div>
</a>
</div>
</div>
</section> </section>
</section>
<div class="article-banner" data-banner="219298" data-source="213357" data-format="vertical" data-type="vertical">
<div class="row">
<div class="col-sm-4 col-sm-12">
<div class="inset__wrapper" style="background-color:#f2eeff;">
<div class="inset__content" >
<div class="inset__image" style="text-align: top;">
<img src="https://skillbox.ru/upload/setka_images/math-side.png" width="150" height="150" alt="">
</div>
<p class="inset__description" style="color:#000!important; padding-bottom:13px;">
Изучайте IT на практике — бесплатно</p>
<p class="inset__text" style="color:#000!important">
Курсы за <del>2990</del> 0 р. </p>
<ul class="inset__content" style="color:#007bff!important; list-style:'\2713 ' outside; margin-left:13px;">
<li style="list-style:'\2713 '; padding-left:2px; margin-bottom:6px">
<a data-source="213357" data-banner="219298" href="https://bootcamp.skillbox.ru/python-short/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-617_all_code_skillbox" target="_blank">Python</a>
</li>
<li style="list-style:'\2713 '; padding-left:2px; margin-bottom:6px">
<a href="https://bootcamp.skillbox.ru/qa-start/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-655_all_code_skillbox" target="_blank">Тестирование</a>
</li>
<li style="list-style:'\2713 '; padding-left:2px; margin-bottom:6px">
<a href="https://bootcamp.skillbox.ru/data-science/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-675_all_code_skillbox" target="_blank">Data Science</a>
</li>
<li style="list-style:'\2713 '; padding-left:2px; margin-bottom:6px">
<a href="https://bootcamp.skillbox.ru/java/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-682_all_code_skillbox" target="_blank">Java</a>
</li>
<li style="list-style:'\2713 '; padding-left:2px; margin-bottom:6px">
<a href="https://bootcamp.skillbox.ru/sql/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-695_all_code_skillbox" target="_blank">SQL и работа с данными</a>
</li>
</ul>
<a href="https://bootcamp.skillbox.ru/it-jobs/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-759_all_code_skillbox" class="inset__button article-advert-banner__link" target="_blank" style="color:#000; background-color:#ffafff">Я не знаю, с чего начать</a>
</div>
</div>
</div>
</div> </div>
<a data-source="213357" data-banner="219826" target="_blank" href="https://bootcamp.skillbox.ru/python-short/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-617_all_top_skillbox" class="article-banner article-advert-banner__link" style="background-color: #f2eeff!important;" data-format="top" data-type="top">
<div class="article-banner__img">
<img src="https://skillbox.ru/upload/setka_images/code_common.png" alt="">
</div>
<span class="article-banner__title"><b>Бесплатный курс по Python ➞</b><br>
Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе.
</span>
<span class="article-banner__link">Смотреть программу</span> </a>
<section class="container news">
<div class="row">
<div class="col-lg-8 col-sm-12">
<h2 class="news__header">Новости</h2>
<div class="row">
<div class="col-xl-4 col-lg-6 col-md-4 col-12 news__item">
<a href="/media/code/google-predstavil-gemini-31-pro-s-uluchshennymi-rassuzhdeniyami/" class="news__text">
Google представил Gemini 3.1 Pro с улучшенными рассуждениями </a>
<span class="news__date">20 фев 2026</span>
</div>
<div class="col-xl-4 col-lg-6 col-md-4 col-12 news__item">
<a href="/media/code/xai-dobavila-v-grok-multiagentnuyu-sistemu-s-chetyrmya-pomoschnikami/" class="news__text">
xAI добавила в Grok мультиагентную систему с четырьмя помощниками </a>
<span class="news__date">18 фев 2026</span>
</div>
<div class="col-xl-4 col-lg-6 col-md-4 col-12 news__item">
<a href="/media/code/openai-predstavila-gpt-53-codex-spark-prodvinutuyu-model-dlya-programmistov/" class="news__text">
OpenAI представила GPT-5.3-Codex-Spark — продвинутую модель для программистов </a>
<span class="news__date">13 фев 2026</span>
</div>
</div>
</div>
</div>
</section>
<div class="slider-news-wrap media-catalog-content media-catalog-content--interesting">
<div class="container">
<div class="slider-news slider-news--article-slider js-slider-news">
<div class="slider-news__header">
<div class="slider-news__title" style="font-family: 'Graphik'; font-weight: 500;">
<span class="slider-news__title-notmob">Это интересно</span>
<span class="slider-news__title-mob">Это интересно</span>
</div>
<div class="slider-news__nav-wrapper">
<div class="slider-news__nav-button button-prev swiper-button-disabled" tabindex="0" role="button" aria-label="Previous slide" aria-disabled="true">
<svg viewBox="0 0 9 15" width="9" height="15" class="icon">
<use xlink:href="/static/svg/svg-symbols-site.svg#icon-arrow-chevron" href="/static/svg/svg-symbols-site.svg#icon-arrow-chevron"></use>
</svg>
</div>
<div class="slider-news__nav-button button-next" tabindex="0" role="button" aria-label="Next slide" aria-disabled="false">
<svg viewBox="0 0 9 15" width="9" height="15" class="icon">
<use xlink:href="/static/svg/svg-symbols-site.svg#icon-arrow-chevron" href="/static/svg/svg-symbols-site.svg#icon-arrow-chevron"></use>
</svg>
</div>
</div>
</div>
<div class="slider-news__carousel grad-end">
<div class="slider-news__container swiper-container swiper-container-initialized swiper-container-horizontal">
<div class="swiper-wrapper">
<div class="slider-news__slide swiper-slide swiper-slide-active" style="margin-right: 20px;">
<div class="news-block__item">
<div class="news-block__img" style="margin-bottom: 8px;">
<picture>
<img src="https://248006.selcdn.ru/main/iblock/f1f/f1f05b73644b83a05ad3685325a98308/1668de27023f167b5952dda8f6448bab.jpg">
</picture> </div>
<a href="/media/code/chto-takoe-big-data/" class="news-block__title" style="font-family: 'Graphik'; font-size: 14px; line-height: 19px; -webkit-line-clamp: 4; font-weight: 500">
Big data: что такое большие данные и как с ними работать </a>
</div>
</div>
<div class="slider-news__slide swiper-slide swiper-slide-active" style="margin-right: 20px;">
<div class="news-block__item">
<div class="news-block__img" style="margin-bottom: 8px;">
<picture>
<img src="https://248006.selcdn.ru/main/iblock/ea6/ea6a8323236c2561837dabaf3aaf6301/b1321ab07a64d09d9eba7a802ff1a19d.jpg">
</picture> </div>
<a href="/media/code/google-v-fevrale-2026-goda-vekovye-obligacii-privatnost-v-poiske-i-webmcp-dlya-agentov/" class="news-block__title" style="font-family: 'Graphik'; font-size: 14px; line-height: 19px; -webkit-line-clamp: 4; font-weight: 500">
Google в феврале 2026 года: вековые облигации, приватность в поиске и WebMCP для агентов </a>
</div>
</div>
<div class="slider-news__slide swiper-slide swiper-slide-active" style="margin-right: 20px;">
<div class="news-block__item">
<div class="news-block__img" style="margin-bottom: 8px;">
<picture>
<img src="https://248006.selcdn.ru/main/iblock/83f/83f5fbe33b9cb70f84fd1bade3ba0200/5fec158e3ca8709d41cf5f5a4a0b8430.png">
</picture> </div>
<a href="/media/code/razrabotchiki-skupayut-mac-mini-na-it-rynke-peregrev-a-iz-tyurmy-vyshel-izvestnyy-kriptohaker/" class="news-block__title" style="font-family: 'Graphik'; font-size: 14px; line-height: 19px; -webkit-line-clamp: 4; font-weight: 500">
Разработчики скупают Mac mini, на IT-рынке перегрев, а из тюрьмы вышел известный хакер </a>
</div>
</div>
<div class="slider-news__slide swiper-slide swiper-slide-active" style="margin-right: 20px;">
<div class="news-block__item">
<div class="news-block__img" style="margin-bottom: 8px;">
<picture>
<img src="https://248006.selcdn.ru/main/iblock/080/080d477242b414a3d2964960de55dcda/3fa556922b64473697f8960ca2f25218.png">
</picture> </div>
<a href="/media/code/story-yana-orlovceva/" class="news-block__title" style="font-family: 'Graphik'; font-size: 14px; line-height: 19px; -webkit-line-clamp: 4; font-weight: 500">
От пользователя до программиста 1С: история Яны Орловцевой </a>
</div>
</div>
<div class="slider-news__slide swiper-slide swiper-slide-active" style="margin-right: 20px;">
<div class="news-block__item">
<div class="news-block__img" style="margin-bottom: 8px;">
<picture>
<img src="https://248006.selcdn.ru/main/iblock/010/010725bb6a24b5d14ec80639eeb09031/ad6eb5f9c899b436ac21af1e7099be54.png">
</picture> </div>
<a href="/media/code/eslint-i-prettier/" class="news-block__title" style="font-family: 'Graphik'; font-size: 14px; line-height: 19px; -webkit-line-clamp: 4; font-weight: 500">
Гайд по ESLint и Prettier: от установки до автоматизации в VS Code </a>
</div>
</div>
</div>
<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>
</div>
</div>
</div>
</div>
</div>
<div class="question">
<div class="container">
<div class="question__inner">
<div class="question__title">Понравилась статья?</div>
<a href="#" data-cur-url="/media/code/kurs-po-vim-chast-4-plaginy-fayl-vimrc-i-nerdtree/"
class="question__btn js-modalLink" data-mfp-src="#modalAuth">Да</a>
</div>
</div>
</div>
</div>
<span
data-area="article-bottom"
data-current-url="/media/code/kurs-po-vim-chast-4-plaginy-fayl-vimrc-i-nerdtree/"
data-id="213357">
</span>
</div>
<script type="application/ld+json">
{"@context":"http:\/\/schema.org","@type":"Article","url":"https:\/\/skillbox.ru\/media\/code\/kurs-po-vim-chast-4-plaginy-fayl-vimrc-i-nerdtree\/","headline":"\u041a\u0443\u0440\u0441 \u043f\u043e\u00a0Vim. \u0427\u0430\u0441\u0442\u044c\u00a04. \u041f\u043b\u0430\u0433\u0438\u043d\u044b, \u0444\u0430\u0439\u043b .vimrc \u0438\u00a0NERDTree","articleSection":"\u041a\u043e\u0434","articleBody":"\u0417\u0430 16 \u0443\u0440\u043e\u043a\u043e\u0432 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0441\u0451, \u0447\u0442\u043e \r\n\u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0430\u0440\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Vim:\r\n\r\n- \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u0432;\r\n- \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0432\u0441\u0442\u0430\u0432\u043a\u0438, \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u043c \r\n\u0440\u0435\u0436\u0438\u043c\u0435, \u0440\u0435\u0436\u0438\u043c\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438, \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435;\r\n- \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \r\n\u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432;\r\n- \u043f\u043b\u0430\u0433\u0438\u043d\u044b, \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0435 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432;\r\n- \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e Vim, \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0444\u0430\u0439\u043b\u043e\u043c .vimrc \r\n(\u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0444\u0430\u0439\u043b\u0430 .vimrc \u0430\u0432\u0442\u043e\u0440\u0430 \u043a\u0443\u0440\u0441\u0430);\r\n- \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 Neovim;\r\n- \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0430\u0432\u0442\u043e\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.\r\n\r\n\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0431\u0443\u0434\u0435\u0442 \u0442\u0440\u0438 \u0432\u0438\u0434\u0435\u043e\u0443\u0440\u043e\u043a\u0430. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \r\n\u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043f\u043b\u0430\u0433\u0438\u043d\u044b, .vimrc \u0438 NERDTree.\r\n\r\n\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u043a\u0443\u0440\u0441\r\n\r\n\u041c\u044b \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c \u0432\u0438\u0434\u0435\u043e\u0443\u0440\u043e\u043a\u0438 \u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \r\n\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0438 \u2014 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u043b\u0438 \u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0435\u043e\u0440\u0438\u044e.\r\n\r\n\r\n\r\n \r\n\r\n\r\n\u0410\u0432\u0442\u043e\u0440 \u043a\u0443\u0440\u0441\u0430\u041f\u0430\u0448\u0430 \u041a\u0430\u043b\u0430\u0448\u043d\u0438\u043a\u043e\u0432\r\n\r\n\u0422\u0438\u043c\u043b\u0438\u0434 \u0432 Purple Magic, \u043f\u0440\u043e\u0434\u044e\u0441\u0435\u0440 \u0432\u0438\u0434\u0435\u043e \u0432 Red \r\nMagic, \u0441\u043e\u0432\u0435\u0434\u0443\u0449\u0438\u0439 IT Way Podcast, \u0430\u0432\u0442\u043e\u0440 \u043a\u0443\u0440\u0441\u043e\u0432 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0432\u0430\u0448\u0435\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e. \u041b\u044e\u0431\u0438\u0442 Ruby.\r\n\r\n\r\n\r\n\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0447\u0430\u0441\u0442\u044f\u0445:\r\n\r\n- \u0423\u0440\u043e\u043a\u0438 1\u20132. \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u0432 \r\n\u0438 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u044f Vim \r\n- \u0423\u0440\u043e\u043a\u0438 3\u20137. \u0412\u0441\u0451 \u043e \u0440\u0435\u0436\u0438\u043c\u0430\u0445 Vim \r\n \r\n- \u0423\u0440\u043e\u043a\u0438 8\u201310. \u0420\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0440\u0430\u0431\u043e\u0442\u0430 \r\n\u0441 \u043e\u043a\u043d\u0430\u043c\u0438, \u043c\u0430\u043a\u0440\u043e\u0441\u044b \r\n\r\n\u0423\u0440\u043e\u043a 11\r\n----------------------\r\n\u041f\u043b\u0430\u0433\u0438\u043d\u044b \u0438 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0435 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432\r\n\r\n\u041f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0431 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 Vim: \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c, \r\n\u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b, \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0435 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b, \u043a\u0430\u043a \u0438\u0445 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c, \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0438, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043c\u0441\u044f \u0441 Neovim.\r\n\r\n\u041f\u043b\u0430\u0433\u0438\u043d\u044b \u2014 \u044d\u0442\u043e \u0442\u0435 \u0441\u0430\u043c\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b, \r\n\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 Vim \u043d\u0435 \u043e\u0442\u0441\u0442\u0430\u0432\u0430\u0442\u044c \u043e\u0442 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 IDE, \u0445\u043e\u0442\u044c \u0438 \u0432 \u0441\u0432\u043e\u0451\u043c \u0441\u0442\u0438\u043b\u0435. \u0421\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043e\u0432\u0435\u0442\u0443\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u0438\u0445 \u043f\u043e\u0438\u0441\u043a\u0430 \u2014 vimawesome.com . \u041f\u043b\u0430\u0433\u0438\u043d\u044b \u0442\u0430\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u044b \u043f\u043e \u044f\u0437\u044b\u043a\u0430\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u0442\u0435\u043a\u0430\u043c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439, \u0444\u0438\u0447\u0430\u043c \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.\r\n\r\n\u041f\u043e\u0441\u043b\u0435 \u0443\u0440\u043e\u043a\u0430 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442 \r\n\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f. \u041c\u044b \u0436\u0435 \u043d\u0430\u0447\u043d\u0451\u043c \u0441 \u0441\u0430\u043c\u044b\u0445 \u043e\u0431\u0449\u0438\u0445 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0438\u043c\u0438, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432\u0448\u0438\u0441\u044c \u043d\u0430 \u043f\u0430\u0440\u043e\u0447\u043a\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445.\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\r\n\r\n\u041f\u0430\u043a\u0435\u0442\u043d\u044b\u0435 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c, \r\n\u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0438 \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u0415\u0441\u043b\u0438 \u0432\u044b \u043e\u043f\u044b\u0442\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c Unix-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c, \u0432\u044b \u0442\u043e\u0447\u043d\u043e \u0441 \u043d\u0438\u043c\u0438 \u0437\u043d\u0430\u043a\u043e\u043c\u044b. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 Vim \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u043c\u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430\u043c\u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043f\u043b\u0430\u0433\u0438\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043b\u0435\u0433\u043a\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0438 \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b.\r\n\r\n\u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0445 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u0432 \u043f\u0440\u043e\u0441\u0442\u043e \r\n\u0441\u043a\u0430\u0447\u0438\u0432\u0430\u044e\u0442 \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0441 GitHub \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043d\u0438\u0445 \u0437\u0430\u043b\u043e\u0436\u0435\u043d\u044b. \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2014 \u043d\u0435 \u0441\u0430\u043c\u0430\u044f \u0441\u0438\u043b\u044c\u043d\u0430\u044f \u0438\u0445 \u0441\u0442\u043e\u0440\u043e\u043d\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u044b \u0432\u0435\u0440\u0441\u0438\u0439 \u0432 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 Vim-\u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u0438.\r\n\r\n\u0421\u0430\u043c\u044b\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0434\u043b\u044f \r\nVim \u2014 Vundle. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0435\u0433\u043e \u0431\u043e\u043b\u0435\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c vim-plug . \u0423 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043e\u043d \u043b\u0443\u0447\u0448\u0435 \u0441\u043e\u0432\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0441 Neovim. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043e\u043d \u0431\u043e\u043b\u0435\u0435 \u043e\u0442\u0437\u044b\u0432\u0447\u0438\u0432 \u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e, \u0442\u043e \u0435\u0441\u0442\u044c \u043b\u0443\u0447\u0448\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438. \u041f\u0440\u0438\u0432\u0435\u0434\u0451\u043c \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f.\r\n\r\n\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c vim-plug. \u0412 \u0435\u0433\u043e Readme \u043d\u0430 GitHub \r\n\u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c; \r\n\u0435\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0432 Issues \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u0438 \u043f\u043e\u0438\u0449\u0438\u0442\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u043f\u043e\u0445\u043e\u0436\u0435\u0439 \u043d\u0430 \u0432\u0430\u0448\u0443:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0421\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043d\u0435\u0447\u0442\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u0443\u0436\u0435 \u0441 \u043a\u0435\u043c-\u0442\u043e \r\n\u0441\u043b\u0443\u0447\u0430\u043b\u043e\u0441\u044c \u2014 \u0438 \u0431\u043b\u0430\u0433\u043e\u043f\u043e\u043b\u0443\u0447\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u043b\u043e\u0441\u044c.\r\n\r\n\u0410 \u043c\u044b \u0442\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0444\u0430\u0439\u043b .vimrc:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0412 Linux-\u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u043e\u043d \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \r\n\u0432 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438. \u0417\u0430\u0433\u0443\u0433\u043b\u0438\u0442\u0435, \u0433\u0434\u0435 \u043e\u043d \u0432 \u0432\u0430\u0448\u0435\u0439 \u041e\u0421. \u042d\u0442\u043e \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e.\r\n\r\n\u0412 \u0444\u0430\u0439\u043b\u0435 \u0432\u0432\u043e\u0434\u0438\u043c \u0441\u0442\u0440\u043e\u043a\u0443 call plug#begin ():\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0414\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043d\u0430\u0447\u0430\u043b\u043e \u0431\u043b\u043e\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \r\n\u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u043c vim-plug. \u041c\u044b \u0445\u043e\u0442\u0438\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d vim-sensible. \u0412\u0432\u043e\u0434\u0438\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0432 \u043f\u043e\u0438\u0441\u043a\u0435 \u043d\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u0435 vimawesome.com . \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u043d\u0430 GitHub. \u0411\u0435\u0440\u0451\u043c \u0438\u0437 \u0441\u0441\u044b\u043b\u043a\u0438 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f GitHub \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0412\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0432 .vimrc \u043c\u0435\u0442\u043e\u0434 Plug \u0438 \u043d\u0430\u0431\u0438\u0440\u0430\u0435\u043c \r\n\u0432 \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u0445 \u0447\u0435\u0440\u0435\u0437 \u0441\u043b\u0435\u0448 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0412\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 : PlugInstall. \u0412\u0438\u0434\u0438\u043c \u0441\u0442\u0430\u0442\u0443\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u041f\u043b\u0430\u0433\u0438\u043d \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d!\r\n\r\n\u041f\u043e \u0442\u0430\u043a\u043e\u043c\u0443 \u0436\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442 \r\n\u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0432 Vim. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0435\u0441\u0442\u044c \u0438 \u0442\u0435, \u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 vim-plug, Vundle \u0438\u043b\u0438 \u0438\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0435 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b. \u041d\u043e \u0441 \u0433\u043e\u0434\u0430\u043c\u0438 \u0438\u0445 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u0441\u0451 \u043c\u0435\u043d\u044c\u0448\u0435: \u043b\u044e\u0434\u0438 \u0440\u0435\u0436\u0435 \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u043b\u0430\u0433\u0438\u043d\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043b\u0435\u0433\u043a\u043e.\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0434\u043b\u044f Vim\r\n\r\n\u041f\u0440\u043e\u0439\u0434\u0451\u043c\u0441\u044f \u043f\u043e \u0441\u0430\u043c\u044b\u043c \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c \r\n\u043f\u043b\u0430\u0433\u0438\u043d\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442 \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0441\u0442\u0435\u043a\u0430 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439.\r\n\r\nvim-sensible. \u041f\u043b\u0430\u0433\u0438\u043d vim-sensible \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043e\u0431\u0449\u0435\u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0435 \r\n\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 Vim. \u0422\u0430\u043a\u0436\u0435 \u043e\u043d \u0445\u043e\u0440\u043e\u0448, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043a\u043e\u043f\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0432 Vim, \u043d\u043e \u0432\u044b \u0442\u0430\u043c \u043d\u0435 \u043e\u0434\u0438\u043d. \u041f\u043e\u0437\u0436\u0435, \u0435\u0441\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u044d\u0442\u043e\u0433\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u0432\u0430\u0441 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0443\u0442 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c, \u043c\u043e\u0436\u043d\u043e \u0435\u0433\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c.\r\n\r\nvim-surround. \u041f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043b\u0435\u0433\u043a\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043f\u0430\u0440\u043d\u044b\u043c\u0438 \r\n\u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438 (\u0441\u043a\u043e\u0431\u043a\u0438 \u0438\u043b\u0438 \u043a\u0430\u0432\u044b\u0447\u043a\u0438). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u043f\u0430\u0440\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0432 \u044d\u0442\u043e\u043c \u043a\u043e\u0434\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0446\u0438\u044e \u0432 \u0441\u0442\u0440\u043e\u043a\u0435. \u0412 Ruby \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0438 \u0431\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0446\u0438\u0438 \u043e\u0431\u0440\u0430\u043c\u043b\u044f\u0442\u044c \u0432 \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u043a\u0430\u0432\u044b\u0447\u043a\u0438, \u0430 \u0441 \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0446\u0438\u0435\u0439 \u2014 \u0432 \u0434\u0432\u043e\u0439\u043d\u044b\u0435. Vim-surround \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442, \u043d\u0430\u0445\u043e\u0434\u044f\u0441\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u0430, \u043d\u0430\u0436\u0430\u0442\u044c cs \u2018 \u2018\u2019. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0434\u0451\u0442 \u0441\u0438\u043c\u0432\u043e\u043b \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u043a\u0430\u0432\u044b\u0447\u0435\u043a \u2014 \u0438\u0445 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c, \u043f\u043e\u0442\u043e\u043c \u0441\u0438\u043c\u0432\u043e\u043b \u0434\u0432\u043e\u0439\u043d\u044b\u0445 \u2014 \u043d\u0430 \u043d\u0438\u0445 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0417\u0430\u043c\u0435\u043d\u0430 \u043a\u0430\u0432\u044b\u0447\u0435\u043a \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430, \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u0435\u043c \r\n\u043b\u0435\u0433\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0446\u0438\u044e:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\nNERDTree \u2014 \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0435\u0440\u0435\u0432\u043e\u043c \r\n\u0444\u0430\u0439\u043b\u043e\u0432. \u041c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0435\u0433\u043e \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0443\u0440\u043e\u043a\u0430\u0445.\r\n\r\nvim-commentary \u2014 \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \r\n\u043a\u043e\u0434\u0430 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.\r\n\r\nFZF \u2014 \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f \u043d\u0435\u0447\u0451\u0442\u043a\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0443. \r\n\u0418\u0449\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u043a\u043e\u0434\u0443 \u0438 \u0444\u0430\u0439\u043b\u0430\u043c, \u043d\u043e \u0438 \u043f\u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0430\u043c, \u043f\u043e \u0431\u0443\u0444\u0435\u0440\u0430\u043c \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.\r\n\r\nvim-airline \u2014 \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0432\u043d\u0438\u0437\u0443 \u044d\u043a\u0440\u0430\u043d\u0430. \r\n\u0414\u0440\u0443\u0433\u0438\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u043b\u044e\u0431\u044f\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0414\u0430 \u0438 \u0432 \u0446\u0435\u043b\u043e\u043c \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0444\u0430\u0439\u043b\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043b\u0435\u0433\u0447\u0435.\r\n\r\n\u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f \r\n\u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0443\u0440\u043e\u043a\u0430\u0445.\r\n\r\n\u0423\u0440\u043e\u043a 12\r\n----------------------\r\n\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0444\u0430\u0439\u043b\u043e\u043c .vimrc\r\n\r\n.vimrc \u2014 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u0430\u0439\u043b, \r\n\u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430. \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0432 \u043d\u0451\u043c \u043f\u0438\u0448\u0443\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b Vim, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u0422\u043e \u0435\u0441\u0442\u044c, \u043f\u043e \u0441\u0443\u0442\u0438, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Vim \u0447\u0435\u0440\u0435\u0437 .vimrc \u2014 \u044d\u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u0430\u043d\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u0432 .vimrc. \u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u043f\u043b\u0430\u0433\u0438\u043d\u0430\u043c, \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, vim-plug (\u0441\u043c. \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0443\u0440\u043e\u043a).\r\n\r\n\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441 \u0432\u0430\u043c\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \r\n\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0432 .vimrc.\r\n\r\n\u041a\u043e\u043c\u0430\u043d\u0434\u0430 : set hlsearch \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0438 \r\n\u043f\u043e\u0438\u0441\u043a\u0430 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435: \u043f\u043e\u0441\u043b\u0435 \u0435\u0451 \u0432\u0432\u043e\u0434\u0430 \u043b\u044e\u0431\u043e\u0439 \u043f\u043e\u0438\u0441\u043a \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0441\u0432\u0435\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u044d\u0442\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0432 .vimrc \u2014 \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c! \u0417\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \r\n\u0437\u0430\u043d\u043e\u0432\u043e \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043f\u043e\u0438\u0441\u043a. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442!\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0443\u0440\u043e\u043a\u0430\u0445 \u043c\u044b \u0443\u0436\u0435 \u0441\u0435\u0442\u043e\u0432\u0430\u043b\u0438 \r\n , \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043c\u0435\u0436\u0434\u0443 \u043e\u043a\u043d\u0430\u043c\u0438 \u0432 Vim \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u0439: \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f Ctrl + w \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435. \u041f\u0435\u0440\u0435\u043d\u0430\u0437\u043d\u0430\u0447\u0438\u043c \u044d\u0442\u043e\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e Ctrl \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435. \u041d\u0430\u0437\u043d\u0430\u0447\u0438\u043c \u0434\u0440\u0443\u0433\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u043a\u043b\u0430\u0432\u0438\u0448 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043c\u0435\u0436\u0434\u0443 \u043e\u043a\u043d\u0430\u043c\u0438. \u041a\u0430\u043a \u043d\u0430\u043c \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c?\r\n\r\n\u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0435\u0441set \u0435\u0441\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \r\n\u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043c\u0435\u0436\u0434\u0443 \u043e\u043a\u043d\u0430\u043c\u0438 : wincmd. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043e\u043d\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430. \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u044d\u0442\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432 \u043d\u0430\u0448\u0435\u043c .vimrc:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0414\u043b\u044f \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0432\u0438\u0448 \u0432 Vim \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \r\n\u043a\u043e\u043c\u0430\u043d\u0434\u0430 map, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u0432\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430: \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u043a\u043b\u0430\u0432\u0438\u0448, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0434\u043e \u043d\u0430\u0436\u0430\u0442\u044c, \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e \u043a\u043b\u0430\u0432\u0438\u0448 \r\n\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430:\r\n\r\n- nmap (normal mode) \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0433\u043e \r\n\u0440\u0435\u0436\u0438\u043c\u0430;\r\n- imap (insert mode) \u2014 \u0434\u043b\u044f \u0440\u0435\u0436\u0438\u043c\u0430 \u0432\u0432\u043e\u0434\u0430;\r\n- vmap (visual mode) \u2014 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430;\r\n- smap (select mode) \u2014 \u0434\u043b\u044f \u0440\u0435\u0436\u0438\u043c\u0430 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f;\r\n- cmap (command-line mode) \u2014 \u0434\u043b\u044f \u0440\u0435\u0436\u0438\u043c\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \r\n\u0441\u0442\u0440\u043e\u043a\u0438.\r\n\r\n\u041c\u044b \u0445\u043e\u0442\u0438\u043c \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043c\u0435\u0436\u0434\u0443 \u043e\u043a\u043d\u0430\u043c\u0438 \r\n\u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0432\u043e\u0434\u0438\u043c nmap <C-k>: wincmd k<CR>, \u0433\u0434\u0435 nmap \u2014 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430, \u0430 <C-k> \u2014\u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0432\u0438\u0448 Ctrl + k.\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0451\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \r\n\u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0435\u0439 \u043a\u043b\u0430\u0432\u0438\u0448 : wincmd k<CR>. <CR> \u2014 \u044d\u0442\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438 Enter. \u041e\u043d\u0430 \u0442\u0443\u0442 \u043d\u0443\u0436\u043d\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0436\u0430\u0442\u044c Enter. \u041f\u0440\u043e\u0431\u0443\u0435\u043c. \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0434\u0432\u0430 \u043e\u043a\u043d\u0430. \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c Ctrl + k. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442!\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u041d\u043e \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0430 : wincmd k \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043b\u0430\u0441\u044c \r\n\u0432\u043d\u0438\u0437\u0443. \u042d\u0442\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u2014 \u0432\u0435\u0434\u044c \u043d\u0430\u043c \u043d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0432\u0438\u0441\u0435\u043b\u043e \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043c\u0435\u0436\u0434\u0443 \u043e\u043a\u043d\u0430\u043c\u0438. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0432 .vimrc \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 <silent>:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u042d\u0442\u043e\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u044b\u0432\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \r\n\u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435. \u041f\u0440\u043e\u0431\u0443\u0435\u043c:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f. \r\n\u041e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u044d\u0442\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u0432 \u0432 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b.\r\n\r\n\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u043c \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e \u043a\u043b\u0430\u0432\u0438\u0448, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \r\n\u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435. \u0412\u0432\u043e\u0434\u0438\u043c: map <F2> <Esc>: w<CR>.\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u041d\u0430\u0436\u0430\u0442\u0438\u0435 Esc \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \r\n\u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0432\u0435\u0441\u0442\u0438 : w \u0438 \u043d\u0430\u0436\u0430\u0442\u044c Enter. \u0414\u0435\u043b\u0430\u0435\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0435 \u0431\u0435\u0437 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0418 \u043d\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0435\u043c:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0441\u0442\u0440\u043e\u043a \u0432 Vim \u043c\u043e\u0436\u043d\u043e \r\n\u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u043a set nu \u0438 \u043a\u0430\u043a set number:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430, set nocompatible, \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \r\n\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c Vim \u0441 Vi:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u042d\u0442\u043e\u0433\u043e \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043c\u043d\u043e\u0433\u0438\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b, \r\n\u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u0430\u043a\u0430\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u044b\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f\u043c \u0432 \u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u0435. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0441 Vi \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f. \u0421\u043e\u0432\u0435\u0442\u0443\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0432\u044b \u043d\u0435 \u044f\u0440\u044b\u0439 \u0444\u0430\u043d\u0430\u0442 Vi.\r\n\r\n\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, filetype on \u0438 syntax on, \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u0443\u044e\u0442 \r\n\u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0443 \u043a\u043e\u0434\u0430 \u0432 Vim:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0411\u0435\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \r\n\u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u0430\u043c\u0438, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0444\u0430\u0439\u043b\u043e\u0432. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0430\u0436\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0435\u0451 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043d\u0430\u0448\u0438\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 Vim \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e filetype off. \u0421\u043e\u0432\u0435\u0442\u0443\u0435\u043c \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c filetype on \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435.\r\n\r\n\u0412\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0443 \r\n\u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u0443\u0440\u0441\u043e\u0440, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e set cursorline \u0438 set cursorcolumn:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u043e \u0442\u0430\u043a:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b, \r\n\u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043b\u0438\u0448\u043d\u0438\u0435 \u043b\u0438\u043d\u0438\u0438 \u043e\u0442\u0432\u043b\u0435\u043a\u0430\u044e\u0442. \u041f\u0440\u0430\u0432\u0434\u0430, \u0434\u043b\u044f set cursorcolumn \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043b\u0430\u0432\u0438\u0448\u0443 F8, \u0447\u0442\u043e\u0431\u044b \u0438\u043d\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043e\u0434\u0430. \u042d\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u0442\u0435\u0440\u044f\u0432\u0448\u0443\u044e\u0441\u044f \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u0441\u043a\u043e\u0431\u043a\u0443. \u041a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u043a\u043b\u0430\u0432\u0438\u0448\u0435, \u043c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0443\u0440\u043e\u043a\u0430\u0445.\r\n\r\n\u041a\u043e\u043c\u0430\u043d\u0434\u0430 set nowrap \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \r\n\u0441\u0442\u0440\u043e\u043a\u0438:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u041a\u043e\u043c\u0430\u043d\u0434\u0430 set history=1000 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u0442\u043e\u043b\u044c\u043a\u0438\u0445 \r\n\u043a\u043e\u043c\u0430\u043d\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u044b \u0443\u043a\u0430\u0436\u0435\u0442\u0435:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0445 20.\r\n\r\n\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043d\u0430\u0448\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \r\n\u0441\u0445\u0435\u043c\u044b. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u0441\u0445\u0435\u043c \u0434\u043b\u044f Vim \u2014 Molokai:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u0441\u0445\u0435\u043c\u044b Vim \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \r\n~\/.vim\/colors:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0421\u043a\u0430\u0447\u0430\u0435\u043c \u0438 \u043f\u043e\u043b\u043e\u0436\u0438\u043c \u0432 \u044d\u0442\u0443 \u043f\u0430\u043f\u043a\u0443 \u0444\u0430\u0439\u043b \r\n\u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u0441\u0445\u0435\u043c\u044b. \u0412 Linux \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b curl -o molokai.vim https:\/\/raw.githubusercontent.com\/tomasr\/molokai\/master\/colors\/molokai.vim:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0430\u0448 \u0444\u0430\u0439\u043b .vimrc \u0438 \u0437\u0430\u0434\u0430\u0451\u043c \r\n\u043d\u0430\u0448\u0443 \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u0441\u0445\u0435\u043c\u0443. \u0417\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c Vim. \u0426\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b\u0430\u0441\u044c. \u041a\u0440\u0430\u0441\u043e\u0442\u0430!\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \r\n\u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u0441\u0445\u0435\u043c\u044b, \u043d\u043e \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0438\u0445, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0438. \u041e\u0442\u043a\u0440\u043e\u0435\u043c \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0441\u043a\u0430\u0447\u0430\u043b\u0438:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u041f\u0435\u0440\u0432\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u043e\u0434\u0430 \u2014 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u0440\u043e \r\n\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441\u0445\u0435\u043c\u044b \u0441 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u043c. \u0410 \u0432\u043e\u0442 \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u0438 47 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u0430 \u0446\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u0441\u0445\u0435\u043c\u0430. \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0435 \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0443 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: Boolean, Character, Constant \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u041f\u043e\u043c\u0435\u043d\u044f\u0435\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0446\u0432\u0435\u0442 Boolean-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043d\u0430 \u0431\u0435\u043b\u044b\u0439. \r\n\u0422\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 256-\u0446\u0432\u0435\u0442\u043d\u044b\u0439 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b, \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u043c \u0446\u0432\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u043c\u043e\u0434\u0443\u043b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0417\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c Vim, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0437\u0430\u043d\u043e\u0432\u043e Ruby-\u0444\u0430\u0439\u043b. \r\n\u0412\u0432\u043e\u0434\u0438\u043c Boolean-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f true \u0438 false. \u041e\u043d\u0438 \u0441\u0442\u0430\u043b\u0438 \u0431\u0435\u043b\u044b\u043c\u0438:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0432\u0441\u044e \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \r\n\u0441\u0445\u0435\u043c\u0443 \u043d\u0430 \u0432\u0430\u0448\u0435 \u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0435. \u0421 \u044d\u0442\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u043e\u0432!\r\n\r\n\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0441\u0442\u0430\u0442\u0443\u0441-\u0431\u0430\u0440. \u041c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \r\n\u043d\u0430\u043a\u0430\u0442\u0438\u0442\u044c \u043a\u0443\u0447\u0443 \u0444\u0438\u0447 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043b\u0430\u0433\u0438\u043d\u0430 vim-airline, \u043d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u043a\u0430\u043a \u0435\u0433\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u043f\u0435\u0440\u0432\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0431\u0430\u0440 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e. \u0412\u0432\u043e\u0434\u0438\u043c : help statusline:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043b\u0438\u0448\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0445 \u0444\u0438\u0447, \r\n\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432 vim-airline.\r\n\r\n\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c .vimrc-\u0444\u0430\u0439\u043b. \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \r\n\u0441\u0442\u0430\u0442\u0443\u0441\u043b\u0430\u0439\u043d. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0438\u0448\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u043a\u043e\u0434\u0430 set statusline=:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043f\u0438\u0448\u0435\u043c set statusline \r\n+= set statusline+=\\ %F\\ %R:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 F \u0437\u0434\u0435\u0441\u044c \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0432\u044b\u0432\u043e\u0434 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \r\n\u0430\u0434\u0440\u0435\u0441\u0430 \u0444\u0430\u0439\u043b\u0430, \u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 R \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 RO, \u0435\u0441\u043b\u0438 \u0444\u0430\u0439\u043b \u0438\u043c\u0435\u0435\u0442 \u0441\u0442\u0430\u0442\u0443\u0441 read-only. \u0414\u0430\u043b\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0432\u0435\u0442\u043a\u0443 Git. \u0421\u043f\u0435\u0440\u0432\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u0435\u0442\u043a\u0438. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0432\u043d\u0443\u0442\u0440\u0438 .vimrc: let gitBranch=system (\u00abgit rev-parse --abbrev-ref HEAD\u00bb):\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \r\n\u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0432\u0435\u0442\u043a\u0443 \u0432 Git-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438. \u041a\u0430\u043a \u0442\u0430\u043a\u043e\u0432\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0446\u0438\u0438 \u0432 .vimrc \u043d\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u0430\u0439\u0444\u0445\u0430\u043a. \u041e\u043d \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0432\u0430\u0436\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0442\u0438\u043f\u0430 \u0438\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0446\u0438\u0438.\r\n\r\n\u0412\u0432\u043e\u0434\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 execute \u00abset statusline +=\u00bb. \r\ngitBranch:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c! \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 gitBranch \r\n\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0441\u0442\u0430\u0442\u0443\u0441-\u0431\u0430\u0440:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432 \u043f\u0440\u0430\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441-\u0431\u0430\u0440\u0430 \r\n\u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435: set statusline+=\\ Row:\\ %l\\ Col:\\ %c\\ Percent:\\ %p%%:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0417\u0434\u0435\u0441\u044c %l \u2014 \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438, %c \u2014 \u043d\u043e\u043c\u0435\u0440 \r\n\u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u0430 %p \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u043c\u0435\u0441\u0442\u043e\u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043a\u0443\u0440\u0441\u043e\u0440\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u043e\u043c \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 \u043a \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u0444\u0430\u0439\u043b\u0430.\r\n\r\n\u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u043b\u0443\u0447\u0448\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \r\nvim-airline \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0442\u0430\u043a \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u043c. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c Plug 'vim-airline\/vim-airline \u0438 \u0432\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 : PlugInstall:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0412\u0441\u0451, \u0433\u043e\u0442\u043e\u0432\u043e! \u041a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u0441\u0442\u0430\u0442\u0443\u0441-\u0431\u0430\u0440!\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u042d\u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \r\n\u0432\u0430\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u044d\u0442\u043e\u043c \u0443\u0440\u043e\u043a\u0435. \u041d\u043e \u0438\u0445 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0435\u0449\u0451 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e. \u041c\u043e\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0438\u0445, \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0437\u0430\u043d\u043e\u0432\u043e \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u041f\u0440\u043e\u0441\u0442\u043e \u0441\u043b\u043e\u0436\u0438\u0442\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0432 \u043d\u0443\u0436\u043d\u044b\u0435 \u043c\u0435\u0441\u0442\u0430 \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440! \u041d\u0435 \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 IDE \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c.\r\n\r\n\u0422\u0430\u043a\u0436\u0435 \u0441\u043e\u0432\u0435\u0442\u0443\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \r\n\u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f. \u0422\u0430\u043a\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 (\u0438\u0445 \u0435\u0449\u0451 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 dotfiles) \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u043c\u0435\u044e\u0442 \u043e\u0434\u043d\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u0441\u0435\u0433\u043e, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u043d\u0430 \u0441\u0432\u0435\u0436\u0443\u044e \u041e\u0421. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443 \u0430\u0432\u0442\u043e\u0440\u0430 \u044d\u0442\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430 \u0435\u0441\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 dotfiles, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0432\u0441\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 Vim. \u0425\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043e\u043d\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 .vimrc.\r\n\r\n\u0421\u043e\u0432\u0435\u0442\u0443\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0439 \r\n\u0444\u0430\u0439\u043b .gitignore \u0444\u0430\u0439\u043b\u044b \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c .swp \u0438 .swn. \u042d\u0442\u043e \u0442\u0438\u043f\u044b \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Vim \u0441\u043e\u0437\u0434\u0430\u0451\u0442, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u0430\u0439\u043b\u044b. \u0427\u0442\u043e\u0431\u044b \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043d\u0435 \u0437\u0430\u043a\u043e\u043c\u043c\u0438\u0442\u0438\u0442\u044c \u0438\u0445 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439, \u043b\u0443\u0447\u0448\u0435 \u0441\u0440\u0430\u0437\u0443 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043d\u0430 \u0432\u0441\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443.\r\n\r\n\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u044d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \r\n\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u2014 \u043e\u0447\u0435\u043d\u044c \u043f\u043b\u043e\u0445\u043e\u0439 \u0442\u043e\u043d: \u043d\u0435 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0432\u0441\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Vim. \u0422\u0430\u043a\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043b\u0438\u0447\u043d\u043e.\r\n\r\n\u0423\u0440\u043e\u043a 13\r\n----------------------\r\n\u041f\u043b\u0430\u0433\u0438\u043d NERDTree\r\n\r\nNERDTree \u2014 \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \r\n\u0434\u0435\u0440\u0435\u0432\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043c. \u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c, \u043a\u0430\u043a \u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f.\r\n\r\n\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u043b\u0430\u0433\u0438\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e vim-plug \r\n(\u044d\u0442\u043e \u0437\u0430\u0439\u043c\u0451\u0442 \u0441\u0435\u043a\u0443\u043d\u0434 \u043f\u044f\u0442\u044c):\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043e\u043a\u043d\u043e \u0441 \u0434\u0435\u0440\u0435\u0432\u043e\u043c \u0444\u0430\u0439\u043b\u043e\u0432, \r\n\u0432\u0432\u043e\u0434\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 : NERDTree:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0431\u0438\u043d\u0434\u0438\u0442\u044c \u0435\u0451 \u043d\u0430 \u043b\u044e\u0431\u0443\u044e \r\n\u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e \u043a\u043b\u0430\u0432\u0438\u0448. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 : NERDTreeToggle, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u043a\u0440\u043e\u0435\u0442 NERDTree, \u0435\u0441\u043b\u0438 \u043e\u043d \u0437\u0430\u043a\u0440\u044b\u0442, \u0438 \u0437\u0430\u043a\u0440\u043e\u0435\u0442, \u0435\u0441\u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u0442. \u0423 \u043d\u0430\u0441 \u044d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 Ctrl + f:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e NERDTree \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439 \r\n\u0442\u0443, \u043e\u0442\u043a\u0443\u0434\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 vim. \u041f\u0430\u043f\u043a\u0438 \u0438 \u0444\u0430\u0439\u043b\u044b \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u043d\u0430 \u043a\u043b\u0430\u0432\u0438\u0448\u0443 \u043e. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0444\u0430\u0439\u043b\u044b \u043e\u0442\u043a\u0440\u043e\u044e\u0442\u0441\u044f \u0432 \u043e\u043a\u043d\u0435 \u0441\u043f\u0440\u0430\u0432\u0430, \u0430 \u043f\u0430\u043f\u043a\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b \u0432 \u043d\u043e\u0432\u043e\u043c \u043e\u043a\u043d\u0435, \u043d\u0430\u0436\u043c\u0438\u0442\u0435 i:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0422\u0435 \u0436\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043a\u043b\u0430\u0432\u0438\u0448\u0438 \r\ns, \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043e\u043a\u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c. \u041a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f Shift + i \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043a\u0440\u044b\u0442\u044b\u0435 \u0444\u0430\u0439\u043b\u044b:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u0441\u043d\u043e\u0432\u0430 \u0438\u0445 \u0441\u043a\u0440\u043e\u0435\u0442. \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \r\n\u0444\u0430\u0439\u043b\u0430 \u0438\u043b\u0438 \u043f\u0430\u043f\u043a\u0438 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0445 \u0441\u043e\u0437\u0434\u0430\u0442\u044c, \u043d\u0430\u0436\u043c\u0438\u0442\u0435 ma. \u0412\u0432\u043e\u0434\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430. \u0415\u0441\u043b\u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u043b\u0435\u0448, \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u043f\u0430\u043f\u043a\u0430:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u0432 \u043f\u0430\u043f\u043a\u0435, \r\n\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u0432\u0432\u043e\u0434\u0438\u0442\u0435 \u043f\u043e\u043b\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0444\u0430\u0439\u043b\u0430, \u0438 \u043f\u0430\u043f\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438.\r\n\r\n\u0427\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438\u043b\u0438 \u0430\u0434\u0440\u0435\u0441 \u0444\u0430\u0439\u043b\u0430, \r\n\u0432\u0432\u043e\u0434\u0438\u043c mm \u0438 \u043d\u043e\u0432\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0414\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0432\u043e\u0434\u0438\u043c mc \u0438 \u043d\u043e\u0432\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0414\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u0432\u0432\u043e\u0434\u0438\u043c md \u0438 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u043c \r\n\u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u043d\u0430 Enter \u0438\u043b\u0438 y:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0412\u0430\u0436\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 NERDTree \u043e\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432 \r\n\u0444\u0430\u0439\u043b\u043e\u0432, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438, \u2014 \u043e\u043d\u043e \u043d\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0438\u043b\u0441\u044f \u0444\u0430\u0439\u043b \u0438\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u043e\u0441\u044c \u0435\u0433\u043e \u0438\u043c\u044f, \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0436\u0430\u0442\u044c Shift + r, \u0447\u0442\u043e\u0431\u044b \u0444\u0430\u0439\u043b\u044b \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c:\r\n \r\n\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442: Skillbox Media\r\n\r\n\u0412\u043e\u0442 \u0438 \u0432\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0444\u0438\u0447\u0438 \u044d\u0442\u043e\u0433\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u0430. \r\n\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0443\u0440\u043e\u043a\u0435 \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u043f\u043b\u0430\u0433\u0438\u043d\u0430\u0445 \u0434\u043b\u044f \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.\r\n\r\n\r\n\r\n\u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u0442\u0430\u043a\u0436\u0435:\r\n\r\n- \u041a\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e: \r\nEmacs, Vim \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u044b \u0434\u043b\u044f \u0445\u0430\u0441\u043a\u0435\u043b\u0438\u0441\u0442\u0430 \r\n- \u00ab\u041c\u043d\u0435 \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434 \u2014 \u0432\u0441\u0451 \r\n\u0440\u0430\u0432\u043d\u043e \u0447\u0442\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043e\u0441\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u0440\u0430\u0431\u043b\u0438\u00bb \r\n- \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 API \u0438 \u043a\u0430\u043a \u043e\u043d \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0432 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \r\n\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c ","author":{"@type":"Person","name":"\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d \u0417\u043e\u0442\u043e\u0432","url":"https:\/\/skillbox.ru\/media\/authors\/konstantin-zotov\/"},"publisher":{"@type":"Organization","name":"Skillbox","logo":{"@type":"ImageObject","url":"https:\/\/skillbox.ru\/static\/images\/skillbox.png"}},"mainEntityOfPage":{"@type":"WebPage","url":"https:\/\/skillbox.ru\/media\/code\/kurs-po-vim-chast-4-plaginy-fayl-vimrc-i-nerdtree\/"},"datePublished":"2022-10-07T09:00:00Z","dateModified":"2022-10-07T09:35:03Z","image":{"@type":"ImageObject","url":["https:\/\/248006.selcdn.ru\/main\/iblock\/8ac\/8ac91e7dc188c9203c4222a234b1e003\/79464677f70f057b95aa8a1fb7eab8a2.png"]},"description":"\u041c\u044b\u00a0\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e \u043b\u0435\u0433\u0435\u043d\u0434\u0430\u0440\u043d\u043e\u043c\u0443 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0443 \u043a\u043e\u0434\u0430 Vim. \u0412 \u043d\u0451\u043c 16 \u0443\u0440\u043e\u043a\u043e\u0432. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u2014 \u043f\u043b\u0430\u0433\u0438\u043d\u044b, .vimrc \u0438 NERDTree."}
</script><script data-skip-moving="true" id="FiMjZmipVK5U4ODg">if (window.relap) window.relap.ar('FiMjZmipVK5U4ODg');</script> </div>
<script>
window.Section_id = 10;
</script>
</div>
</main>
<footer class="without-buttons">
<div class="footer__wrapper container">
<div class="footer__firstgroup">
<section class="footer__contactbox">
<address class="footer__contacts">
<p class="footer__contacts-block">
<a class="footer__phone link" href="tel:+74951540915">8 (800) 500-05-22</a>
<span class="footer__phone-caption">Контактный центр</span>
</p>
<p class="footer__contacts-block">
<a class="footer__phone link" href="tel:+74952915987">+7(495) 291-59-87</a>
<span class="footer__phone-caption">Отдел заботы о пользователях</span>
</p>
<p class="footer__address"> Москва, Ленинский проспект, дом 6, строение 20</p>
</address>
<ul class="social-contacts footer__social">
<li>
<a class="social-contacts__item" href="https://vk.com/skillbox_education"
aria-label="Вконтакте">
<img src="/static/images/footer/soc_vk.svg"/>
</a>
</li>
<li>
<a class="social-contacts__item"
href="https://www.youtube.com/channel/UC2FJq-Rr7v4SlKAoM7x0ZhA" aria-label="YouTube">
<img src="/static/images/footer/soc_tube.svg"/>
</a>
</li>
<li>
<a class="social-contacts__item" href="tg://resolve?domain=skillboxru"
aria-label="Telegram">
<img src="/static/images/footer/soc_tg.svg"/>
</a>
</li>
</ul>
<div class="footer__age-limit">
16+
</div>
</section>
<section class="footer__rewardbox">
<ul class="rewards footer__rewards">
<li>
<span class="rewards__item">
<img src="/static/images/footer/footer_runet.svg" alt=""/>
<span>Премии Рунета</span>
<span>2018, 2019, 2020</span>
</span>
</li>
</ul>
</section>
</div>
<section class="footer__linksbox">
<ul class="links__list links__list--courses">
<li class="links__item links__item--header">Все направления</li>
<li class="links__item"><a href="/code/?utm_source=media&utm_medium=button&utm_campaign=footerlink_code&utm_term=footer">Программирование</a></li>
<li class="links__item"><a href="/design/?utm_source=media&utm_medium=button&utm_campaign=footerlink_design&utm_term=footer">Дизайн</a></li>
<li class="links__item"><a href="/marketing/?utm_source=media&utm_medium=button&utm_campaign=footerlink_marketing&utm_term=footer">Маркетинг</a></li>
<li class="links__item"><a href="/management/?utm_source=media&utm_medium=button&utm_campaign=footerlink_management&utm_term=footer">Управление</a></li>
<li class="links__item"><a href="/games/?utm_source=media&utm_medium=button&utm_campaign=footerlink_gamedev&utm_term=footer">Игры</a></li>
<li class="links__item"><a href="/multimedia/?utm_source=media&utm_medium=button&utm_campaign=footerlink_multimedia&utm_term=footer">Мультимедиа</a></li>
<li class="links__item"><a href="/psychology/?utm_source=media&utm_medium=button&utm_campaign=footerlink_psychology&utm_term=footer">Психология</a></li>
<li class="links__item"><a href="/general-development/?utm_source=media&utm_medium=button&utm_campaign=footerlink_general-development&utm_term=footer">Общее развитие</a></li>
<li class="links__item"><a href="/engineering/?utm_source=media&utm_medium=button&utm_campaign=footerlink_engineering&utm_term=footer">Инженерия</a></li>
<li class="links__item"><a href="/english/?utm_source=media&utm_medium=button&utm_campaign=footerlink_english&utm_term=footer">Английский язык</a></li>
<li class="links__item"><a href="/other/?utm_source=media&utm_medium=button&utm_campaign=footerlink_other&utm_term=footer">Другое</a></li>
</ul>
<ul class="links__list links__list--about">
<li class="links__item links__item--header">О Skillbox</li>
<li class="links__item"><a href="/company/?utm_source=media&utm_medium=button&utm_campaign=footerlink_aboutskillbox&utm_term=footer">О Платформе</a></li>
<li class="links__item"><a href="/career/?utm_source=media&utm_medium=button&utm_campaign=footerlink_careercentr&utm_term=footer"> Центр карьеры</a></li>
<li class="links__item"><a href="/otzyvy/?utm_source=media&utm_medium=button&utm_campaign=footerlink_testimonials&utm_term=footer">Отзывы</a></li>
<li class="links__item"><a href="/contacts/?utm_source=media&utm_medium=button&utm_campaign=footerlink_skillboxcontacts&utm_term=footer">Контакты</a></li>
<li class="links__item"><a href="/jobs/?utm_source=media&utm_medium=button&utm_campaign=footerlink_jobs&utm_term=footer">Вакансии</a></li>
<li class="links__item"><a href="/teachers/?utm_source=media&utm_medium=button&utm_campaign=footerlink_school&utm_term=footer">Школа кураторов</a></li>
<li class="links__item"><a href="/sale/free/?utm_source=media&utm_medium=button&utm_campaign=footerlink_free&utm_term=footer">Бесплатно</a></li>
<li class="links__item"><a href="/media/topic/tests/?utm_source=media&utm_medium=button&utm_campaign=footerlink_tests&utm_term=footer">Онлайн-тесты</a></li>
</ul>
<ul class="links__list links__list--webinar">
<li class="links__item links__item--header">Вебинары</li>
<li class="links__item"><a href="https://live.skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=footerlink_webinars&utm_term=footer" target="_blank" rel="noopener">Все вебинары</a></li>
<li class="links__item"><a href="https://live.skillbox.ru/playlists/?utm_source=media&utm_medium=button&utm_campaign=footerlink_playlists&utm_term=footer" target="_blank" rel="noopener">Плейлисты</a></li>
<li class="links__item"><a href="https://live.skillbox.ru/calendar/?utm_source=media&utm_medium=button&utm_campaign=footerlink_schedule&utm_term=footer" target="_blank" rel="noopener">Расписание</a></li>
</ul>
<ul class="links__list links__list--last">
<li class="links__item links__journal"><a href="/media/" target="_blank" rel="noopener">Медиа</a></li>
<li class="links__item"><a href="https://partners.skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=footerlink_partners&utm_term=footer" target="_blank" rel="noopener">Партнерская программа</a></li>
<li class="links__item"><a href="https://b2b.skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=footerlink_b2b&utm_term=footer" target="_blank" rel="noopener">Корпоративным клиентам</a></li>
<li class="links__item"><a href="https://career.skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=footerlink_employees&utm_term=footer" target="_blank" rel="noopener">Для работодателей</a></li>
</ul>
</section>
</div>
<div class="footer__underline container">
<span class="footer__copy">
© Skillbox, 2026 </span>
<div>
<span class="footer__oferta">
<a href="/oferta.pdf" target="_blank">Договор оферты</a>
</span>
<span class="footer__payment">
<a href="/payments/" target="_blank">Оплата</a>
</span>
<span class="footer__use-policy">
<a href="/terms_of_use.pdf" target="_blank">Правила пользования Платформой</a>
<a href="/privacy_policy.pdf" target="_blank">Политика конфиденциальности</a>
</span>
</div>
</div>
</footer>
<div class="cookies">
<p class="cookies__desc">
Пользуясь нашим сайтом, вы соглашаетесь с тем, что
<a href="https://skillbox.ru/privacy_policy.pdf" target="_blank" rel="noopener"
type="application/pdf">мы используем cookies</a> 🍪
</p>
<button type="button" class="cookies__button">
Окей
</button>
</div>
<div class="subscribe-popup subscribe">
<div class="subscribe-popup__spacer-mobile"></div>
<div class="subscribe-popup__row-content ">
<button class="subscribe__close"></button>
<div class="subscribe__content">
<div data-subscribe-popup-success class="hidden">
<h2 class="subscribe__header-success">Спасибо за подписку! Забирайте 5 бесплатных курсов:</h2>
<ul class="subscribe__list-block">
<li>Найти себя в IT за 5 дней</li>
<li>Как найти себя в дизайне в 2025 году</li>
<li>Интерьеры, мебель, ландшафт и декорирование</li>
<li>Интернет-маркетинг на практике</li>
<li>Бизнес-аналитик, продакт- и проджект-менеджер</li>
</ul>
<div class="subscribe__btns-el">
<a
target="_blank"
href="https://refer.id/?bot=skillbox_main_bot&platform=telegram&verbose_name=Skillbox&bot_avatar=https://designer.ftrcdn.com/uploads/bot_avatars/medium_54ab1ce8c393eb3df1474846ce0a0e2c.png&n=137050&c=9209&bc_number=890&?utm_source=media&utm_medium=&utm_campaign=all_all_media_banners_invite_sbornik-890_all_bot_skillbox"
class="subscribe__el-btn">Получить доступ</a>
</div>
</div>
<div data-subscribe-popup-content>
<h2 class="subscribe__header">У нас есть классные рассылки!</h2>
<form action="/media/code/kurs-po-vim-chast-4-plaginy-fayl-vimrc-i-nerdtree/" class="newsletter-form page-subscription__form3" data-type="popup">
<input type="hidden" name="action" value="subscribe">
<div class="subscribe__checkboxes"></div>
<div class="subscribe__email email_popup">
<input class="subscribe-form__input" type="text" name="email" placeholder="Email" >
<span class="subscribe-form__label-name">Электронная почта</span>
<button type="submit" class="popup-btn-click">Подписаться</button>
<span class="email__error">Поле необходимо заполнить</span>
</div>
<div class="subscribe-popup__checkbox-end">
<div class="subscribe-popup__checkbox-item" data-checkbox-personal-data>
<div class="subscribe__checkbox">
<input type="checkbox" name="agreements[PERS]" id="isCheckTrue" value="1" data-checkbox-personal-data-input>
<label for="isCheckTrue"><span>Я согласен на <a target="_blank" href="https://skillbox.ru/legal-docs/chou/file/privacy_policy/version-290425.pdf">обработку персональных данных</a></span></label>
</div>
<span class="email__error">Нужно ваше согласие</span>
</div>
<div class="subscribe__bottom">
<span>Нажимая на кнопку, я соглашаюсь с <a target="_blank" href="https://skillbox.ru/legal-docs/skillbox/file/terms_of_use/version-300824.pdf">правилами пользования Платформой</a></span>
</div>
<div class="subscribe-popup__checkbox-item" data-checkbox-personal-data-two>
<div class="subscribe__checkbox subscribe__checkbox--end" >
<input type="checkbox" name="agreements[ADS]" id="isAdsCalls" value="1" checked="" data-checkbox-personal-data-input-two>
<label for="isAdsCalls">Я согласен <a target="_blank" href="https://skillbox.ru/legal-docs/chou/file/soglasie-na-poluchenie-reklamy.pdf">получать рекламу и звонки</a></label>
</div>
<span class="email__error">Нужно ваше согласие</span>
</div>
</div>
</form>
</div>
</div>
</div>
<!-- src="/static/images/articles/subscribe-popup-img.png" -->
</div>
<div class="bg-modal-overlay bg-modal-overlay--transparent"></div>
<script data-skip-moving="true" id="popup__data--formatted">
$(".popup-btn-click").on("click" , function (){
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
let input = $(this).closest(".subscribe__email").find(".subscribe-form__input");
let inputValue = input.val();
if(emailPattern.test(inputValue)) {
(window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() { rrApi.setEmail(inputValue);});
}
});
/*
window.popupData = {
"8": {
header: 'У нас есть классные рассылки про дизайн!!!',
category: 'Дизайн',
checkboxes: [
'Лучшие статьи про Дизайн',
'«Типографика без боли»'
]
},
"10": {
header: 'У нас есть классные рассылки про код',
category: 'Код',
checkboxes: [
'Лучшие статьи про Код и Людей кода',
'«Жизнь без багов»'
]
},
"18": {
category: 'Геймдев',
checkboxes: []
},
"21": {
header: 'У нас есть классные рассылки про бизнес',
category: 'Бизнес',
checkboxes: [
'Лучшие статьи про Бизнес',
'«Цифровая жизнь»',
'«EdTech по полочкам»'
]
},
"9": {
header: 'У нас есть классные рассылки про бизнес',
category: 'Маркетинг',
checkboxes: [
'Лучшие статьи про Бизнес',
'«Цифровая жизнь»',
'«EdTech по полочкам»'
]
},
"11": {
header: 'У нас есть классные рассылки про бизнес',
category: 'Управление',
checkboxes: [
'Лучшие статьи про Бизнес',
'«Цифровая жизнь»',
'«EdTech по полочкам»'
]
},
"17": {
category: 'Развитие',
checkboxes: []
},
"22": {
header: 'У нас есть классные рассылки про образование',
category: 'Образование',
checkboxes: [
'Лучшие статьи про Образование',
'«EdTech по полочкам»',
'«Мой успешный онлайн-курс»'
]
},
}
*/
window.popupData = {"header":"\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 - \u043d\u0430 \u043f\u043e\u0447\u0442\u0443!\u003Cbr\/\u003E\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0435\u043c\u0443 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438\u003Cbr\/\u003E\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 5 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u043a\u0443\u0440\u0441\u043e\u0432:","category":"\u041a\u043e\u0434","checkboxes":{"23":"\u041c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442","24":"\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433","26":"\u041a\u043e\u0440\u043f. \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435","13":"\u0414\u0438\u0437\u0430\u0439\u043d","16":"\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435","15":"\u041e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","17":"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438\u0433\u0440","18":"\u041f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u044f, \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e"},"code":"code","scroll":true};
window.subscribePopupShow = 1;
</script>
<div class="copied">
<img src="/static/images/articles/done-circle.svg" alt="" class="copied__icon">
<p class="copied__text">
Ссылка скопирована
</p>
</div>
<!-- <style>@font-face{font-display:swap;font-family:Graphik;font-weight:500;font-style:normal;src:url(https://248006.selcdn.ru/Shared/fonts/GraphikLCTT-VA-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:Graphik;font-weight:700;font-style:normal;src:url(https://248006.selcdn.ru/Shared/fonts/GraphikLCTT-VA-Bold.woff2) format("woff2")}.universal-notice{box-sizing:border-box;text-decoration:none;display:none;min-height:48px;color:var(--banner-color);background-color:var(--banner-bg);overflow:hidden;font-family:Graphik,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transition:opacity .25s ease-in-out;transition:opacity .25s ease-in-out}.universal-notice *{box-sizing:inherit}.universal-notice.universal-notice--active{display:block}.universal-notice--bitrix{z-index:1000}.universal-notice__wrapper{position:relative;-webkit-box-pack:start;justify-content:flex-start;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-left:12px;padding:4px 0}.universal-notice__title{position:relative;flex-shrink:0;width:132px;margin-right:27px;font-size:14px;line-height:20px;text-transform:uppercase}.universal-notice__timer{display:none;margin:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.universal-notice__button{flex-shrink:0;min-width:120px;padding:8px 12px;border-radius:25px;font-weight:500;font-size:12px;line-height:16px;color:#3925b7;text-align:center;text-transform:uppercase;background-color:#ffa6a6}@media (min-width:768px){.universal-notice{min-height:72px}.universal-notice__wrapper{-webkit-box-pack:center;justify-content:center;height:72px;margin:0}.universal-notice__title{width:252px;margin-right:32px;margin-left:20px;font-size:24px;line-height:32px}.universal-notice__button{min-width:200px;margin-right:20px;padding:14px 36px;font-size:16px;line-height:20px}}@media (min-width:768px) and (max-width:0px){.universal-notice{min-height:72px}.universal-notice__wrapper{-webkit-box-pack:center;justify-content:center;height:72px;margin:0}.universal-notice__title{width:252px;margin-right:32px;margin-left:20px;font-size:24px;line-height:32px}.universal-notice__button{min-width:200px;margin-right:20px;padding:14px 36px;font-size:16px;line-height:20px}}@media (min-width:1280px) and (max-width:0px){.universal-notice__wrapper{padding:0}.universal-notice__title{width:unset;margin-right:76px}.universal-notice__timer{flex-shrink:0;margin-right:32px;font-weight:700;font-size:24px;line-height:32px}.universal-notice__timer.js-universal-notice-active{display:-webkit-box;display:flex}.universal-notice__days{margin-right:5px}}@media (min-width:1280px){.universal-notice__wrapper{padding:0}.universal-notice__title{width:unset;margin-right:76px}.universal-notice__timer{flex-shrink:0;margin-right:32px;font-weight:700;font-size:24px;line-height:32px}.universal-notice__timer.js-universal-notice-active{display:-webkit-box;display:flex}.universal-notice__days{margin-right:5px}}</style>-->
</body>
</html>