{{Laracast Vim Mastery, 19, Marks, 4.03.2016, 11.07.2016, https://laracasts.com/series/vim-mastery/episodes/19}} (0:00) Следующий шаг - это метки (marks). Это родная функция в Vim. Когда вы помечаете какую-то часть кода, то позже можете вернуться к ней с помощью простого нажатия клавиши. Например, может быть вы правите %%AuthController%%. У меня есть %%(t)G%%, чтобы перейти вниз файла. Может быть, мы работаем сейчас в этом разделе, но, к примеру, решили, что хотим просмотреть другой файл сначала. (0:30) Если мы хотим посмотреть %%User%%, мы идем в класс %%User%%, делаем что бы то ни было в нем. И далее, когда вы, например, нашли то, что нужно, вы можете вернуться обратно двумя разными способами. Первый - можно использовать Command+E, чтобы просто вернуться в предыдущий файл. Это сработает. Или вы можете нажать Ctrl+6 и это перенесет вас обратно в предыдущее место. Или - в этом месте, позвольте вернутся в %%User%% - вы можете нажать Ctrl+O и это отправит вас обратно в место предыдущей правки. (1:00) Вы можете нажать Ctrl+%%(t)I%%, чтобы сделать противоположное. Итак, Ctrl+O - перейти назад, Ctrl+%%(t)I%% - перейти вперед в вашей истории. Но вы обнаружите, что в реальности, вы обычно переходите к нескольким разным файлам. Поэтому нельзя просто нажать Ctrl+O и перейти точно туда, где вы были. Возможно, вам придется пролистать 5 разных файлов. Это делает метки весьма полезным. Вот, что мы можем сделать. Давайте вернемся в наш %%AuthController%%. И, скажем, мы работаем тут, но хотим сначала проверить какую-то вещь. (1:30) Итак, поставлю метку, нажав букву %%(t)m%% и, далее, любую букву. К примеру, введу снова %%(t)m%%. Теперь мы создали метку и назначили клавишу %%(t)m%% для неё. Теперь, мы можем проверить это, введя %%(t):marks%%. Вот тут. Вы можете видеть, как Vim создает группу меток сам по себе. Мы посмотрим несколько из них. Есть очень полезная - одинарные кавычки. Вот та, которую мы создали. Теперь мы пометили эту конкретную позицию. (2:00) Это значит, где бы то ни было в этом файле, если мне нужно вернуться на эту строчку... Скажем, перейдем вверх, нажав %%(t)gg%%. Теперь, чтобы вернуться туда, я могу нажать %%(t)`%% и, далее, клавишу %%(t)m%%. Мы переместились точно туда. Попробуем еще раз. Пометим этот раздел. Нажимаем %%(t)m%% для пометки. И, снова, - берем любую букву, все что угодно, например, %%(t)a%% в этот раз. Теперь, если мы посмотрим - я назначил букву тут. Это означает, что в любом месте этого файла, я могу вернутся в это место. (2:30) %%(t)`a%% - мы вернулись. Обратите внимание, если мы перейдем в любой другой файл, например, %%(t)server.php%%... Если я введу это здесь, %%(t)`a%% - нет, пометка не сработала. "Нет такой метки". Потому что, когда вы ставите метку... Это нужно запомнить. Если вы используете строчную букву, то это ограничивает вас текущим буфером. Но, с другой стороны, если использовать заглавную букву, метка будет работать по всем файлам. (3:00) В качестве общего правила я всегда использую заглавную букву. Это означает, я бы сделал так. Чтобы вернуться сюда, я нажму %%(t)mM%%. Теперь я могу вернуться именно к этому месту из любого файла. Я нажму Command+E, чтобы перейти в файл %%(t)gulpfile.js%%. И, если мне нужно вернуться туда, в любую точку, опять - %%(t)`M%%. И я вернулся точно туда. Представьте что-то, вроде этого. Я введу %%(t),lr%% - маппинг, чтобы перейти в файл %%(t)routes.php%%. (3:30) И, скажем, мы создадим POST-маршрут. Что-то вроде этого: %%(t)PostController@store%%. Теперь представьте, что в каком-то представлении вы создаете форму. Например, здесь. Напишем %%(t)
%%, у нас есть несколько разных вариантов. (8:00) В этом весь Vim. Однако, когда вы хотите сделать это, то на практике обнаружите, что нажимаете снова %%(t)V%% и просто протягиваете выделение вниз, нажимая %%(t)j%% на полсекунды и затем нажимаете %%(t)d%%. Это нормально. Это то, что, возможно, сделал бы и я. Но как только вы освоите метки, они станут вашей привычкой. Да, это тоже вариант. Итак, ставим метку и уходим выше. И в реальной практике, вы, возможно долго мотаете вверх по странице. Это имеет больше смысла в этом случае. Итак, %%(t)d`m%% удалит все до метки. (8:30) Есть еще несколько других вещей. Давайте закончим с ещё одним примером. Мы работаем в нашем представлении %%(t)welcome%%. Но, представьте, что мы закрыли его. И затем, если вы открыли Vim снова... Если вам нужно вернуться в этот файл, то, да, вам нужно нажать Ctrl+P и промотать до него. Но, помните, как я сказал раньше, что некоторые метки устанавливаются автоматически. Посмотрим сюда. Обратите внимание на метку 0. Она установлена автоматически на место вашей предыдущей правки. (9:00) Помните, что она останется после окончания работы с Vim. Если вы закроете и откроете приложение снова, Vim запомнит метку. Это значит я могу нажать %%(t)`0%% и мгновенно перейти в последний файл, над которым работал. Здорово, правда? Если это не работает, вот вам небольшой совет. Попробуйте сделать так: %%(sh)cat ~/.viminfo%%. И если вы не видите что-то вроде этого... Если вы получили отказ в доступе, это значит вам нужно изменить доступ к файлу. Вы можете, например, поменять владельца на вашего пользователя. (9:30) Мое, к примеру, - %%(t)jeffreyway%%. И, далее, применить это к файлу %%(t).viminfo%%. Это должно помочь. Разве не отлично? Скажем, вы работаете над классом %%Kernel%%. И, далее, по какой-то причине... например, подошло время обеда и вы закрыли его. Когда вы вернетесь, просто нажмите %%(t)`0%% и вы мгновенно окажетесь в месте, на котором закончили.