Одна из моих любимых частей о регистрах - использовать их как макросы!
Допустим, вы имеете дело с файлом значений с разделителями табуляции следующим образом:
ID Df %Dev Lambda
1 0 0.000000 0.313682
2 1 0.023113 0.304332
3 1 0.044869 0.295261
4 1 0.065347 0.286460
5 1 0.084623 0.277922
6 1 0.102767 0.269638
7 1 0.119845 0.261601
Теперь вы решаете, что вам нужно добавить знак процента в конце поля% Dev (начиная со 2-й строки). Мы сделаем простой макрос в (произвольно выбранном) mрегистре следующим образом:
Нажмите:: qmдля начала записи макроса в mрегистр.
EE: Перейти к концу 3-го столбца.
a: Режим вставки, чтобы добавить в конец этого столбца.
%: Введите знак процента, который мы хотим добавить.
<ESC>: Вернуться в командный режим.
j0: Перейти к началу следующей строки.
q: Остановить запись макроса
Теперь мы можем просто напечатать @mэтот макрос для текущей строки. Кроме того, мы можем напечатать @@повторить или 100@mсделать это 100 раз! Жизнь выглядит довольно хорошо.
В этот момент вы должны сказать: « НО ПОДОЖДИТЕ, ЧТО ТАКОЕ ЭТО СДЕЛАНО С РЕГИСТРАМИ ?»
Отличный момент. Давайте исследуем, что находится в содержимом mрегистра, набрав "mp. Затем мы получаем следующее:
EEa%<ESC>j0
Сначала это выглядит так, как будто вы случайно открыли двоичный файл в блокноте, но на второй взгляд, это точная последовательность символов в нашем макросе!
Вы любопытный человек, поэтому давайте сделаем что-нибудь интересное и отредактируем эту строку текста, чтобы вставить !вместо скучного старого %.
EEa!<ESC>j0
Тогда давайте вставим это в nрегистр, набрав B"nyE. Тогда, просто для пика, давайте запустим nмакрос в строке наших данных, используя @n....
Боже мой, он добавил !
По сути, запуск макроса подобен нажатию точной последовательности клавиш в регистре этого макроса. Если это не крутой трюк, я съем свою шляпу.