На работе у нас часто бывают следующие требования к редактированию текстовых файлов:
- Введите один и тот же текст несколько раз;
- Генерировать сериализованный текст;
- Каждая строка текста вставляет идентичное предложение текста.
Кроме того, есть много действий, которые нужно повторять. Для этих требований, если мы будем делать это вручную, это определенно будет очень скучно и потеряет много времени и энергии.
Именно здесь пригодятся макросы Vim, которые могут быстро выполнить эти повторяющиеся операции за несколько простых шагов, экономя время и силы! Объясните подробно ниже.
Запись и запуск макроса
запись макроса
- Создайте новый файл или откройте существующий файл в редакторе Vim;
- в соответствии с
q
и не отставай宏名
Начать запись. Предположим, мы хотим назвать макрос какb
, затем нажмитеEsc
иqb
начать запись; - редактирование текста...
- в соответствии с
q
Остановить запись. На этом запись макроса завершена.
запуск макроса
в соответствии с@
поймать宏名
чтобы запустить макрос один раз, нажмите次数
поймать@宏名
Повторите запуск макроса несколько раз.
Примеры приведены ниже для подробного ознакомления.
Пример-1: Использование макроса для генерации того же текста несколько раз
Например, если мы хотим сгенерировать 100 строк одного и того же текста, глупый способ — скопировать и вставить нужное количество раз. Это очень неэффективно и очень подвержено ошибкам. С инструментом макросов все очень просто!
Во-первых, в редакторе Vim мы создаем файл с именемfile1.txt
новый файл.
Затем мы нажимаемq
затем нажмитеz
Начните записывать макрос. здесьz
это宏名
, который будет использован позже. Если запись правильная, внизу появитсяrecording @z
шрифт.
После этого нажмитеi
Затем введите текст, который хотите повторить. Например, введите текст здесьLearning Vim Macros
.
Наконец нажмитеq
остановить запись, когдаrecording @z
исчезнет со дна. Таким образом, названныйz
Макрос был записан, и мы можем использовать этот макрос, чтобы повторить работу по вводу текста позже.
Если вы хотите запустить только что созданный макрос один раз, переместите курсор в нужное место в файле и нажмите@z
Все, далее текст будет скопирован еще раз.
Если вы хотите скопировать эту строку N раз, вы можете запустить этот макрос несколько раз. В этом случае просто добавьте макрос перед次数
Вот и все. Например4@z
Вы можете просто запустить макрос четыре раза, соответствующий текст будет скопирован четыре раза.
Пример 2: Генерация серийных номеров с помощью макросов
В примере-1 мы механически повторяем кучу одного и того же текста, так что, если мы хотим сгенерировать текст последовательностью? Это также легко сделать с помощью макросов!
Предположим, мы хотим сгенерировать101-110
Серия чисел, мы выполним это требование вместе.
Сначала в редакторе Vim создайте файл с именемfile2.txt
, затем нажмитеi
тип101.
.
в соответствии сESC
Выйти из набора. затем нажмитеqy
по имени макросаy
Начните запись последующих операций. Подводим курсор к началу первой строки и нажимаемyy
скопируйте текст, затем нажмитеp
Вставьте текст в следующую строку.
Далее нажмитеCtrl + a
Измените значение второй строки с101
увеличить до102
. Наконец, как и раньше, нажмитеq
Остановите запись, и наш макрос готов.
Далее пришло время стать свидетелем чуда!
мы печатаем8@y
, только что записанный макрос запустится 8 раз, сгенерировав103
прибыть110
последовательные числа. Операция в один клик, простая и эффективная!
Это очень удобно для некоторых сериализованных текстов, вам не нужно делать это снова и снова. Копировать --> Изменить числа. Это повторяющаяся и скучная работа, и эффективность будет значительно повышена!
Пример 3. Добавьте один и тот же текст в каждую строку файла.
Когда мы работаем с базой данных, во многих случаях некоторые операторы очень похожи, напримерinsert into items values(100, 20077100050, alvin)
Этот текст будет повторяться много раз. Если теперь у нас есть данные для вставки, как быстро сгенерировать несколько операторов SQL?
В этом примере мы предполагаем, что файл данныхfile3.txt
Есть 4 части данных, как показано ниже.
Сначала мы открываем файл данных в редакторе Vim.file3.txt
, затем нажмитеESC
, затем нажмитеqd
по имени макросаd
Начать запись.
Подведите курсор к началу файла, нажмитеi
клавиша для вставки текста. а затем введитеinsert into items values(
, затем нажмитеESC
,w
,yw
5 раз.
это здесь,w
Используется для перехода к следующему слову,yw
Используется для копирования текущего слова. Причина, по которой здесь требуется 5, заключается в том, что в строке пять частей. соответственно11001
,
HDD
,
Samsung
(Обратите внимание, что запятые также считаются частью).
После этого нажмитеESC
иa
клавишу , чтобы переместить курсор в конец строки, а затем введите);
.
Наконец, нажмитеj
затем нажмитеq
. здесь,j
для перехода на следующую строку,q
Используется для остановки записи. На этом макрос, который нам нужен, завершен.
Теперь мы хотим, чтобы оставшиеся 3 строки текста ниже были обработаны в том же формате, что и первая строка, просто нажмите3@d
Этого можно добиться, запустив макрос 3 раза. Таким образом, вставка в базу данных будет намного удобнее, и нам не нужно вручную менять по одному, что просто и эффективно!
в заключении
В процессе написания кода бывает много случаев, когда текст и код очень похожи, и если мы будем модифицировать их вручную один за другим, эффективность будет очень низкой. С артефактом макросов в Vim мы можем выполнять эти повторяющиеся задачи, создавая и используя различные типы макросов, тем самым экономя время и усилия и добиваясь эффективного редактирования.
Это все настоящая любовь после прочтения. Поставить большой палец вверх и уйти? Ваши «Три звена» — самая большая мотивация для Лян Сюй продолжать творить!
- обрати внимание наоригинальныйпублика"Хороший линукс», получите последнюю галантерею Linux в первый раз!
- Ответьте на фон официальной учетной записи [информация] [интервью] [резюме], чтобы получить интервью, самосовершенствование, резюме и другую информацию о выбранных производителях первого уровня.
- Следите за моим блогом:lxlinux.net