Макросы для работы с большим буфером консоли

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

Макросы для работы с большим буфером консоли

Post by John Doe » Thu 29 May, 2014 19:37

Предлагаю набор макросов, облегчающих работу с большим буфером консоли¹.

Прежде всего перечислю стандартные клавиатурные комбинации для перемещения по
консольному буферу (в справке фара до сих пор не описаны):
Ctrl+Alt+ <Up/Down> — построчно
Ctrl+Alt+ <PgUp/PgDn> — постранично
Ctrl+Alt+ <Номе/End> — к началу/концу
Данный набор макросов вносит следующие улучшения:
  • При скроллинге в панелях они автоматически гасятся, чтобы не загораживать
    "подпанельную" часть буфера.
  • Можно перемещаться по буферу с помощью простых курсорных клавиш (без модификаторов Ctrl+Alt-).
    Это работает, если панели скрыты, и командная строка пуста.
    Или если прокрутка уже начата, и фар "не в окне".
  • С помощью клавиши Esc можно в любой момент вернуться из любого места буфера в окно Far.
  • Сочетания с Home прокручивают буфер к реальному началу консольного вывода
    (фар заполняет буфер нетипичным образом: начиная снизу).
  • Поддержка прокрутки колесом мыши (в том числе горизонтально, см. определения макросов).
  • Все сочетания работают также и в области Desktop.
    Это особенно удобно использовать с макросом на Ctrl+O² для перехода в Desktop из любой области.
  • Ctrl+Up/Down прокручивает буфер к месту запуска предыдущей/следующей команды (при скрытых панелях).
    Регэксп для поиска строки приглашения настраивается.
    Ctrl+F7 отображает список всех найденных в буфере команд.
  • Ctrl+Shift+F7 позволяет задать строку для поиска в буфере, и отображает список найденных.
    Заданная строка запоминается, и впоследствии можно перемещаться между вхождениями в буфере
    используя клавиши Ctrl+Shift+Up/Down.
Важно: работа с большим буфером возможна только в режиме WindowMode (в актуальных
версиях фара включен по умолчанию).

Если размер буфера не задан (например в свойствах консоли), то при старте скрипт
увеличивает его до значения, указанного в параметре height.

Обсуждения на форуме:

¹ Far работает с большим буфером консоли!
² Ctrl-O: просмотр пользовательского экрана из любой области
Attachments
BufferScroll061.7z
v0.6.1
(6.33 KiB) Downloaded 75 times
Last edited by John Doe on Mon 13 Nov, 2017 12:55, edited 3 times in total.

LAT
Posts: 165
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 5 times
Been thanked: 4 times

Макросы для работы с большим буфером консоли

Post by LAT » Thu 20 Sep, 2018 08:57

Latest post of the previous page:

John Doe wrote:
Thu 20 Sep, 2018 07:14
LAT wrote:
Wed 19 Sep, 2018 15:30
Если задать System.WindowMode.StickyY = true (чтобы не отображалась вертикальная панель прокрутки)
Если я правильно понял, то таким образом вы управляете не полосой прокрутки, а именно высотой буфера, делая её равной высоте окна.
Соответственно макрос становится просто не нужен.
Получается, [с точки зрения пользователя] установка "System.WindowMode.StickyY = true" равносильна "System.WindowMode = false", т.е. эта отмена работы с большим буфером консоли, только другим способом?

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

Макросы для работы с большим буфером консоли

Post by John Doe » Thu 20 Sep, 2018 09:25

Не равносильна, но по сути да, буфер при этом бесполезно делать большим, потому что он будет почти сразу усекаться фаром до размеров окна.
Опция сомнительная (может я конечно просто не понял её настоящего смысла, не документирована же)

Post Reply

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