Полная Версия Vim: Фрагменты Кода И Шаблоны Файлов

Оглавление

  1. Введение (vim_lib)
  2. Менеджер плагинов без фатальных недостатков (vim_lib, vim_plugmanager)
  3. Уровень проекта и файловая система (vim_prj, ботаник)
  4. Фрагменты и шаблоны файлов (UltiSnips, vim_template)
  5. Скомпилируйте и запустите что угодно (вим-быстрый запуск)
  6. Работа с Git (вим_гит)
  7. Развертывать (vim_deploy)
  8. Тестирование с помощью xUnit (vim_unittest)
  9. Библиотека, в которой собрано все (vim_lib)
  10. Другие полезные плагины
Нужно ли рассказывать вам, как повторное использование кода и проектных решений облегчает жизнь программиста? Но можем ли мы использовать все повторно? Очень часто в своих проектах я сталкиваюсь с задачами, которые требуют копипаста кода и избежать этого невозможно.

В категорию этого «повторяемого» кода входят все структуры используемого языка, множество классов проектов и тестовых примеров.

К счастью, давно придумано решение, позволяющее работать с таким кодом быстрее и качественнее.

Уровни дублированного кода Неизбежно повторяющийся код можно разделить по масштабу на две группы:

  1. Языковые структуры или блоки кода — например, для, if/else, while, структуры классов, а также готовые решения, которые невозможно не скопировать и вставить.

  2. Целые файлы — например, файлы модульных тестов, документация, классы сущностей.

Для каждой группы используются разные решения, позволяющие легко и быстро копировать и вставлять код. Естественно, эти решения уже реализованы в редакторе Vim и я предлагаю их попробовать.

Фрагменты Сниппеты — это именованные фрагменты кода (чего угодно), которые можно быстро вставить, введя имя фрагмента и нажав горячую клавишу.

Например, вы хотите вставить метод получения в класс, который возвращает свойство.

авторизоваться .

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

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

Пример

  
  
  
   

public function get(){ return $this->_; }

Взгляните на пример.

Указатель будет помещен на место символа подчеркивания (_).

После ввода слова авторизоваться , имя метода будет изменено автоматически.

Пример

public function getLogin(){ return $this->login; }

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

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

Для этого проекта я реализовал несколько сниппетов, позволяющих быстро проверять входные параметры методов.

Итак, набрав утверждать позитивно Я получаю шаблон типа:

assert('is_int(_) && _ > 0');

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

Другой пример — мои сниппеты для Хабра.

Знаете ли вы, что использование плагина для Firefox под названием Вимператор , можно ли писать статьи на Хабр прямо из Вима? Для этого достаточно открыть окно редактирования статьи, поместить указатель в текстовое поле и нажать комбинацию Ctrl+я .

После этого откроется редактор Vim и все, что вы в нем напишете, после сохранения ( :wq ) будет скопировано в это текстовое поле.

Прохладный? А как насчет использования фрагментов для вставки HTML-тегов? Итак, чтобы добавить хабракат, просто введите резать и нажмите Вкладка , и вы получите готовую метку.

Вы скажете, что сниппеты уже реализованы прямо в меню:

Полная версия Vim: фрагменты кода и шаблоны файлов

Но вы используете Vim, а это значит, что компьютерная мышь — ваш враг номер один! Вам понравятся фрагменты, если вам придется писать на разных языках.

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

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

snippet get "public function get .

" b /** * $2. * @return ${3:mixed} */ public function get${1/\w+\s*/\u$0/}(){

Теги: #vim #фрагменты #шаблоны #Разработка сайтов #vim

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.