Александър Иванов
cream в режим „expert“
Разместване на колони в таблица
Ето една таблица:
1 2 3
1 2 3
1 2 3
Нека втората колона да отиде на трето място, тоест да получим таблицата:
1 3 2
1 3 2
1 3 2
Първи метод: чрез маркиране на блок, изтриване и копиране в буфера за временно съхранение и след това — вмъкване от буфера на новото място:
— убедете се, че клавиатурата ви е на латиница;
— използвайте клавиша F4, за да направите видими прозрачните символи — става ясно, че разделител между колоните в таблицата е табулаторът;
— влезте в режим „експерт“ чрез Esc;
— поставете курсора на първия ред след 1 и натиснете Ctrl+v, за да влезете във „видим“ режим за маркиране на блок;
— с l разширете маркировката надясно, за да обхване табулатора и двойката;
— с j (или с 2j) маркирайте блока до последния ред на таблицата;
— изтрийте маркираната втора колона с d;
— преместете курсора на първия ред върху тройката, тоест в края на реда;
— натиснете p (put/paste), за да вмъкнете от буфера за временно съхранение втората колона вдясно от курсора;
— натиснете Esc, за да излезете от режима „експерт“, и F4, за да се върнете към обикновения изглед на текста.
Ако искате да вмъкнете колоната преди друга колона, използвайте командата P вместо p.
При големи таблици, използвайте отметки за маркиране на колоната — по-лесно и по-бързо е.
Втори метод: чрез регулярен израз за търсене и заместване:
— убедете се, че сте преминали на латиница;
— използвайте Esc, за да преминете в режим „експерт“;
— изпълнете командата
:%s:\([0-9]\+\)\t\([0-9]\+\)\t\([0-9]\+\):\1\t\3\t\2:
(Ако се сетите, че с \d се въвежда множеството на арабските цифри, може малко да съкратите израза.)
— натиснете Esc, за да се върнете към нормалния текстов режим на cream.
В израза за търсене съм определил трите групи цифри във всеки ред за всяка колона, в израза за заместване използвам обратно препращане (back-reference), за да разместя колоните.