Я считаю, что макросы - это отличный способ делать необычные вещи, если вы заинтересованы в том, чтобы делать это не чаще одного раза в голубой луне. Допустим, у вас есть следующая таблица:
%
% Not Important
% O ------------------------->
% | Stuff in side the table
% S |
% o | So you can't just write your
% m |
% e | text and transform it into
% |
% M | the shape that you want
% s |
% g | Macros help here
% |
% V
И скажем, вы хотите заменить Some Msg
на Other Message
. Прежде всего, давайте расширим таблицу для дополнительного символа (строка перед последним yy5p
:
%
% Not Important
% O ------------------------->
% | Stuff in side the table
% S |
% o | So you can't just write your
% m |
% e | text and transform it into
% |
% M | the shape that you want
% s |
% g | Macros help here
% |
% |
% |
% |
% |
% |
% V
Макрос, который я собираюсь придумать, позаботится о преобразовании текста из горизонтального в вертикальный при замене старого текста. Начните с ввода текста в первом месте (курсор находится в конце Other Message
):
%
% Not Important
% O ------------------------->
% | Stuff in side the table
% SOther Message |
% o | So you can't just write your
% m |
% e | text and transform it into
% |
% M | the shape that you want
% s |
% g | Macros help here
% |
% |
% |
% |
% |
% |
% V
Запишите следующий макрос:
qq
: начать запись макроса с именем q
^
: перейти к началу строки
3l
: перейти к столбцу, в который будет помещен текст
x
: удалить старый символ
l
: двигаться вправо, оставив один символ из сообщения вместо старого:
v
: перейти в визуальный режим
f|
: прыгать, чтобы |
2h
: сдвинуть назад два символа
d
: вырезать выбор
j
: двигаться вниз
P
: вставить перед курсором
q
: прекратить запись макроса
На данный момент у вас есть:
%
% Not Important
% O ------------------------->
% | Stuff in side the table
% O |
% other Message | So you can't just write your
% m |
% e | text and transform it into
% |
% M | the shape that you want
% s |
% g | Macros help here
% |
% |
% |
% |
% |
% |
% V
Повторите макрос достаточно много раз (т. Е. Количество символов, но вам не нужно знать его заранее. Просто недооценивайте и продолжайте, как только увидите, насколько приблизительной была ваша оценка). Итак, поехали 10@q
. Вы получаете:
%
% Not Important
% O ------------------------->
% | Stuff in side the table
% O |
% t | So you can't just write your
% h |
% e | text and transform it into
% r |
% | the shape that you want
% M |
% e | Macros help here
% s |
% s |
% a |
% ge |
% |
% |
% V
Хорошо, еще один ( @q
):
%
% Not Important
% O ------------------------->
% | Stuff in side the table
% O |
% t | So you can't just write your
% h |
% e | text and transform it into
% r |
% | the shape that you want
% M |
% e | Macros help here
% s |
% s |
% a |
% g |
% e |
% |
% V
Ваш курсор теперь на последнем e
. Макрос плохо работает с последней буквой (вы можете попробовать @q
и затем u
(отменить) для получения неудовлетворительных результатов). Просто настройте его самостоятельно ( X
для возврата).
:s/./% \0\r/
чтобы добавить%
и новые строки ... Хотя это не очень