Поиск по сайту:

Полезные плагины редактора Vim для разработчиков программного обеспечения — часть 3: a.vim


До сих пор в этой серии статей, посвященных подключаемым модулям для Vim, связанным с программированием, мы обсуждали основы установки подключаемого модуля Vim с помощью диспетчера подключаемых модулей Pathogen и рассмотрели в общей сложности три подключаемых модуля, а именно Syntastic. Теперь, в этой третьей и последней части, мы обсудим еще один очень полезный плагин под названием a.vim.

Обратите внимание, что все примеры, команды и инструкции, упомянутые в этом руководстве, были протестированы на Ubuntu 16.04, а используемая нами версия Vim — 7.4.

А.вим

Если вы занимаетесь разработкой программного обеспечения и работаете с такими языками программирования, как C и C++, вы согласитесь, что практически невозможно сказать, сколько раз вам приходится переключаться между исходным файлом и заголовочным файлом. Я хочу сказать, что это очень простая задача, которая выполняется очень часто.

Хотя при использовании интегрированной среды разработки с графическим интерфейсом переключаться между файлами легко (поскольку вам нужно всего лишь пару щелчков мыши), все становится немного сложнее, если вы используете интегрированную среду командной строки, такую как Vim. Однако, как вы уже догадались, существует плагин под названием a.vim, который облегчает вам жизнь, особенно когда речь идет о переключении между исходным файлом и заголовочным файлом.

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

  • Во-первых, вам нужно скачать пару файлов (a.vim и alter.txt), что вы можете сделать, перейдя сюда.
  • Затем создайте следующие каталоги: ~/.vim/bundle/avim, ~/. vim/bundle/avim/doc, ~/.vim/bundle/avim/plugin и ~/.vim/bundle/autoload.
  • После создания каталога поместите файл a.vim в ~/.vim/bundle/avim/plugin и ~/.vim/bundle/autoload. , и alter.txt в ~/.vim/bundle/avim/doc.

Вот и все. Если все вышеперечисленные шаги выполнены успешно, плагин будет установлен в вашей системе.

Использовать плагин очень просто: все, что вам нужно сделать, это запустить команду :A - если текущий файл является исходным файлом (скажем, test.c), плагин откроет для вас соответствующий заголовочный файл (test.h). (верно и обратное).

Очевидно, что не каждый раз существует соответствующий файл с таким же именем. В этих случаях запуск :A создаст новый файл с таким именем. Например, если test.h не существует, для вас будет создан и открыт файл с таким именем.

Если вы хотите отключить это поведение, вы можете установить переменную g:alternateNoDefaultAlternate (присвоить ей ненулевое значение) в файле .vimrc, находящемся в вашем домашнем каталоге. .

Двигаясь дальше, вполне нормально также ссылаться на несоответствующий заголовочный файл из исходного файла. Например, если вы находитесь в test.c и хотите переключиться на другой заголовочный файл (скажем, mem.h), а не на test.h, вы можете сделать это, выполнив команду :IH в Vim. Излишне говорить, что вам придется заменить на фактическое имя файла, который вам нужно открыть.

До сих пор любая функциональность, которую мы обсуждали, предполагала, что файл, который вы собираетесь открыть, находится в том же каталоге, что и текущий файл. Однако, как вы согласитесь, это не всегда так. Я хочу сказать, что во многих проектах исходные файлы и соответствующие заголовочные файлы не всегда находятся в одном и том же каталоге.

Чтобы справиться с такими ситуациями, вам нужно использовать переменную 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 в качестве повседневного текстового редактора, должны знать, что существует множество доступных плагинов, которые расширяют возможности редактирования текста Vims и делают его еще лучше. Но лучше оставим это обсуждение на другой день.