Добавить прокруточку в Ctrl-O по PageUp/PageDown

Хотите предложить идею нового плагина или знаете, что улучшить в существующем? Пишите сюда.
Post Reply
User avatar
techie
Posts: 761
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 28 times
Been thanked: 2 times

Добавить прокруточку в Ctrl-O по PageUp/PageDown

Post by techie » Fri 16 Jun, 2017 12:03

Far хорош с панелями, и скроллбар там лишний. А вот в режиме с выключенными панелями (Ctrl-O) очень и очень часто бывает нужно отмотать назад вывод какого-нибудь сообщения об ошибке нажав пару раз PageUp. Но нет. Нет скроллбара, нет реакции на PageUp и буфера я так подозреваю тоже нет. Посему вопрос - можно ли сделать этот (кольцевой) буфер, скролбар и реакцию на PageUp? Это вообще технически возможно? Пока что при ошибках при выполнении команд приходится перезапускать процесс через edit:<

User avatar
DrKnS
Posts: 4648
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

Добавить прокруточку в Ctrl-O по PageUp/PageDown

Post by DrKnS » Fri 16 Jun, 2017 12:42

Всё что можно уже сделано 7 лет назад - far /w, и уже полтора года как включено по умолчанию.

User avatar
techie
Posts: 761
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 28 times
Been thanked: 2 times

Добавить прокруточку в Ctrl-O по PageUp/PageDown

Post by techie » Fri 16 Jun, 2017 12:48

Почему тогда не работает, если включено?

User avatar
DrKnS
Posts: 4648
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

Добавить прокруточку в Ctrl-O по PageUp/PageDown

Post by DrKnS » Fri 16 Jun, 2017 12:53

Потому что желаемый размер кольцевого буфера устанавливается пользователем самостоятельно в свойствах консоли.

User avatar
John Doe
Бюрократ
Posts: 11421
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

Добавить прокруточку в Ctrl-O по PageUp/PageDown

Post by John Doe » Fri 16 Jun, 2017 13:32

FAQ 7.4

User avatar
techie
Posts: 761
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 28 times
Been thanked: 2 times

Добавить прокруточку в Ctrl-O по PageUp/PageDown

Post by techie » Sat 17 Jun, 2017 10:23

John Doe wrote:
Fri 16 Jun, 2017 13:32
FAQ 7.4
Отвалился FAQ. Указывает на https://forum.farmanager.com/app.php/help/faq

User avatar
techie
Posts: 761
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 28 times
Been thanked: 2 times

Добавить прокруточку в Ctrl-O по PageUp/PageDown

Post by techie » Sat 17 Jun, 2017 10:37

Читаю viewtopic.php?f=3&t=5399 включил всё что трэба и увеличил буфер.

1. PageUp/PageDown при выключенных панелях не работают
2. при включенных панелях виден нативный гуёвый скроллбар

А что мешает Far скармливать контроллировать stdin/stdout запущенных через него процессов? Раз он всё равно родитель этих процессов, может он им и отдельный дескриптор для вывода выдаст с отдельным буфером вместо того, чтобы свой шарить?

Тогда ж много чего ещё можно делать научиться, и плагинам удобно будет.
Last edited by techie on Sat 17 Jun, 2017 10:39, edited 2 times in total.

User avatar
DrKnS
Posts: 4648
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

Добавить прокруточку в Ctrl-O по PageUp/PageDown

Post by DrKnS » Sat 17 Jun, 2017 12:22

techie wrote:
Sat 17 Jun, 2017 10:37
А что мешает Far скармливать контроллировать stdin/stdout запущенных через него процессов?
Архитектура консоли Windows, куда можно писать не только через stdout.
может он им и отдельный дескриптор для вывода выдаст с отдельным буфером вместо того, чтобы свой шарить?
Отдельный буфер в теории можно, да. Однако, на этот буфер надо будет переключаться каждый раз при запуске программ, его размер будет не совпадать с основным, скроллбары будут появляться и исчезать, потом содержимое этого буфера надо будет частями копировать в основной и к тому же всё потеряется после выхода. Для меня эти недостатки перевесили достоинства.

User avatar
techie
Posts: 761
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 28 times
Been thanked: 2 times

Добавить прокруточку в Ctrl-O по PageUp/PageDown

Post by techie » Sat 17 Jun, 2017 15:43

DrKnS wrote:
Sat 17 Jun, 2017 12:22
Архитектура консоли Windows, куда можно писать не только через stdout.
М-да. Что-то я не подумал про это. Это ведь все цвета и пр. через этот API виндовый. А перехватывать эти вызовы и в своём процессе их отрабатывать нельзя же, да?
DrKnS wrote:
Sat 17 Jun, 2017 12:22
Однако, на этот буфер надо будет переключаться каждый раз при запуске программ, его размер будет не совпадать с основным, скроллбары будут появляться и исчезать, потом содержимое этого буфера надо будет частями копировать в основной и к тому же всё потеряется после выхода.
Так и так при запуске программ панели на что-то переключаются. Появляющиеся скроллбары в тёмном консольном окне - это норм, главное, чтобы фар себе красивенький скроллбар отрисовывал. Если буфер это просто поток, то копировать его можно ж в реалтайме сразу в несколько потоков. Не очень понятно только как при выходе всё теряется. Если родительский поток создаёт буфер, то почему потомок его будет уничтожать?

User avatar
DrKnS
Posts: 4648
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

Добавить прокруточку в Ctrl-O по PageUp/PageDown

Post by DrKnS » Sat 17 Jun, 2017 17:14

techie wrote:
Sat 17 Jun, 2017 15:43
А перехватывать эти вызовы и в своём процессе их отрабатывать нельзя же, да?
Все эти перехваты работают медленно, ненадёжно и убого, зачастую создавая больше проблем, чем решая.
Если буфер это просто поток, то копировать его можно ж в реалтайме сразу в несколько потоков.
Буфер - это то, что показывает консольное окно. Их может быть несколько, один активен, остальные в фоне (если тут кто-то ещё помнит conman, то он как раз об этом).
Если так делать, то фоновый буфер перед запуском программы вытаскивается на поверхность, программа туда пишет, при её завершении он уходит обратно в фон, а фар по Ctrl+O предоставляет такой себе "вьювер" этого буфера, читая оттуда куски по мере необходимости.
Не очень понятно только как при выходе всё теряется. Если родительский поток создаёт буфер, то почему потомок его будет уничтожать?
Потеряется в сценарии "был открыт cmd, из него запустили far, из него что-то позапускали и вышли обратно в cmd" потому что см. выше - буфер в фоне, если из фара выйти - досупа к нему уже не будет.

Если у вас претензии ограничиваются наличием скроллбара - можно смотреть в сторону conemu, он его прячет.

User avatar
HaRT
Moderator
Posts: 8118
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 68 times
Been thanked: 107 times

Добавить прокруточку в Ctrl-O по PageUp/PageDown

Post by HaRT » Sat 17 Jun, 2017 22:20

Вот для меня самое серьёзное неудобство в этой области — это то, что при выполнении консольных команд в NetBox (до того, как их сломали) в буфере под панелям остаётся отпечаток старых панелей, скрывая прежний вывод и сбивая с толку. Решение с раздельными буферами решит эту проблему? Или это ошибка в NetBox?

Чисто концептуально же идея отдельного scrollback-буфера мне нравится больше, чем нынешняя мешанина. Да и что мешает Фару перед выходом перенести scrollback в основной буфер?
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
DrKnS
Posts: 4648
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

Добавить прокруточку в Ctrl-O по PageUp/PageDown

Post by DrKnS » Sat 17 Jun, 2017 23:19

HaRT wrote:
Sat 17 Jun, 2017 22:20
ошибка в NetBox?
Да.

Post Reply

Return to “Предложения и идеи”