Вертикальное выравнивание строк по разделителям

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Вертикальное выравнивание строк по разделителям

Post by John Doe »

Макрос реализующий выравнивание как в заглавном посте:
lineup.lua
17.08.2021
(6.04 KiB) Downloaded 145 times



Утилита также входит в пакет LuaShell, где предлагается расширенная функциональность:
  • Автоматическое выделение блока, основываясь на заданных разделителях (благодаря block_pick.lua)
  • lineup_i.lua - интерактивное выравнивание (блок можно не выделять)
  • lineup_pipe.lua - выравнивание pipe-таблиц (блок можно не выделять).
Last edited by John Doe on Mon 09 Aug, 2021 16:54, edited 2 times in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Вертикальное выравнивание

Post by citRiks »

John Doe,
А почему вы пренебрегли модулем tabular, который делает ровно то же самое, что не касается фаровской специфики?
если ваших способностей хватает чтобы написать такое за не более чем 15 минут, то вопрос снимается
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Вертикальное выравнивание

Post by John Doe »

А сколько по вашему мнению могла бы занять адаптация tabular.vim?
https://t.me/FarManager — Telegram чат
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Вертикальное выравнивание

Post by citRiks »

John Doe, да, сейчас вуижу что по ссылке у вас tabular.vim
Я же ранее думал что это вот этот lua-модуль, не специфичный для vim-a:
https://github.com/hishamhm/tabular
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Вертикальное выравнивание

Post by John Doe »

В скрипт добавлена возможность указать тип выравнивания (по левому/правому краю, или по центру).

Для максимальной функциональности не хватает только интерактивного режима.
https://t.me/FarManager — Telegram чат
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Вертикальное выравнивание

Post by citRiks »

John Doe, у меня чего-то не работает
с полностью безмакросном и безскриптовом профайле пробовал.
Диалог - есть, туда пишу ""
Но ничего не происходит.
Ой, нет, работает, но через раз, например в этом файле нет.
а в других каких-то вроде что-то делает.
был с таким паф-ом:
F:\sys_tmp\temp\_avg_\aaaa.txt
Far Manager, version 3.0.5836.0 x86
Attachments
aaaa.txt
(294 Bytes) Downloaded 104 times
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Вертикальное выравнивание

Post by John Doe »

citRiks wrote: Tue 10 Aug, 2021 20:10 например в этом файле нет.
А чего вы ждёте, этот файл уже выровнен по пробелу.
Добавьте например вторым разделителем ещё пробел, и увидите результат.

И текст должен быть выделен.
https://t.me/FarManager — Telegram чат
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Вертикальное выравнивание

Post by citRiks »

John Doe wrote: Tue 10 Aug, 2021 21:54А чего вы ждёте, этот файл уже выровнен по пробелу.
Моя не понимат. где он выровнен?
на всякий случай сделал так и опять безуспешно применил выравнивание:

Code: Select all

aaaa Fov: single read FFov write SetFov
bbbbbbb Aspect: single read FAspect write SetAspect
cccccccccccc NearPlane: single read FNearPlane write SetNearPlane
dd FarPlane: single read FFarPlane write SetFarPlane
eeeeeee OrthoHeight: single read FOrthoHeight write setOrthoHeight
параметр выравнивания (разделители):

Code: Select all

╔════════════════════════ Line up selection ═════════════════════════╗
║ Enter delimeters (space-separated)                                 ║
║ "", "", ""                                                        ↓║
╟────────────────────────────────────────────────────────────────────╢
║                         { OK } [ Cancel ]                          ║
╚════════════════════════════════════════════════════════════════════╝
(с одним "" - тоже пробовал, изменений нет)
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Вертикальное выравнивание

Post by citRiks »

John Doe wrote: Tue 10 Aug, 2021 21:54 Добавьте например вторым разделителем ещё пробел, и увидите результат.
я думал пустые строки (двойные кавычки) через запятию (как выше) или один раз - это как пробелы.
но может я чего не понимаю. может дадит точную строку которую надо передавать?
Last edited by citRiks on Wed 11 Aug, 2021 04:42, edited 1 time in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Вертикальное выравнивание

Post by citRiks »

John Doe wrote: Tue 10 Aug, 2021 21:54 И текст должен быть выделен.
да, я всегда выделяю перед применением этого вертикального выравнивания
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Вертикальное выравнивание

Post by citRiks »

стоит починить это канешн,
а вопче, может сделать эту штуку через AWK и модуль execute ?
Будет зависимость в AWK, но AWK это хорошая весчь ведь со многими прибамбасами подобными, и в жентельменский набор должна входить
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Вертикальное выравнивание

Post by citRiks »

John Doe wrote: Tue 10 Aug, 2021 21:54 А чего вы ждёте,
думал что будет так, первые две строчки:

Code: Select all

aaaa    Fov:    single read FFov    write SetFov
bbbbbbb Aspect: single read FAspect write SetAspect
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Вертикальное выравнивание

Post by citRiks »

понял что надо применять что-то вроде такого:
%r %r %r %r %r %r
но как-то это все не интуитивно, и если в строке есть двойные пробелы, то будет бардак, хотя есть в этом и логика конечно.
можно было бы ожидать что можно передавать как параметр набор регекспных разделителей, такого же вроде нет у вас в скрипте?
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Вертикальное выравнивание

Post by citRiks »

John Doe wrote: Mon 09 Aug, 2021 10:52 Чтобы в качестве разделителя использовать пробел - надо ввести "" (пустую строку в кавычках).
у меня это не работает
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Вертикальное выравнивание

Post by John Doe »

citRiks wrote: Wed 11 Aug, 2021 04:39"", "", ""
Не надо запятых.
citRiks wrote: Wed 11 Aug, 2021 05:06 и если в строке есть двойные пробелы, то будет бардак.
Это можно доработать. Но в исходном примере двойных нет, а у вас всё равно не получается.
citRiks wrote: Wed 11 Aug, 2021 05:07 у меня это не работает
Вы ожидаете что введя один разделитель вы выровняете всё. Нет, это так не работает. Смысл в таком мог бы быть разве что для таблиц (кстати в планах).
citRiks wrote: Wed 11 Aug, 2021 04:53 думал что будет так, первые две строчки:
Введите "" single write
https://t.me/FarManager — Telegram чат
Post Reply

Return to “Полезные макросы и скрипты”