Оглавление
- Введение (vim_lib)
- Менеджер плагинов без фатальных недостатков (vim_lib, vim_plugmanager)
- Уровень проекта и файловая система (vim_prj, ботаник)
- Фрагменты и шаблоны файлов (UltiSnips, vim_template)
- Скомпилируйте и запустите что угодно (вим-быстрый запуск)
- Работа с Git (вим_гит)
- Развертывать (vim_deploy)
- Тестирование с помощью xUnit (vim_unittest)
- Библиотека, в которой собрано все (vim_lib)
- Другие полезные плагины
В категорию этого «повторяемого» кода входят все структуры используемого языка, множество классов проектов и тестовых примеров.
К счастью, давно придумано решение, позволяющее работать с таким кодом быстрее и качественнее.
Уровни дублированного кода Неизбежно повторяющийся код можно разделить по масштабу на две группы:
- Языковые структуры или блоки кода — например, для, if/else, while, структуры классов, а также готовые решения, которые невозможно не скопировать и вставить.
- Целые файлы — например, файлы модульных тестов, документация, классы сущностей.
Фрагменты Сниппеты — это именованные фрагменты кода (чего угодно), которые можно быстро вставить, введя имя фрагмента и нажав горячую клавишу.
Например, вы хотите вставить метод получения в класс, который возвращает свойство.
авторизоваться .
Используя фрагменты, вам нужно будет только ввести слово получать в том месте, где будет находиться метод, а затем нажмите клавишу Вкладка .
При этом будет вставлен шаблон метода получения и помещен указатель в тело метода, чтобы вы могли указать имя возвращаемого свойства.
Пример
Взгляните на пример.public function get(){ return $this->_; }
Указатель будет помещен на место символа подчеркивания (_).
После ввода слова авторизоваться , имя метода будет изменено автоматически.
Пример public function getLogin(){
return $this->login;
}
Удобно, не так ли? Но плагин УльтиСнипс позволяет реализовать шаблоны для задач любой сложности, будь то языковые структуры или целые классы.
Я использую этот плагин уже довольно давно для реализации фрагментов кода в Vim. Например, в одном из моих проектов, где важна высокая безопасность, я использую безопасное программирование.
Для этого проекта я реализовал несколько сниппетов, позволяющих быстро проверять входные параметры методов.
Итак, набрав утверждать позитивно Я получаю шаблон типа: assert('is_int(_) && _ > 0');
То есть проверка входного параметра на принадлежность к типу интервал и значение больше нуля.
Другой пример — мои сниппеты для Хабра.
Знаете ли вы, что использование плагина для Firefox под названием Вимператор , можно ли писать статьи на Хабр прямо из Вима? Для этого достаточно открыть окно редактирования статьи, поместить указатель в текстовое поле и нажать комбинацию Ctrl+я .
После этого откроется редактор Vim и все, что вы в нем напишете, после сохранения ( :wq ) будет скопировано в это текстовое поле.
Прохладный? А как насчет использования фрагментов для вставки HTML-тегов? Итак, чтобы добавить хабракат, просто введите резать и нажмите Вкладка , и вы получите готовую метку.
Вы скажете, что сниппеты уже реализованы прямо в меню:
Но вы используете Vim, а это значит, что компьютерная мышь — ваш враг номер один!
Вам понравятся фрагменты, если вам придется писать на разных языках.
В этом случае вам не придется запоминать, как именно пишутся те или иные структуры на том или ином языке, а просто реализовать фрагменты со схожими названиями.
Например, я всегда забываю, как в Bash реализованы определенные структуры, поэтому просто использую фрагменты вроде если , для , для каждого и т. д.
Я не хочу в этой статье описывать, как писать сниппеты для UltiSnips, так как официальная документация сделает это гораздо лучше меня, просто приведу небольшой пример объявления сниппета для создания геттерного метода: Пример snippet get "public function get .
" b
/**
* $2.
* @return ${3:mixed}
*/
public function get${1/\w+\s*/\u$0/}(){
Теги: #vim #фрагменты #шаблоны #Разработка сайтов #vim
-
Основы Оптоволокна
19 Oct, 24 -
Ozon Сменил Генерального Директора
19 Oct, 24 -
Роутеры D-Link
19 Oct, 24 -
Проксирование И Автошардинг В Tarantool/Box
19 Oct, 24