На работе у нас часто бывают следующие требования к редактированию текстовых файлов:
- Введите один и тот же текст несколько раз;
- Генерировать сериализованный текст;
- Каждая строка текста вставляет идентичное предложение текста.
Кроме того, есть много действий, которые нужно повторять. Для этих требований, если мы будем делать это вручную, это определенно будет очень скучно и потеряет много времени и энергии.
Именно здесь пригодятся макросы 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,yw5 раз.
это здесь,wИспользуется для перехода к следующему слову,ywИспользуется для копирования текущего слова. Причина, по которой здесь требуется 5, заключается в том, что в строке пять частей. соответственно11001 , HDD , Samsung(Обратите внимание, что запятые также считаются частью).
После этого нажмитеESCиaклавишу , чтобы переместить курсор в конец строки, а затем введите);.

Наконец, нажмитеjзатем нажмитеq. здесь,jдля перехода на следующую строку,qИспользуется для остановки записи. На этом макрос, который нам нужен, завершен.
Теперь мы хотим, чтобы оставшиеся 3 строки текста ниже были обработаны в том же формате, что и первая строка, просто нажмите3@dЭтого можно добиться, запустив макрос 3 раза. Таким образом, вставка в базу данных будет намного удобнее, и нам не нужно вручную менять по одному, что просто и эффективно!

в заключении
В процессе написания кода бывает много случаев, когда текст и код очень похожи, и если мы будем модифицировать их вручную один за другим, эффективность будет очень низкой. С артефактом макросов в Vim мы можем выполнять эти повторяющиеся задачи, создавая и используя различные типы макросов, тем самым экономя время и усилия и добиваясь эффективного редактирования.
Это все настоящая любовь после прочтения. Поставить большой палец вверх и уйти? Ваши «Три звена» — самая большая мотивация для Лян Сюй продолжать творить!
- обрати внимание наоригинальныйпублика"Хороший линукс», получите последнюю галантерею Linux в первый раз!
- Ответьте на фон официальной учетной записи [информация] [интервью] [резюме], чтобы получить интервью, самосовершенствование, резюме и другую информацию о выбранных производителях первого уровня.
- Следите за моим блогом:lxlinux.net