Vim плагины · 4 min read · Nov 30, 2025
Полезные плагины редактора Vim для разработчиков программного обеспечения - часть 3: a.vim
До сих пор в этой серии статей, охватывающих плагины, связанные с программированием для Vim, мы обсудили основы установки плагинов Vim с использованием менеджера плагинов Pathogen и рассмотрели в общей сложности три плагина - а именно Tagbar, delimitMate и Syntastic. Теперь, в этой третьей и последней части, мы обсудим еще один очень полезный плагин под названием a.vim.
Обратите внимание, что все примеры, команды и инструкции, упомянутые в этом руководстве, были протестированы на Ubuntu 16.04, а версия Vim, которую мы использовали, - 7.4.
A.vim
Если вы занимаетесь разработкой программного обеспечения и работаете с языками программирования, такими как C и C++, вы согласитесь, что практически невозможно сказать, сколько раз вам приходится переключаться между исходными и заголовочными файлами. Я имею в виду, что это очень базовая задача, которая выполняется очень часто.
Хотя переключаться между файлами легко, когда вы используете графическую IDE (так как вам просто нужно сделать пару щелчков мышью), дела становятся немного сложнее, если вы используете командную IDE, такую как Vim. Однако, как вы уже могли догадаться, существует плагин - под названием a.vim - который облегчает вам жизнь, особенно когда дело доходит до переключения между исходными и заголовочными файлами.
Прежде чем мы перейдем к использованию, стоит упомянуть, что процесс установки этого плагина отличается от того, как мы устанавливали другие плагины, обсуждаемые в этой серии статей. Следующие шаги необходимы в этом случае:
- Во-первых, вам нужно скачать пару файлов (a.vim и alternate.txt), что вы можете сделать, перейдя сюда.
- Далее создайте следующие директории: ~/.
vim/bundle/avim, ~/.vim/bundle/avim/doc, ~/.vim/bundle/avim/plugin, и ~/.*vim/bundle/autoload*. - После создания директорий поместите a.vim в ~/.vim/bundle/avim/plugin и ~/.vim/bundle/autoload, а alternate.txt в ~/.vim/bundle/avim/doc.
Вот и все. Если все вышеперечисленные шаги выполнены успешно, плагин будет установлен на вашей системе.
Использовать плагин очень просто: все, что вам нужно сделать, это выполнить команду :A - если текущий файл является исходным файлом (например, test.c), плагин откроет соответствующий заголовочный файл (test.h) для вас (и наоборот).
Очевидно, что не всегда существует соответствующий файл с тем же именем. В таких случаях выполнение :A создаст новый файл с этим именем. Например, если test.h не существует, файл с этим именем будет создан и открыт для вас.
Если вы хотите отключить это поведение, вы можете установить переменную g:alternateNoDefaultAlternate (присвоив ей ненулевое значение) в файле .vimrc, который находится в вашей домашней директории.
Двигаясь дальше, вполне нормально ссылаться на несоответствующий заголовочный файл из исходного файла. Например, если вы находитесь в test.c и хотите переключиться на какой-то другой заголовочный файл (например, mem.h), а не test.h, вы можете сделать это, выполнив команду IH
До сих пор мы обсуждали функциональность, предполагая, что файл, который вы собираетесь открыть, находится в той же директории, что и текущий файл. Однако, как вы согласитесь, это не всегда так. Я имею в виду, что во многих проектах местоположение исходных файлов и соответствующих заголовочных файлов не всегда находится в одной и той же директории.
Чтобы справиться с такими ситуациями, вам нужно использовать переменную g:alternateSearchPath. Вот что официальная документация говорит об этой переменной:
“Этот плагин позволяет настраивать путь поиска, который он использует для поиска исходных и заголовочных файлов. Путь поиска задается установкой переменной g:alternateSearchPath. Значение по умолчанию следующее:”
g:alternateSearchPath = 'sfr:../source,sfr:../src,sfr:../include,sfr:../inc' “Это означает, что соответствующий файл будет искаться в ../source, ../src, ../include и ../inc, все относительно текущего файла, из которого происходит переключение. Значение переменной g:alternateSearchPath - это просто список префиксов и директорий, разделенных запятыми. Префикс “sfr:” указывает, что путь относителен к файлу. Другие префиксы - это “wdr:”, который указывает, что директория относительна к текущей рабочей директории, и “abs:”, который указывает, что путь абсолютный. Если префикс не указан, предполагается “sfr:”.”
Если все вышеперечисленные функции этого плагина уже заставили вас сказать “вау”, позвольте мне сказать, что это еще не все. Еще одна чрезвычайно полезная функция, которую предлагает плагин, - это возможность разделить экран Vim так, чтобы одновременно можно было просматривать как исходный файл, так и соответствующий заголовочный файл.
Более того, вы можете разделить экран как горизонтально, так и вертикально, в зависимости от того, что вам больше подходит. Используйте команду :AS для горизонтального разделения экрана и команду :AV для вертикального разделения.


Используйте команду :A для переключения между открытыми файлами.
Плагин также позволяет вам открыть соответствующий файл в отдельной вкладке в том же окне Vim. Вы можете сделать это, выполнив команду :AT.

Конечно, как :AV, :AS и :AT, вы также можете использовать команды :IHV, :IHS и :IHT.
Заключение
Хотя существует множество плагинов Vim, связанных с программированием, те, которые мы обсудили в этой трехчастной серии, должны быть достаточными, чтобы дать вам представление о том, насколько мощным становится редактор, если у вас есть правильные плагины, включенные для вашей работы по разработке программного обеспечения.
Конечно, мы сосредоточились только на программной части здесь. Для тех из вас, кто использует Vim в качестве текстового редактора, вы должны знать, что существует множество плагинов, которые добавляют функциональность редактирования текста в Vim и делают его еще лучше. Но мы оставим это обсуждение на другой день.
Get new posts in your inbox
No spam. Unsubscribe anytime.