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