{{Laracast Vim Mastery, 14, Managing Snippets, 16.02.2016, 21.06.2016, https://laracasts.com/series/vim-mastery/episodes/14}} (0:00) Когда речь идет о сниппетах, у вас есть несколько вариантов. Но, обычно, у меня очень хорошо работает это расширение. Давайте установим его в этом уроке. %%(t),ev%%, переместит меня в файл %%(t).vimrc%%. Простите, еще раз, - мы должны перейти в наш файл %%(t)plugins.vim%% и вставить это сюда. Вот так. Хорошо, теперь можем вернуться. И, кстати, я просто нажму Ctrl+6 (там, где %%(t)^%%), чтобы перейти к предыдущему файлу, где я работал. (0:30) Это удобно, чтобы переключаться между двумя файлами. Давайте сохраним это и запустим установку плагина. Теперь мы установили его. Прежде, чем познакомиться с ним, очень быстро… Если вы вдруг нажмете Escape или какую-либо неправильную клавишу, вы услышите такой звуковой сигнал. Слышали? Весьма раздражает. Просто отключите его совсем. Вот так: я вставлю этот небольшой сниппет сюда. Так мы просто выключим звуковые сигналы об ошибках. (1:00) Если я сохраню и нажму теперь Escape или неверную клавишу, то сигнала не будет. Уже не так раздражает. Это небольшой совет. Давайте вернемся к SnipMate. Я создам файл с названием %%(t)foo.php%%. И давайте создадим сниппет. Все ваши сниппеты будут сохранены в папке %%(t).vim%%. Конкретно - в папке %%(t)snippets%%, которую мы можем создать. Внутри этой папки мы создаем отдельный файл для каждого типа файлов. (1:30) К примеру, создадим файл %%(t)php.snippets%%. В этом файле будут PHP-сниппеты. Попробуем. %%(t).vim/snippets/php.snippets%%. Создадим сниппет. Почему бы нам не взять %%(t)met%%, который создает наиболее используемую функцию с модификатором %%public%%. Итак: %%public function%%... Мне нужна точка для остановки. Можем представить ее в виде %%(t)${1}%% (в фигурных скобках индекс точки). (2:00) В данном случае это 1. Мы также можем установить значение по умолчанию, если нужно. Давайте завершим это. Зададим тут другую конечную точку. Теперь сохраню. Нажму Ctrl+6, чтобы перейти в предыдущее расположение. Попробуем. met+Tab... - работает. Если у вас не работает, перезагрузите и должно заработать. (2:30) Я могу ввести имя метода, снова нажать Tab и все готово. Почему бы нам не написать еще кое-что? И быстро, - давайте упростим редактирование этого файла. Поскольку, да, легко забыть, где он находится. Вы не должны думать об этом. Прокрутим вниз… Может быть поставить сюда? Хорошо. Это для быстрой правки файла %%(t).vimrc%%. А этот будет редактировать любой файл со сниппетами. Теперь, что я сделаю, - поменяю %%(t)tabedit%% на обычную правку. И далее: %%(t).vim/snippets%%. (3:00) И позволю пользователю заполнить оставшееся. Теперь, в этом месте, если я введу %%(t),es%% - все готово. Заполню, нажму Tab - готово. Кстати, вы не видели этого еще, - вот, как выглядит свернутый кусок кода. Я могу нажать %%(t)za%%, чтобы открыть. %%(t)zc%% - чтобы закрыть. Как я говорил, на самом деле, я не часто пользуюсь этим. Хорошо. Создам другой сниппет и дам вам сделать это самим. Он будет называться %%(t)pmet%% и предназначен для функции с модификатором %%protected%%. (3:30) Есть еще у меня другой, на самом деле для разных комбинаций. %%(t)smet%% для функции с модификатором %%public static%%. Теперь, какие еще… Добавим пустую строку тут. Я часто использую сниппет, который называется %%(t)rg%%. Он предназначен для маршрута: %%Route::get('${1}', '${2}')%%. Далее, конечно, я добавляю похожую вещь для %%(t)patch%%, %%(t)put%% и %%(t)delete%%. (4:00) Пока сделаем только %%(t)rp%% (%%Route::post%%). Возможно, вы захотите добавить вариант: ввести %%(t)rga%% и получить версию с анонимной функцией, или замыканием. Типа этого. И теперь добавим тут конечную точку. Давайте продублируем это и напишем %%(t)rpa%%. Это будет POST-запрос. Это сохранит вам реально много времени. Потратьте несколько минут, чтобы поиграться с этим, настройте сниппеты. (4:30) Если вы обнаружите, что пишете одно и то же снова и снова, перекурите, создайте сниппет, чтобы вам не приходилось делать это опять. Давайте вернемся к файлу %%(t)routes.php%%. Мы используем наш удобный маппинг, о котором мы узнали в предыдущем видео: %%(t),lr%%, для быстрого просмотра %%(t)routes.php %%. Тут внизу… хотя, не важно… Давайте удалим все это. Мы можем ввести rg+Tab. Теперь, снова, - если вы делаете это у себя и у вас не работает, как у меня, вам либо нужно перезагрузить MacVim, либо сделать это вручную. Вот так :%%(t)call ReloadAllSnippets()%%. (5:00) Или, опять же, вы можете создать горячие клавиши для этой команды. Как хотите. Итак, мы перезагрузили их. Теперь могу ввести rg+Tab - и это работает. Например, могу вставить вот что: %%(t)HomeController@home%%. Или: rga+Tab - и теперь получу эту версию. Очень удобно. И, конечно, %%(t)rp%%... и, наконец, %%(t)rpa%%. Обещаю, это сэкономит кучу времени. (5:30) Позвольте показать, с чем еще вы можете поиграться. Если мы вернемся в файл со сниппетами. Будет полезно сделать так, просто введите %%(t)snippet $%% и это будет означать %%(t)$this→${1}%%. Очень полезно. Позвольте, покажу вам это в действии. Перейдем в контроллер. Введем %%(t)pmet%%, чтобы создать метод с модификатором %%protected%%. Пишем %%foobar()%%, Tab. И теперь я введу %%(t)$%%+Tab. Оп, нужно перезагрузить сниппеты, конечно. (6:00) Хорошо, еще раз. %%(t)$%%+Tab и, снова, это сэкономит совсем немного времени, но, что-то ещё также сэкономит, и в сумме это порядочно времени. Хорошо, оставляю это для ваших собственных сниппетов. Просто, помните: %%(t),es%%, чтобы загрузить любой из файлов со сниппетами. Это значит, кстати, если вам нужен специальный сниппет CSS, то нужно сделать что-то вроде этого %%(t)css.snippets%%… Теперь, когда тип вашего файла будет CSS, он будет прочитан из этого файла, а не из файла для PHP. Хорошо, помещу это в GitHub. Можете поиграться с этим.