Добавить прокруточку в Ctrl-O по PageUp/PageDown
Добавить прокруточку в Ctrl-O по PageUp/PageDown
Far хорош с панелями, и скроллбар там лишний. А вот в режиме с выключенными панелями (Ctrl-O) очень и очень часто бывает нужно отмотать назад вывод какого-нибудь сообщения об ошибке нажав пару раз PageUp. Но нет. Нет скроллбара, нет реакции на PageUp и буфера я так подозреваю тоже нет. Посему вопрос - можно ли сделать этот (кольцевой) буфер, скролбар и реакцию на PageUp? Это вообще технически возможно? Пока что при ошибках при выполнении команд приходится перезапускать процесс через edit:<
Добавить прокруточку в Ctrl-O по PageUp/PageDown
Читаю http://forum.farmanager.com/viewtopic.php?f=3&t=5399 включил всё что трэба и увеличил буфер.
1. PageUp/PageDown при выключенных панелях не работают
2. при включенных панелях виден нативный гуёвый скроллбар
А что мешает Far скармливать контроллировать stdin/stdout запущенных через него процессов? Раз он всё равно родитель этих процессов, может он им и отдельный дескриптор для вывода выдаст с отдельным буфером вместо того, чтобы свой шарить?
Тогда ж много чего ещё можно делать научиться, и плагинам удобно будет.
1. PageUp/PageDown при выключенных панелях не работают
2. при включенных панелях виден нативный гуёвый скроллбар
А что мешает Far скармливать контроллировать stdin/stdout запущенных через него процессов? Раз он всё равно родитель этих процессов, может он им и отдельный дескриптор для вывода выдаст с отдельным буфером вместо того, чтобы свой шарить?
Тогда ж много чего ещё можно делать научиться, и плагинам удобно будет.
Last edited by techie on Sat 17 Jun, 2017 10:39, edited 2 times in total.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Добавить прокруточку в Ctrl-O по PageUp/PageDown
Архитектура консоли Windows, куда можно писать не только через stdout.
Отдельный буфер в теории можно, да. Однако, на этот буфер надо будет переключаться каждый раз при запуске программ, его размер будет не совпадать с основным, скроллбары будут появляться и исчезать, потом содержимое этого буфера надо будет частями копировать в основной и к тому же всё потеряется после выхода. Для меня эти недостатки перевесили достоинства.может он им и отдельный дескриптор для вывода выдаст с отдельным буфером вместо того, чтобы свой шарить?
Добавить прокруточку в Ctrl-O по PageUp/PageDown
М-да. Что-то я не подумал про это. Это ведь все цвета и пр. через этот API виндовый. А перехватывать эти вызовы и в своём процессе их отрабатывать нельзя же, да?
Так и так при запуске программ панели на что-то переключаются. Появляющиеся скроллбары в тёмном консольном окне - это норм, главное, чтобы фар себе красивенький скроллбар отрисовывал. Если буфер это просто поток, то копировать его можно ж в реалтайме сразу в несколько потоков. Не очень понятно только как при выходе всё теряется. Если родительский поток создаёт буфер, то почему потомок его будет уничтожать?DrKnS wrote: ↑Sat 17 Jun, 2017 12:22Однако, на этот буфер надо будет переключаться каждый раз при запуске программ, его размер будет не совпадать с основным, скроллбары будут появляться и исчезать, потом содержимое этого буфера надо будет частями копировать в основной и к тому же всё потеряется после выхода.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Добавить прокруточку в Ctrl-O по PageUp/PageDown
Все эти перехваты работают медленно, ненадёжно и убого, зачастую создавая больше проблем, чем решая.
Буфер - это то, что показывает консольное окно. Их может быть несколько, один активен, остальные в фоне (если тут кто-то ещё помнит conman, то он как раз об этом).Если буфер это просто поток, то копировать его можно ж в реалтайме сразу в несколько потоков.
Если так делать, то фоновый буфер перед запуском программы вытаскивается на поверхность, программа туда пишет, при её завершении он уходит обратно в фон, а фар по Ctrl+O предоставляет такой себе "вьювер" этого буфера, читая оттуда куски по мере необходимости.
Потеряется в сценарии "был открыт cmd, из него запустили far, из него что-то позапускали и вышли обратно в cmd" потому что см. выше - буфер в фоне, если из фара выйти - досупа к нему уже не будет.Не очень понятно только как при выходе всё теряется. Если родительский поток создаёт буфер, то почему потомок его будет уничтожать?
Если у вас претензии ограничиваются наличием скроллбара - можно смотреть в сторону conemu, он его прячет.
- HaRT
- Moderator
- Posts: 10869
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Добавить прокруточку в Ctrl-O по PageUp/PageDown
Вот для меня самое серьёзное неудобство в этой области — это то, что при выполнении консольных команд в NetBox (до того, как их сломали) в буфере под панелям остаётся отпечаток старых панелей, скрывая прежний вывод и сбивая с толку. Решение с раздельными буферами решит эту проблему? Или это ошибка в NetBox?
Чисто концептуально же идея отдельного scrollback-буфера мне нравится больше, чем нынешняя мешанина. Да и что мешает Фару перед выходом перенести scrollback в основной буфер?
Чисто концептуально же идея отдельного scrollback-буфера мне нравится больше, чем нынешняя мешанина. Да и что мешает Фару перед выходом перенести scrollback в основной буфер?
Фар есть инструмент, а не нянька. © 2009 DrKnS