Я вважаю, що макроси - це дивовижний спосіб робити незвичайні речі, якщо вам цікаво робити це не більше одного разу на синьому місяці. Скажімо, у вас є така таблиця:
%
% 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/щоб додати%і нові рядки ... Хоча не чудове рішення ...