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.