Одна из моих любимых частей регистров - это их использование в качестве макросов!
Допустим, вы имеете дело с файлом значений, разделенным табуляцией, как таковым:
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 в строке наших данных, используя _23 _....
Он добавил !.
По сути, запуск макроса похож на нажатие точной последовательности клавиш в регистре этого макроса. Если это не крутой трюк с регистром, я съем свою шляпу.
person
Community
schedule
10.08.2011