BufferScroll — Макросы для работы с большим буфером консоли*
Предлагаю набор макросов, облегчающих работу с большим буфером консоли¹.
Прежде всего перечислю стандартные клавиатурные комбинации для перемещения по консольному буферу (в справке фара до сих пор не описаны):
Ctrl+Alt+Up
/Down
— построчно
Ctrl+Alt+PgUp
/PgDn
— постранично
Ctrl+Alt+Ноmе
/End
— к началу/концу
Данный набор макросов вносит следующие улучшения:
При скроллинге в панелях они автоматически гасятся, чтобы не загораживать “подпанельную” часть буфера.
Можно перемещаться по буферу с помощью простых курсорных клавиш (без модификаторов
Ctrl+Alt-
).
Это работает, если панели скрыты, и командная строка пуста.
Или если прокрутка уже начата, и фар “не в окне”.С помощью клавиши
Esc
можно в любой момент вернуться из любого места буфера в окно Far.
ДействиеCtrl+O
также сопровождается возвратом к фару.Сочетания с
Home
прокручивают буфер к реальному началу консольного вывода (фар заполняет буфер нетипичным образом: начиная снизу).Поддержка прокрутки колесом мыши (в том числе горизонтально, см. определения макросов).
Все сочетания работают также и в области Desktop.
Это особенно удобно использовать с макросом наCtrl+O
² для перехода в Desktop из любой области.Ctrl+Up
/Down
прокручивает буфер к месту запуска предыдущей/следующей команды (при скрытых панелях).
Регэксп для поиска строки приглашения настраивается.
Ctrl+F7
отображает список всех найденных в буфере команд.Ctrl+Shift+F7
позволяет задать строку для поиска в буфере, и отображает список найденных.
Заданная строка запоминается, и впоследствии можно перемещаться между вхождениями в буфере используя клавишиCtrl+Shift+Up
/Down
.
Важно: работа с большим буфером возможна только в режиме WindowMode
(в актуальных
версиях фара включен по умолчанию).
Если размер буфера не задан (например в свойствах консоли), то при старте скрипт
увеличивает его до значения, указанного в параметре height
.
Обсуждения на форуме:
¹ Far работает с большим буфером консоли!
² Ctrl+O
: просмотр пользовательского экрана из любой области
* Макросы для работы с большим буфером консоли
Копирование текста с экрана
Стандартная функция копирования текста, вызываемая командой Alt+Ins
, работает только
в пределах окна фара.
В буфере за пределами окна можно использовать встроенную функцию консоли, доступную в меню окна, или использовать для выделения мышь.
Кроме того, скриптом предусмотрено несколько макросов (по умолчанию отключенных), которые при желании можно активировать в опциях:
Ctrl+Ins
копирует верхнюю строку.
Ctrl+Shift+Ins
копирует экран.
Ctrl+Alt+Ins
сохраняет весь буфер в файл, и открывает его в редакторе.
Вставка текста в командную строку
Ctrl+Shift+E
(при погашенных панелях)
поместить в командную строку нижнюю строку из буфера экранаCtrl+Shift+E
поместить в командную строку предыдущую строку из буфера экрана
Опции
В начале скрипта (BufferScroll.lua
) есть таблица с опциями, которые можно изменять редактируя файл,
или используя возможности cfgscript.
prompt
(string/false)
Определяет регэксп для поиска строки приглашения, используемый чтобы найти в буфере места запуска команд.
По умолчанию:"^%a:%\\.->"
;false
отключает функцию.height
(number/false)
Определяет вертикальный размер буфера, который устанавливается при старте, если высота буфера совпадает с высотой окна.
По умолчанию:10000
;false
отключает функцию.real_top
(boolean)
Определяет поведение комбинаций сHome
.
По умолчанию:true
— прокручивает к первой непустой строке буфера.
false
— сначала прокручивает в самый верх буфера, а повторное нажатие — к первой непустой строке.key_copy_line
,key_copy_screen
,key_save_buffer
(string)
Определяет клавиатурные комбинации макросов для копирования текста с экрана.
По умолчанию: не назначены.
<cfgscript
Чтобы после каждого обновления скрипта не приходилось вручную восстанавливать изменённые значения опций рекомендуется использовать возможности cfgscript из пакета ScriptsBrowser.