-
Notifications
You must be signed in to change notification settings - Fork 1
Home
far2l is Linux port of FAR Manager v2 developed by elfmz: https://github.com/elfmz/far2l
far2m is Linux port of FAR2 with FAR3 macro system and extended plugins' API developed by shmuz: https://github.com/shmuz/far2m
Большинство информации ниже, описывающей far2l, применимо как к far2l, так и к far2m (far2m отпочковался от far2l в мае 2022 года и после версии 2.5.0 часть появившихся нововведений в far2m не перетащено).
Данное wiki наполняется на основе обсуждений/разъяснений в дружном https://t.me/far2l_ru
У far2l три основных бекенда отрисовки:
- GUI — на базе wxWidgets, работает в графическом режиме, идеальный UX, куча зависимостей;
-
TTY|Xi — работает в консоли, зависимости буквально от пары иксовых либ (для поддержки всех-всех сочетаний клавиш и буфера обмена), почти идеальный UX;
- TTY|X — через X11 поддержка буфера обмена, клавиатура через возможности терминала
- (для TTY|Xi получение расширенных данных клавиатуры не работает под Wayland из-за модели безопасности Wayland, при его запуске far2l, начиная с версии 2.6.1, переключается на TTY|X без i; см. подробности ниже)
- TTY — чистая консоль, никаких иксовых зависимостей, UX с некоторыми ограничениями (полноценно работает при запуске в эмуляторах терминалов, предоставляющих возможность доступа к буферу обмена и расширенную информацию о клавиатурных событиях).
(!) Подробнее про эти и остальные бекенды (TTY|X, TTY|F, TTY|w и т.п.) см. в far2l в встроенной помощи по F1 в разделе Режимы интерфейса / UI backends.
При сборке вручную -DUSEWX=no
отключает сборку GUI бекенда. Если wxWidgets не установлены, тоже будет собираться без него. Будет ли собираться модуль TTY|Xi, зависит от наличия в системе пакетов libx11-dev и libxi-dev. TTY версия собирается всегда. Подробности: https://github.com/elfmz/far2l#additional-build-configuration-options
Особенность сборок под macOS (спасибо за уточнение t.me/vitalyster): wxWidgets на маке рисуется нативно без иксов и зависимостей от иксов там нет вообще, тогда как TTY|Xi — наиболее "жирный" вариант, потому что требует иксы.
Версию FAR2L и используемый бекенд можно увидеть в заголовке окна или через псевдо-команду far:about
(в far2m через lm:farabout
).
- Если у Вас установлена версия GUI, то при запуске
far2l
без параметров будет пытаться использоваться она; - для принудительного запуска терминального варианта TTY|Xi используйте в командной строке:
far2l --tty
; - для принудительного запуска терминального варианта TTY|X используйте в командной строке:
far2l --tty --nodetect=xi
; - для принудительного запуска минимального варианта TTY используйте в командной строке:
far2l --tty --nodetect=x
; - фоновый запуск FAR2L-GUI из командной строки без блокировки терминала:
far2l --notty &
(подробнее про ключи запуска см. far2l --help
).
-
far2l — основной проект от elfmz: https://github.com/elfmz/far2l
Перечисленные далее пакеты и сборки бинарников собирают энтузиасты или майнтейнеры официальных репозитариев, беря версию из проекта от elfmz и иногда немного подкручивая настройки и комплектацию.
-
PPA (deb-пакеты для семейства Ubuntu и совместимых дистрибутивов Linux Mint, обновляется регулярно, обычно в течении суток после обновления у elfmz в ветке master): https://launchpad.net/~far2l-team/+archive/ubuntu/ppa
Пакеты называются так:
- far2l — базовая версия, только TTY бекенд;
- far2l-gui — отдельно бекенд GUI (зависимостями сам притянет базовую far2l);
- far2l-ttyx — отдельно бекенд TTY|Xi (зависимостями сам притянет базовую far2l);
- far2l-tiny — compact version (no GUI, no plugins, no manuals, only English).
Для Mint использовать пакет из совместимой версии Ubuntu, например, для Linux Mint Mate 21.2 репозиторий
http://ppa.launchpad.net/far2l-team/ppa/ubuntu jammy main
. Таблицу соответствия версий см., например, в https://en.wikipedia.org/wiki/Linux_Mint#Releases-
Переключение между репозиториями PPA и родным Ubuntu [нажмите, чтобы развернуть/скрыть]
-
Переход на бинарники из PPA
sudo apt remove far2l* # нужно, если был установлен far2l sudo apt install software-properties-common # нужно, если не установлен add-apt-repository sudo add-apt-repository ppa:far2l-team/ppa sudo apt install far2l-gui # (!) из этих трёх строк sudo apt install far2l-ttyx # (!) выполняете одну, sudo apt install far2l # (!) смотря какая версия вам нужна
-
Отключение PPA и возвращение к бинарникам их родного репозитория Ubuntu
sudo apt remove far2l* # нужно, если был установлен far2l sudo apt install software-properties-common # нужно, если не установлен add-apt-repository sudo add-apt-repository --remove ppa:far2l-team/ppa sudo apt install far2l
-
-
Fedora and CentOS packages (обновляется примерно раз в месяц): https://copr.fedorainfracloud.org/coprs/polter/far2l
-
Portable (with TTY X/Xi backend) | AppImage (with wx-GUI and some extra plugins): https://github.com/spvkgn/far2l-portable/releases
- пересобираются при появлении свежих коммитов у elfmz в ветке master
- по умолчанию хранит настройки где и обычная в
~/.config/far2l
, но можно при запуске в командной строке задать, например,./far2l_<что-то-там>.run -- -u $(pwd)/far2l_profile
будет сохранять все настройки в папку far2l_profile внутри текущей (если не задан параметр-u
, то используется каталог из переменной окруженияFARSETTINGS
и только при её отсутствии каталог по умолчанию) - нюансы сборок Portable см. ниже
- нюанс сборок AppImage: не работает эскалация привилегий, т.к. вызов
sudo
невозможен из-за ограничений FUSE, см. https://github.com/AppImageCrafters/AppRun/issues/64#issuecomment-2091079799
-
Debian [sid-unstable / 13 trixie-testing / 12 bookworm-backports] packages (редко обновляется, обычно лишь после появления нового релиза у elfmz):
- редко обновляемую только TTY|Xi сборку far2l можно ставить стандартным способом
sudo apt install far2l
- редко обновляемую GUI сборку far2l (начиная с far2l 2.6.4) можно ставить стандартным способом
sudo apt install far2l-wx
- https://packages.debian.org/search?keywords=far2l
- http://ftp.debian.org/debian/pool/main/f/far2l
- https://tracker.debian.org/pkg/far2l
- редко обновляемую только TTY|Xi сборку far2l можно ставить стандартным способом
-
Ubuntu [mantic 23.10 / noble 24.04] packages (редко обновляется на основе пакета из Debian):
- редко обновляемую только TTY|Xi сборку far2l можно ставить стандартным способом
sudo apt install far2l
- https://packages.ubuntu.com/search?keywords=far2l
- https://launchpad.net/ubuntu/+source/far2l
- редко обновляемую только TTY|Xi сборку far2l можно ставить стандартным способом
-
Список дистрибутивов куда попал far2l (к сожалению, много устаревших необновляемых версий): https://repology.org/project/far2l/versions
-
Сборки и инструкции по сборке для разных ОС и дистров: https://github.com/elfmz/far2l/issues/647
-
Спеки сборок под разные системы: https://github.com/elfmz/far2l/tree/master/packaging
- buildroot-скрипты для сборки под embedded платформы, такие как OpenWRT или DDWRT — теперь можно запустить far2l даже на роутере
- Debian
- openSUSE
- OS X / macOS
-
OpenWrt: https://github.com/spvkgn/far2l-openwrt
-
FAR2L Flatpak build (Nightly): https://github.com/spvkgn/far2l-flatpak
- (!) доступ к файловой системе ограничен песочницей Flatpak (даже при разрешении доступа All system files (filesystem=host) - всё, что недоступно запустившему пользователю не показывает)
- конфиги лежат в укромном месте flatpak'а:
~/.var/app/io.github.elfmz.far2l/config/far2l/
-
OpenSUSE, Fedora, Ubuntu, Debian 12 от viklequick (обновляется регулярно, обычно в течении суток после обновления у elfmz в ветке master): https://download.opensuse.org/repositories/home:/viklequick/
нарезка пакетов мелкой лапшой:
far2l-core
- только терминал (базовый)far2l-ttyxi
- добавление keys/clipboard через Xfar2l-wxgtk
- добавление графического фронт-энда- плагины нетрокса, россыпью:
far2l-plugins-netrocks-ftp
,far2l-plugins-netrocks-nfs
,far2l-plugins-netrocks-sftp
,far2l-plugins-netrocks-shell
,far2l-plugins-netrocks-smb
,far2l-plugins-netrocks-webdav
far2l-full
- классическая сборка одним пакетом (но без пайтона, этот всегда отдельно)= far2l-core + far2l-ttyxi + far2l-wxgtk + far2l-plugins-netrocks-*
far2l-plugins-python
- пайтон, кому надо, без virtualenv - пользуется системным- дополнительные плагины не из far2l, написанные отдельно:
far2l-plugins-editwrap
,far2l-plugins-jumpword
,far2l-plugins-netcfg
,far2l-plugins-processes
,far2l-plugins-sqlite
в sources.list добавлять так:
deb https://downloadcontentcdn.opensuse.org/repositories/home:/viklequick/<ос_версия> ./
-
Termux: https://github.com/spvkgn/far2l-termux
-
macOS https://github.com/elfmz/far2l#osxmacos-binaries :
brew install --cask far2l
- готовые (редко обновляется) dmg: https://github.com/elfmz/far2l/releases
-
-
- Подборка полезностей для файлового менеджера far2l: https://github.com/unxed/far2ltricks/
- Скрипт для собственной сборки
.deb
из исходников: https://github.com/unxed/far2ltricks/blob/main/deb/make_far2l_deb.sh -
Staging ветка far2l, куда принимаются патчи, не принятые пока в основную версию elfmz, для тестирования и быстрой доставки самых важных исправлений нуждающимся пользователям:
- ветка: https://github.com/unxed/far2l/tree/staging
- Portable & AppImage на основе staging (пересобираются при появлении свежих коммитов у unxed в ветке staging): https://github.com/unxed/far2l/releases
- PPA на основе staging (пересобирается раз в сутки при наличии изменений в staging): https://launchpad.net/~far2l-team/+archive/ubuntu/staging
- при использовании совместно с основным PPA приоритет можно задать для конкретного ppa: https://help.ubuntu.com/community/PinningHowto#Example_.231:_Pinning_the_ubuntu-x-swat.2Fq-lts-backport-precise_PPA
- обсуждение в дружном: https://t.me/far2l_ru
- при желании можно прислать PR в эту ветку обычным способом
-
Встроенные плагины (входят в стандартную сборку far2l от elfmz, полный список установленных плагинов см. через псевдо-команду
far:about
):- align (Align block / Выровнять блок): плагин редактора
- autowrap (Auto wrap / Автосвёртка): плагин редактора
- calc (Calculator / Калькулятор): плагин панелей, редактора, просмоторщика
- colorer (FarColorer - раскраска синтаксиса для типов файлов в редактора): плагин редактора
- compare (Advanced compare / Расширенное сравнение): плагин панелей
- drawline (Draw lines / Рисовать линии): плагин редактора
- editcase (Change Case / Регистр): плагин редактора
- editorcomp (Editor Autocomplete / Автодополнение редактора): плагин редактора
- filecase (Case conversion / Преобразование регистра): плагин панелей
- incsrch (Incremental Search / Быстрый поиск): плагин редактора
- inside (Inside - внутрь ELF файлов и документов по Ctrl+PgDown): плагин панелей
- multiarc (Archive support / Работа с архивами): плагин панелей
- NetRocks (NetRocks - SFTP/SCP/SHELL/NFS/SMB/WebDAV connectivity): плагин панелей
- SimpleIndent (отступ по Tab/Shift-Tab выделенного блока в редактора): плагин редактора
- tmppanel (Temporary panel / Временная панель): плагин панелей
-
Про Python plugins: python/configs/plug/plugins/read-en.txt & #694 & #982 & #1261
-
Python plugins входят в far2l от elfmz, по умолчанию отключены; для использования far2l должен быть собран (в системе должны стоять пакеты
python3-dev
,python3-cffi
):- сборка с опцией
-DPYTHON=yes
(начиная с https://github.com/elfmz/far2l/pull/2420): using system interpreter and packages available in system (cffi
) -
устарелые варианты (до https://github.com/elfmz/far2l/pull/2420 ) (в системе должны стоять пакеты
libpython3-dev
,libffi-dev
,python3-venv
)- с опцией
-DPYTHON=yes
— far2l собирается с python черезvirtualenv
- с опцией
-DVIRTUAL_PYTHON=python3
— в cmake и в пакет уже ничего лишнего не попадает, используется системный python, но в системе тогда нужны установленные python-пакетыcffi
,pcpp
(необходимы для сборки) иdebugpy
,adbutils
(необходимы для работы плагинов написанных на пайтоне); актуальный список нужных пакетов см. в prebuild.sh
- с опцией
- при некорректных сборках (совет автора из https://github.com/elfmz/far2l/issues/1818#issuecomment-1704766853):
Not every time a python plugin is created correctly, cmake/make copies files betwen python source and build/install directory and maybe you have a mismatch between c code and python code. Sometimes it helps me to run these commands:
#!/bin/bash rm build/* rm -rf build/python rm -rf build/install/Plugins/python
- сборка с опцией
- про python-плагин uadb для доступа к андроиду из фара: https://github.com/elfmz/far2l/issues/1207#issuecomment-1523735293
- про python-плагин udocker для доступа к docker из фара: https://github.com/elfmz/far2l/issues/1500#issuecomment-1528872903
- про сборку и создание python-плагинов:
-
Python plugins входят в far2l от elfmz, по умолчанию отключены; для использования far2l должен быть собран (в системе должны стоять пакеты
-
Внешние плагины/макросы (внешние плагины не входят в far2l от elfmz; могут быть взяты от авторов в виде бинарников и положены в каталог плагинов установленного far2l, обычно
/usr/lib/far2l/Plugins
; или добавлены в локальный каталог исходных кодов far2l, прописаны в CMakeLists.txt и собраны сразу вместе с far2l):-
jumpword (far2l editor plugin for quick searching the word under cursor): https://github.com/axxie/far2l-jumpword/ (в описании пример прописывания в
key_macros.ini
быстрого вызова через комбинации клавиш) - netcfg (far2l net interfaces configuration plugin): https://github.com/VPROFi/netcfgplugin
- sqlplugin (far2l sql db (sqlite, etc..) plugin): https://github.com/VPROFi/sqlplugin
- processplugin (far2l processes plugin): https://github.com/VPROFi/processes
-
far2l-fuse (far2l plugin to ease sshfs/curlftpfs FUSE mounts): https://github.com/unxed/far2l-fuse (требуется сборка far2l с ключом
-DLEGACY=yes
) - gvfspanel (far2l plugin to work with Gnome VFS): https://github.com/cycleg/far-gvfs
- xTRD-xSCL-far2l (far2l version of xTRD and xSCL plugins for ZX Spectrum TR-DOS disk images): https://github.com/atsidaev/xTRD-xSCL-far2l
- exif-tools (set of scripts for EXIF timestamps manipulation): https://github.com/russiandesman/exif-tools (независимый набор скриптов, ставится отдельно + прописывается вызов из far2l через user_menu.ini)
- far2l-EditWrap (port of EditWrap plugin for far2l Linux Far Manager fork): https://github.com/unxed/far2l-EditWrap (по сравнению с встроенным плагином Align block ничего существенного не добавляет, интересен как пример портирования плагинов)
- far2l-fpc-helloworld (пример портирования pascal-плагинов с использованием FreePascal): https://github.com/unxed/far2l-fpc-helloworld
-
jumpword (far2l editor plugin for quick searching the word under cursor): https://github.com/axxie/far2l-jumpword/ (в описании пример прописывания в
-
Wiki от elfmz: https://github.com/elfmz/far2l/wiki
-
far 2 encyclopedia (от виндовой версии, но много полезного, например, там про макро язык, разметку языка помощи и т.п.):
- CHM: https://github.com/elfmz/far2l/issues/1135
- Оригинальный CHM лежит внутри MSI-пакетов far2.x86.msi/far2.x64.msi, которые можно скачать из https://farmanager.com/history.php (две самые последние ссылки)
- Online (раздел по макросам по far3, часть информации не совместима с far2l): https://api.farmanager.com/ru/macro/
- области действия макросов: https://api.farmanager.com/ru/macro/about/macroarea.html
- Online (раздел по языку разметки помощи): https://api.farmanager.com/ru/language/
Note: смотреть CHM в Linux, например, через xCHM (наиболее корректно) или через Okular — просмотр CHM как подряд идущих страниц, но возможны сбои рендеринга текста ссылок и области щелчка по ним.
-
Клавиатурные макросы лежат в
~/.config/far2m/settings/key_macros.ini
(более точнее о расположении конфигов см. ниже)- Примеры клавиатурных макросов см. ниже: про Colorer и Разные макросы
-
См. также Для тех, кто коммитит
-
far2m — форк от shmuz с поддержкой Lua-макросов и плагинов (Lua-макросы и Lua-плагины введены и используются в windows far3): https://github.com/shmuz/far2m
Far2m отпочковался от far2l в мае 2022 года и после версии 2.5.0 часть появившихся нововведений в far2m не перетащено (например, даты в истории и т.п.)
- Макросы и плагины для Lua-форка: https://github.com/shmuz/luafar2m
-
PPA (deb-пакеты для семейства Ubuntu и совместимых дистрибутивов Linux Mint, обновляется регулярно, обычно в течении суток после обновления у shmuz в master): https://launchpad.net/~far2l-team/+archive/ubuntu/lua
- в едином deb пакете сразу все бекенды TTY+TTY|Xi+GUI, соответственно зависимости X11, которые при установке на сервера потянут излишние пакеты.
-
Portable:
-
Portable (with TTY X/Xi backend): https://github.com/spvkgn/far2m-portable/
- пересобирается при появлении свежих коммитов у shmuz в ветке master
- запуск без параметров — запуск с плагинами и всеми lua-макросами, взятыми из https://github.com/shmuz/luafar2m (список всех макросов и клавиши их вызывающие см. через плагин Macro Browser)
- запуск c параметром
./far2m*.run -- --nomacros
— запуск с плагинами, но без lua-макросов (вы можете отдельно скачать только нужные вам макросы, размещая их в пользовательском каталоге~/.config/far2m/Macros/scripts
)
-
Устарелые варианты Portable (with GUI backend)
- https://github.com/sorcodiv/far2lua-build/releases (вариант от sorcodiv)
- https://github.com/Zeroes1/far2m-portable (вариант от Zeroes1)
- оба варианта включают нечасто обновляемый бинарник amd64 и скрипты для самостоятельной portable сборки
- нюансы сборок Portable см. ниже
- обсуждение portable far2m (far2l+lua): https://github.com/shmuz/far2m/discussions/22 и https://github.com/shmuz/far2m/discussions/55#discussioncomment-8764619
-
Portable (with TTY X/Xi backend): https://github.com/spvkgn/far2m-portable/
- Manuals (в формате CHM): https://github.com/shmuz/far2m/tree/master/luafar/manuals
- Wiki от shmuz: https://github.com/shmuz/far2m/wiki
- Классический формат макросов far2 (из файла
~/.config/far2m/settings/key_macros.ini
) игнорируется; работают только Lua-макросы как в far3 - Lua-макросы (подробности в macroapi_manual_linux.chm)
- размещать в каталоге
~/.config/far2m/Macros/scripts
или создавая там подкаталоги (с любой глубиной вложенности) - имена самих файлов с макросами - на усмотрение пользователя, только расширение должно быть правильное (
.lua
или.moon
); - каждый файл может содержать произвольное количество макросов;
- пример клавиатурных макросов см. ниже про Colorer;
- макросы, записанные вручную с клавиатуры:
- помещаются far2m в
~/.config/far2m/Macros/internal
и не рекомендуются для ручного редактирования в файлах; - появятся в
~/.config/far2m/Macros/internal
только после сохранения конфигурации фара (или командыmacro:save
).
- помещаются far2m в
- размещать в каталоге
-
Сообщения при старте терминальной версии
Some far2l-s lost in space-time nearby:
-
если работу far2l завершается не штатно (по F10), а вылетом терминала (в том числе и закрытие терминала пользователем по крестику в заголовке окна), то far2l пытается выжить и создает в
/tmp/far2l_3e8_0/TTY
запись о сессии. И при каждом запуске не GUI far2l проверяет там наличие файлов. Если есть, то выводит информациюSome far2l-s lost in space-time nearby:
и предлагает подключиться к одной из сессий. Проблема идет тогда, когда эти сессии фара прибиты были. Файлы в /tmp/far2l_3e8_0/TTY не удаляются. И при каждом старте он спрашивает про это. -
данная возможность очень полезна при обрыве сессии — запущенный на удаленном far2l не умирает, а остается ждать переподключения (поведение изменяется ключами запуска
--immortal
и--mortal
), и при последующем запуске far2l найдёт предыдущий запущенный и попробует восстановиться (сообщенияSome far2l-s lost in space-time nearby:
).- в случае если переподключение с нового ip, а серверный sshd ещё довольно долго ждёт переподключения с того же ip и far2l не подхватывается, то следующим скриптом можно грохнуть все сеансы кроме текущего, после чего старый far2l подхватывается уже нормально:
#!/bin/bash current=$(tty | cut -d/ -f3-) all=$(ps -A -o tty | grep pts/ | grep -v $current) for i in $all ; do pkill -9 -t $i done
- в случае если переподключение с нового ip, а серверный sshd ещё довольно долго ждёт переподключения с того же ip и far2l не подхватывается, то следующим скриптом можно грохнуть все сеансы кроме текущего, после чего старый far2l подхватывается уже нормально:
-
-
Для передачи на запущенный на удалённом компьютере far2l расширенных сочетаний клавиш и буфера обмена необходимо инициировать соединение из умеющих это клиентов (см. ниже).
-
Особенность вставки в терминалах:
- Есть комбинация вставки терминала (терминал имитирует ввод с клавиатуры) и есть вставка самого фара (сам far2l делает paste). При этом комбинация вставки терминала в разных терминалах разная (и может перекрывать стандартные клавиши вставки far2l Shift-Ins или Ctrl-V).
- В версии без TTY|X или TTY|F (или без включенной поддержки
OSC 52
как в far2l, так и в терминале) вставка самого фара использует его внутренний буфер (т.к. far2l не получает доступ к системному буферу обмена), а вставка терминала — системный буфер обмена. - Ни гном, ни кде не хотят
OSC 52
целиком поддерживать из соображений безопасности: записать в клипборд — пожалуйста, а вот читать оттуда — ни-ни (см. в #1110).
Терминалы и ssh-клиенты, поддерживающие расширенные сочетания клавиш far2l для чистой терминальной версии far2l TTY
Данный раздел про настройку эмуляторов терминалов и ssh-клиентов под именно минимальную TTY версию far2l. В остальных эмуляторах терминалов минимальная far2l-TTY работает с разной степенью ограниченности функционала (в части распознавания модификаторов и комбинаций клавиш клавиатуры и системный буфер обмена). Однако в остальных эмуляторах терминалов более-менее работает TTY|X и TTY|Xi версии при доступности/пробросе X11 (см. Особенность вставки в терминалах и Перехват клавиш эмуляторами терминалов).
Теперь даже минимальная TTY версия far2l умеет с поддержкой почти всех клавиш работать в следующих эмуляторах терминалов, используя их расширенные возможности передачи клавиш (по ссылке история и технические подробности).
Для взаимодействия с клипбордом в части из них необходимо не забыть включить OSC 52
как в настройках far2l (опция OSC 52
видна в Menu->Options->Interface settings
, только когда все остальные варианты поддержки клипборда недоступны; так что если не видна, надо запустить far2l так: far2l --tty --nodetect
), так и в настройках терминалов необходимо разрешить OSC 52 (по умолчанию OSC 52
отключен в части терминалов из соображений безопасности; OSC 52
в куче терминалов реализован только для режима copy, а paste из терминала идёт через т.н. bracketed paste mode).
Больше не надо использовать TTY|Xi, для которой для удаленной работы приходилось x-forwarding включать и исковые либы на сервер ставить — теперь из коробки все (по крайней мере, в этих терминалах).
-
Встроенный терминал far2l-gui (Linux, macOS, *BSD):
- TTY|F режим — клавиши и буфер обмена через far2l TTY extensions support
- запускаем графический
far2l
, внутри него делаемssh example.com
(лучше из NetRocks plugin, но можно и просто в командной строке), там запускаем удаленныйfar2l
в консольном режиме:far2l
в командной строке локального far2l на панели активного соединения NetRocks (если far2l на той стороне не в $PATH, то явный путь), ключи никакие не нужны, дальний far2l сам понимает, что здесь его собрат и использует обмен в формате TTY|F. - выдержка из помощи far2l по F1 раздел Режимы интерфейса / UI backends:
Если вы хотите запустить far2l удаленно с максимальным удобством, то рекомендуется либо запустить его из сессии подключения NetRocks, что позволяет использовать TTY|F режим. Если же это невозможно - рекомендуется запускать far2l в SSH сессии с включенным доверенным форвардингом протокола X11 и сжатием (ssh -Y -C ...) что позволяет использовать режим TTY|Xi или хотя бы TTY|X. При этом крайне не рекомендуется использовать доверенный форвардинг X11 при подключении к не доверенному серверу, поскольку это открывает коду, исполняемому на удаленном сервере, неконтролируемую возможность прослушивания ваших клавиатурных нажатий, копирования содержимого буфера обмена и скриншотов окон. Таким образом, TTY|F режим является единственным безопасным методом удаленного запуска far2l на не доверенном сервере с поддержкой всех привычных клавиатурных сочетаний и прочих удобств.
- выдержка из помощи far2l по F1 NetRocks plugin раздел Command line and remote FAR2L:
When entering commands in command line when panel displays usual files list you can open connection by typing NetRocks-supported protocol URL, like sftp://192.168.1.15 or alternatively you can open preconfigured site by invoking its name between triangle brackets and prefixed with net: prefix, like: net: When entering commands in command line when panel displays active NetRocks connection of SFTP and SCP protocols - NetRocks will execute them directly on remote host, opening full-featured pseudoterminal for controlling remotely-executed commands. This essentially allows using NetRocks as SSH client with FAR2L-extended pseudoterminal. If you're working in GUI-based FAR2L you can run remote TTY-mode FAR2L directly in NetRocks SFTP/SCP connected panel and work in that remote FAR2L with user experience of local GUI-based version (full keyboard support, clipboard sharing, desktop notifications) as well as being sure that if connection suddenly drops - remote work will not be killed instantly, since remote terminal-based FAR2L will remain alive and active in background and next time you will reconnect and re-launch far2l - it will prompt to activate that backgrounded FAR2L instance.
-
kovidgoyal's kitty (Linux, macOS, *BSD): https://github.com/kovidgoyal/kitty & https://sw.kovidgoyal.net/kitty/ (поддерживается, начиная с версии far2l от 08.04.2023, commit e1f2ee0)
-
TTY|k режим — расширенное взаимодействие клавиш осуществляется с помощью https://sw.kovidgoyal.net/kitty/keyboard-protocol
-
для взаимодействия с клипбордом необходимо включить режим OSC 52
-
чтобы https://github.com/kovidgoyal/kitty/ не перехватывал Shift-Ins (вставка средствами kitty из другого системного клипборда, чем по умолчанию использует far2l) и Ctrl-Shift-стрелки, в
~/.config/kitty/kitty.conf
(согласно kitty-faq) допишитеmap shift+insert no_op map ctrl+shift+right no_op map ctrl+shift+left no_op map ctrl+shift+home no_op map ctrl+shift+end no_op enable_audio_bell no
(здесь также отключаем
enable_audio_bell
, чтоб при просмотре двоичных файлов не возникали раздражающие бипы) -
настройка kitty под far2l и far2l под kitty однострочником:
(pkill -f far2l || true) & sed -i 's/OSC52ClipSet=0/OSC52ClipSet=1/g' ~/.config/far2l/settings/config.ini; [ -f ~/.config/kitty/kitty.far2l.bak ] && exit; mv ~/.config/kitty/kitty.conf ~/.config/kitty/kitty.far2l.bak; echo -e "map shift+insert no_op\nmap ctrl+shift+right no_op\nmap ctrl+shift+left no_op\nmap ctrl+shift+home no_op\nmap ctrl+shift+end no_op\nenable_audio_bell no" > ~/.config/kitty/kitty.conf
-
BUG в старых версиях kitty "Copy selection to clipboard appends, does not replace": https://github.com/elfmz/far2l/issues/2038
-
-
Wez's Terminal Emulator (Linux, FreeBSD, Windows): https://github.com/wez/wezterm & https://wezfurlong.org/wezterm (поддерживается, начиная с версии far2l от 10.04.2023, commit 97aecaa)
- расширенное взаимодействие клавиш осуществляется
- в Linux/FreeBSD через TTY|k режим — режим kitty, который в wezterm надо включать вручную: прописать в
~/.wezterm.lua
строкуconfig.enable_kitty_keyboard = true
- в Windows через TTY|w режим — win32-input-mode, который включен по умолчанию (в Windows режим kitty похоже сломан и его включать ни в коем случае не нужно)
- в macOS в wezterm проблема с модификаторами https://github.com/elfmz/far2l/issues/2112 и похоже режим kitty не работает корректно (!!! уточнить что работает, а что нет у wezterm в macOS !!!)
- в Linux/FreeBSD через TTY|k режим — режим kitty, который в wezterm надо включать вручную: прописать в
- для взаимодействия с клипбордом необходимо включить режим OSC 52
-
чтобы https://github.com/wez/wezterm не перехватывал Ctrl/Shift-PgUp/PgDn и Ctrl-Shift-стрелки, в
~/.wezterm.lua
(согласно faq) допишитеconfig.keys = { {key = 'PageUp', mods = 'CTRL', action = wezterm.action.DisableDefaultAssignment,}, {key = 'PageDown', mods = 'CTRL', action = wezterm.action.DisableDefaultAssignment,}, {key = 'PageUp', mods = 'SHIFT', action = wezterm.action.DisableDefaultAssignment,}, {key = 'PageDown', mods = 'SHIFT', action = wezterm.action.DisableDefaultAssignment,}, {key = 'LeftArrow', mods = 'SHIFT|CTRL', action = wezterm.action.DisableDefaultAssignment,}, {key = 'RightArrow', mods = 'SHIFT|CTRL', action = wezterm.action.DisableDefaultAssignment,}, {key = 'UpArrow', mods = 'SHIFT|CTRL', action = wezterm.action.DisableDefaultAssignment,}, {key = 'DownArrow', mods = 'SHIFT|CTRL', action = wezterm.action.DisableDefaultAssignment,}, {key = 'Home', mods = 'SHIFT|CTRL', action = wezterm.action.DisableDefaultAssignment,}, {key = 'End', mods = 'SHIFT|CTRL', action = wezterm.action.DisableDefaultAssignment,}, {key = 'PageUp', mods = 'SHIFT|CTRL', action = wezterm.action.DisableDefaultAssignment,}, {key = 'PageDown', mods = 'SHIFT|CTRL', action = wezterm.action.DisableDefaultAssignment,}, }
- расширенное взаимодействие клавиш осуществляется
-
iTerm2 (macOS): https://gitlab.com/gnachman/iterm2/ & https://iterm2.com/ (поддерживается, начиная с версии far2l от 21.04.2023, commit 65b964c)
- TTY|a режим — расширенное взаимодействие клавиш осуществляется с помощью iTerm2 "raw keyboard" protocol
- для взаимодействия с клипбордом необходимо включить режим
OSC 52
как в far2l, так и в самом iTerm2: откройтенастройки
/preferences
и перейдите вОбщие настройки
/General
; включите опциюПриложения в терминале могут получить доступ к буферу обмена
/Applications in terminal may access clipboard
-
особенности реализации поддержки iTerm2 в far2l:
- правый Option (версия Alt на маках) трактуется как правый Control, т.к. правый Control есть не на всех мак-клавиатурах (Command использовать нельзя — он занят хоткеями самого терминала, а правый Alt в far2l всё равно не используется);
- после Paste режим расширенной поддержки клавиатуры включается не сразу, а после первого нажатия любой кнопки из тех, что работают в классическом терминальном режиме.
-
свежий Windows Terminal (в win11 стоит из коробки, в win10 надо ставить) (поддерживается, начиная с версии far2l от конца марта 2023 года)
- TTY|w режим — расширенное взаимодействие клавиш осуществляется с помощью win32-input-mode
- для взаимодействия с клипбордом необходимо включить режим OSC 52
- (!) в Windows Terminal присутствует баг с мышью, который когда-нибудь поправят в microsoft
-
(!) Оригинальный Putty не корректно пересылает в far2l некоторые клавиатурные комбинации. Под Windows используйте специальные форки putty с поддержкой far2l TTY extensions support:
-
putty4far2l (Windows ssh-клиент): https://github.com/unxed/putty4far2l & https://github.com/ivanshatsky/putty4far2l/releases
- TTY|F режим — клавиши и буфер обмена через far2l TTY extensions support
-
cyd01's KiTTY (Windows ssh-клиент): https://github.com/cyd01/KiTTY & https://www.9bis.net/kitty
- TTY|F режим — клавиши и буфер обмена через far2l TTY extensions support
- выключение перехвата клавиш Ctrl-F3...Ctrl-F7 самим KiTTY: в файле
%APPDATA%\Roaming\KiTTY\kitty.ini
заменитьshortcuts=yes
наshortcuts=no
; если нужно отключить только какие-то специфические шорткаты, их можно переназначить на другие сочетания в секции[Shortcuts]
того же файла (например F7 обычно перехватывается принтеромprint=
иprintall={CONTROL}p
) - цветовая схема сессии (править после сохранения сессии в реестре или в файле
Sessions\имя_сессии
) для проброса полных цветов far2l:Colour0\187,187,187\ Colour1\255,255,255\ Colour2\0,0,0\ Colour3\85,85,85\ Colour4\0,0,0\ Colour5\0,255,0\ Colour6\0,0,0\ Colour7\85,85,85\ Colour8\128,0,0\ Colour9\255,85,85\ Colour10\0,187,0\ Colour11\85,255,85\ Colour12\187,187,0\ Colour13\255,255,85\ Colour14\0,0,128\ Colour15\85,85,255\ Colour16\187,0,187\ Colour17\255,85,255\ Colour18\0,128,128\ Colour19\85,255,255\ Colour20\187,187,187\ Colour21\255,255,255\
-
putty-nd (Windows ssh-клиент): https://sourceforge.net/projects/putty-nd/ & https://github.com/noodle1983/putty-nd
- TTY|F режим — клавиши и буфер обмена через far2l TTY extensions support
- для поддержки far2l включите опции
Global Settings
⇒Global Far2l Support
(подробнее: https://sourceforge.net/p/putty-nd/feature-requests/36/)
-
Известные проблемы и решения (перехват комбинаций клавиш оболочками, особенности far2l в терминалах и под Wayland, проблемы буфера обмена, проблема в macOS)
-
Оригинальный Putty не корректно пересылает в far2l некоторые клавиатурные комбинации. Под Windows используйте специальные форки putty с поддержкой far2l TTY extensions support.
-
Липкие управляющие кнопки: если ваше окружение не дает вам использовать некоторые кнопкосочетания из-за ограничений TTY режима или если кнопкосочетание занято внешней программой то вы можете использовать липкие управляющие кнопки. Это означает кнопка, которая виртуально остается нажатой до нажатия следующей не-управляющей (цифро-символьной) кнопки:
- Ctrl+SPACE дает липкий CONTROL
- Alt+SPACE дает липкий ALT
- правый_Ctrl+SPACE дает липкий правый CONTROL
- правый_Alt+SPACE дает липкий правый ALT
Другим способом получить работоспособные горячие кнопки может быть перенастройка общесистемные хоткеев, внешних программ (с целью освободить нужные сочетания) или же использование опции эксклюзивной обработки нажатий (только в GUI режиме). См. также клавиатурные макросы для урезанных клавиатур.
-
Многие комбинации клавиш Alt-F1, Alt-F2, Alt-F7, Ctrl-стрелки и т.п. используются как общесистемные хоткеи и глобально перехватываются оболочками GNOME, KDE, Xfce, macOS и т.п. Для работы отключайте их в настройках оболочек (desktop environment = DE).
-
Отключение возможно визуально в настройках оболочек (например в GNOME 42: Settings ⇒ Keyboard ⇒ Keyboard Shortcuts ⇒ View and Customize Shortcuts) - нудно по всем пройтись и отключить лишние.
-
При переключении языка по Ctrl-Shift из-за перехвата оболочкой могут не работать все комбинации с ней (Ctrl-Shift-стрелки — пометка в редакторе по словам, Ctrl-Shift-PgDn — переход на symlink и т.п.).
-
Alt-F1 в GNOME открывает "Applications" menu и не настраивается через стандартные настройки; для освобождения данной комбинации использовать
dconf-editor
и в нём в/org/gnome/shell/extensions/apps-menu/apps-menu-toggle-menu
снять переключательUse default value []
. -
подборка скриптов для отключения глобальных клавиш через
gsettings
и конфигурационные файлы: https://github.com/unxed/far2ltricks/tree/main/unbindkeys и https://github.com/elfmz/far2l/issues/2326-
в частности, отключение глобальных клавиш в GNOME или Cinnamon через gsettings [нажмите, чтобы развернуть/скрыть]
-
GNOME Terminal
# turn off F10 usage in GNOME Terminal gsettings set org.gnome.Terminal.Legacy.Settings menu-accelerator-enabled false
-
GNOME DE
# turn off some gnome wm-specific hot keys gsettings set org.gnome.desktop.wm.keybindings panel-main-menu "[]" # Alt+F1 gsettings set org.gnome.desktop.wm.keybindings panel-run-dialog "[]" # Alt+F2 #gsettings set org.gnome.desktop.wm.keybindings close "[]" # Alt+F4 gsettings set org.gnome.desktop.wm.keybindings unmaximize "['']" # Alt+F5 gsettings set org.gnome.desktop.wm.keybindings begin-move "['disabled']" # Alt+F7 gsettings set org.gnome.desktop.wm.keybindings begin-resize "['disabled']" # Alt+F8 gsettings set org.gnome.desktop.wm.keybindings toggle-maximized "['']" # Alt+F10
-
Cinnamon
# for cinnamon: gsettings set org.cinnamon.desktop.keybindings.wm panel-main-menu "[]" # Alt+F1 gsettings set org.cinnamon.desktop.keybindings.wm panel-run-dialog "[]" # Alt+F2 #gsettings set org.cinnamon.desktop.keybindings.wm close "[]" # Alt+F4 gsettings set org.cinnamon.desktop.keybindings.wm unmaximize "['']" # Alt+F5 gsettings set org.cinnamon.desktop.keybindings.wm begin-move "['']" # Alt+F7 gsettings set org.cinnamon.desktop.keybindings.wm begin-resize "['']" # Alt+F8 gsettings set org.cinnamon.desktop.keybindings.wm toggle-maximized "['']" # Alt+F10
-
-
-
В KDE Plasma можно включить игнорирование глобальных хоткеев для конкретного окна / приложения:
- делается это либо через
Параметры системы
⇒Приложения и окна
⇒Диспетчер окон
⇒Особые параметры окон
⇒Создать
, - либо через меню окна far2l:
Дополнительно
⇒Настроить индивидуальные параметры приложения
, кнопкаДобавить свойство
, и там, в подразделеВнешний вид и обход проблем
, пунктИгнорировать глобальные комбинации клавиш
.
- делается это либо через
-
В Xfce очень нетривиально привязки кнопок отключаются, в гуевом туле натыкиваешь, а все равно не работает, лечится конфигом; выдержка из https://russiandesman.dreamwidth.org/2742.html про кейбайндинги:
~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml Удалить или закомментировать строки вида: <property name="<Primary>F6" ... <property name="<Control>F6" ... После этого вернутся Ctrl+F7 и прочие мелкие радости. Если строки не удалить, а только снять с них галки в xfce4-keyboard-settings - счастья не будет.
-
Комбинация записи макроса Ctrl-. с 2021 перехватывается оболочкой (подробности и вариант отключения), но т.к. на русской раскладке точка на другой клавише, то на русской запуск записи макроса отрабатывает (начало записи макроса по Ctrl-.; то, что запись макроса идёт, видно по букве R в верхнем левом углу; окончание записи макроса по Ctrl-. и затем ввод комбинации клавиш, навешиваемой на запуск макроса).
-
-
В far2l-GUI есть возможность эксклюзивного захвата модификаторов (F9⇒Options⇒Input settings⇒Exclusively handle hotkeys that include / F9⇒Параметры⇒Параметры ввода⇒Эксклюзивная обработка нажатий, включающих), что позволит не переназначать комбинации в оболочке, но, например, при захвате Alt также обломится и глобальный Alt-Tab. Обсуждение: https://github.com/elfmz/far2l/issues/2007
- в KDE Plasma 6.1 включение эксклюзивного захвата из внутри far2l не работает; помогает только установка свойств приложения через меню окна:
Дополнительно
⇒Настроить индивидуальные параметры приложения
, кнопкаДобавить свойство
, и там, в подразделеВнешний вид и обход проблем
, пунктИгнорировать глобальные комбинации клавиш
.
- в KDE Plasma 6.1 включение эксклюзивного захвата из внутри far2l не работает; помогает только установка свойств приложения через меню окна:
-
На внешних клавиатурах macOS меняет местами Alt и Win (считая что ближняя к пробелу клавиша слева — это Command, как на клавиатуре макбука).
-
Эмуляторы терминалов также часто не передают запущенным в них консольным приложениям часть комбинаций клавиш, или не различают нажатие различных комбинаций модификаторов (Ctrl, Alt и т.п.).
- стандартный gnome-terminal в Ubuntu перехватывает F10 (настраивается
⇒ Preferences ⇒ General: Uncheck "
Enable the accelerator key (F10 by default)
"), остальные комбинации клавиш настраиваются ⇒ Preferences ⇒ Shortcuts - про kovidgoyal's kitty см. выше
- про wezterm см. выше
- в qterminal возможно потребуется сменить режим эмуляции на linux, т.к. при default замечена бага — Backspace внутри far2l попадают как Ctrl+Backspace
- стандартный gnome-terminal в Ubuntu перехватывает F10 (настраивается
⇒ Preferences ⇒ General: Uncheck "
-
Особенности под Wayland или под WSL+WSLg (при проблемах с буфером обмена и/или комбинациями клавиш в FAR2L-GUI/TTY|X)
-
Версии far2l с 2.6.1 (и сборки 2.6.0 чуть ранее, начиная с конца марта 2024):
- автоматически определяют запуск под Wayland и отключают несовместимые опции — внутри терминалов для TTY|Xi получение клавиатурных событий не работает под Wayland из-за модели безопасности Wayland, при его запуске far2l переключается на TTY|X без i;
- для GUI и TTY|X исправлен баг с некорректной работой с буфером обмена под Wayland.
-
Информация в раскрываемом блоке актуальна только для более старых сборок far2l (до версии far2l 2.6.1) [нажмите, чтобы развернуть/скрыть]
-
FAR2L (режимы GUI и TTY|X) для получения расширенных сочетаний клавиш использует возможности X11, которые из соображений безопасности ограничены в чистом Wayland'е при запуске из под терминалов.
-
Для адекватной работы FAR2L GUI в Wayland (и в Win11 wslg) помогает запустить в режиме xWayland, указав переменную среды
GDK_BACKEND=x11
:- запуск из консоли:
GDK_BACKEND=x11 far2l
; - внутри ярлыка
/usr/share/applications/far2l.desktop
заменитьExec=far2l
наExec=env GDK_BACKEND=x11 far2l
- запуск из консоли:
-
При запуске в эмуляторе терминала режим xWayland не даёт процессам не владеющим окном полноценного доступа к клавиатурным событиям и тут совет запускать бекенд TTY или только TTY|X:
- принудительное неиспользование расширенных клавиатурных возможностей X11 при запуске в консоли:
far2l --tty --nodetect=xi --ee
- принудительное неиспользование расширенных клавиатурных возможностей X11 при запуске в консоли:
-
Глобальные советы для GNOME (Ubuntu 22.04...24.04..., свежие Fedora 25... и новее и т.п.):
-
Загрузка только X11 = запрет загрузки Wayland:
- в файле
/etc/gdm3/custom.conf
под sudo в разделе[daemon]
раскомментировать строкуWaylandEnable=false
(см. https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/ ) и перелогинится/перезагрузится - команда для автоматического изменения этой строки:
sudo sed -i 's/#WaylandEnable=false/WaylandEnable=false/' /etc/gdm3/custom.conf
- в файле
-
смена по умолчанию на X11 сессии при графическом логине:
- в файле
/etc/gdm3/custom.conf
под sudo в разделе[daemon]
добавить строкуDefaultSession=gnome-xorg.desktop
(см. https://askubuntu.com/a/1464319/894968 ) и перелогинится/перезагрузится - команда для автоматического добавления этой строки:
sudo sed -i '/^\[daemon\]/a DefaultSession=gnome-xorg.desktop' /etc/gdm3/custom.conf
- в файле
-
Загрузка только X11 = запрет загрузки Wayland:
-
подробности: https://github.com/elfmz/far2l/issues/2053, https://github.com/elfmz/far2l/issues/2041, https://github.com/shmuz/far2m/issues/17#issuecomment-1344709147 и https://github.com/elfmz/far2l/issues/1658
-
-
про причины таких ограничений Wayland: https://t.me/far2l_ru/13852, https://t.me/far2l_ru/13853 и далее.
-
-
Костыль решения проблем с буфером обмена (использования внешних консольных утилит для работы с буфером обмена) — решение, если встроенные средства почему-то не получают доступ к буферу обмена (замечено в не X11-средах: wayland и wslg):
-
~/.config/far2l/clipboard
— bash-скрипт (должен иметь права выполнения chmod +x) для работы с буфером обмена, если встроенные средства почему-то не получают доступ (также можно указывать разово на произвольный файл скрипта через аргумент командной строки--clipboard
) - Подробнее: https://github.com/elfmz/far2l/issues/1658#issuecomment-1546638648 и commit от 13.05.23
- Варианты скриптов для не X11 сред: https://github.com/elfmz/far2l/issues/1520
-
-
Костыль решения проблемы macOS версии при навязчивом регулярном запросе разрешения при переходе по каталогам:
- Многим помогает
далее хватает 1 разрешения. Подробности и обсуждение: https://github.com/elfmz/far2l/issues/1754
sudo codesign --force --deep --sign - /Applications/far2l.app
- Многим помогает
-
Внутренняя командная строка far2l полноценно работает только через bash:
- Можно сменить оболочку через F9⇒Параметры⇒Настройки командной строки⇒Использовать шелл, но тогда командная строка будет работать с значительными ограничениями/ошибками, особенно с собственными командами оболочки, см. https://github.com/elfmz/far2l/issues/1264#issuecomment-1045334082
- Если в вашей системе нет bash, желательно установить его и использовать только bash в far2l.
- Если по умолчанию ваша системная оболочка не bash, возможно, вам будет удобно также прописать ваши переменные среды, алиасы и т.п. в файлах запуска bash.
- far2l в процессе работы выставляет переменную окружения
$HISTCONTROL=ignorespace
для исключения из истории bash рабочих обращений (far2l всегда начинает команды с пробела); если вы поменяли шелл на другой, который не понимает$HISTCONTROL
, то в историю оболочки будут сыпаться рабочие команды- для zsh помогает добавить в .zshrc на выбор или глобально
setopt HIST_IGNORE_SPACE
(эквивалентноsetopt -g
) или только под far2l[ -n "$FARPID" ] && setopt HIST_IGNORE_SPACE
или[ -n "$FARPID" ] && unset HISTFILE
- для zsh помогает добавить в .zshrc на выбор или глобально
-
Неадекватные цвета far2l в эмуляторе терминала Konsole:
- в Konsole по-умолчанию включена тема "Breeze", если ее поменять на другую, к примеру "Linux Colors" или "Green on Black", то цвета в far2l становятся адекватными (из всех тем, что есть в Konsole, штуки 3-4 можно с far использовать):
- в контекстном меню с экрана konsole пункт "Edit Current Profile..." ⇒ вкладка Apperarance ⇒ таб "Color scheme & font" ⇒ выбрать тему "Linux Colors";
- в некоторых системах параметры встроенного профиля не редактируются;
- Konsole ⇒ "Открыть меню" ⇒ "Настройка" ⇒ "Создать новый профиль" (или "Управление профилями") ⇒ раздел "Внешний вид" ⇒ выбрать другую цветовую схему;
- потом ещё можно: "Открыть меню" ⇒ "Настройка" ⇒ "Настроить Konsole" ⇒ "Профили" ⇒ выбрать созданный профиль ⇒ "Сделать основным".
- в Konsole по-умолчанию включена тема "Breeze", если ее поменять на другую, к примеру "Linux Colors" или "Green on Black", то цвета в far2l становятся адекватными (из всех тем, что есть в Konsole, штуки 3-4 можно с far использовать):
-
- На скорость NetRocks-SFTP заметно влияет настройка:
Site connection settings ⇒ Protocol options ⇒ Max read block size, bytes
. По умолчанию 32768, а это очень малое значение, попробуйте поставить, например, 131072. - Еще, если в настройке
Site connection settings ⇒ Extra options ⇒ Keepalive, seconds
стоит не 0, то потери скорости.
- На скорость NetRocks-SFTP заметно влияет настройка:
-
Помощь самого far2l по F1 внутри программы (при этом много разделов не актуализированы или описывают артефакты исходной windows версии far'а; про артефакты и опечатки).
-
Серия (еже/полу)годовых обзоров достижений far2l от unxed:
- https://habr.com/ru/articles/845998/
- https://habr.com/ru/articles/768328/
- https://habr.com/ru/articles/724118/
- https://habr.com/ru/articles/698450/
- https://habr.com/ru/articles/645475/
- https://www.opennet.ru/opennews/art.shtml?num=56492
- https://habr.com/ru/articles/593451/
- https://habr.com/ru/articles/524370/
- https://www.opennet.ru/opennews/art.shtml?num=49454
- https://www.opennet.ru/opennews/art.shtml?num=44975
-
Запуск из консоли:
-
far2l
— если установлен far2l-gui, то даже при запуске из эмулятора-терминала в графической среде запустится wx-версия; -
far2l --tty
— запуск в консоли всегда именно консольной версии TTY|Xi; -
far2l --tty --nodetect=xi
— запуск минимальной консольной версии TTY; -
far2l --help
— список ключей запуска, в том числе и FAR2L backend-specific options. - Запуск из консоли и открытие на панели текущей директории:
- (спасибо за совет ivanshatsky): в
~/.config/far2l/settings/panel.ini
в секции[Panel/Left]
или[Panel/Right]
прописатьFolder=$PWD
(!) внимание: любое сохранение настроек перезапишет этот пункт и надо будет прописывать заново; - (спасибо за совет unxed):
far2l .
илиfar2l --tty .
илиfar2l --tty -cd .
(можно сделать короткий alias, например,alias f='far2l --tty -cd .'
и дальше запускать просто по командеf
).
- (спасибо за совет ivanshatsky): в
- Запуск портабельной версии надо с двойным указанием первого параметра, то есть
far2l_<что-то-там>.run -- --tty -cd .
(первый пустой параметр--
, относится к самому архиву, а затем уже указываются последующие ключи, передающиеся внутрь в far2l).
-
-
Каталог с установленным far2l — после запуска far2l определяет переменную
$FARHOME
, соответственно во внутреннем терминале быстрый переход к каталогуcd $FARHOME
. -
Расположение персональных настроек far2l и истории
- по умолчанию far2l работает с настройками хранящимися в
~/.config/far2l
или в$XDG_CONFIG_HOME/far2l
- при запуске ключ
-u
(или переменная окружения$FARSETTINGS
) позволяет указать путь к произвольному расположению настроек:-
-u <path>
— вpath/.config/
(если path или $FARSETTINGS является полным путем) -
-u <identity>
— в~/.config/far2l/custom/identity/
или в$XDG_CONFIG_HOME/far2l/custom/identity/
-
- при запуске ключ
- ныне все настройки хранятся в
.ini
-файлах (ранее настройки вслед за windows хранились в псевдореестре в каталогах~/.config/far2l/REG
; компиляция с ключом-DLEGACY=yes
добавляет код, который при старте far2l конвертирует настройки из REG в .ini) - некоторые файлы настроек (могут отсутствовать):
- settings/config.ini — основной конфиг - palette.ini — расцветка панелей - settings/colors.ini — раскраска файлов и групп сортировки (настраиваются через F9->Команды->Раскраска файлов и группы сортировки) - settings/key_macros.ini — клавиатурные макросы [только far2l, в far2m вместо него Lua-макросы] - settings/user_menu.ini — главное меню пользователя (настраиваются через F9->Команды->Меню пользователя; формат отличается от FarMenu.ini местных меню) - settings/associations.ini — ассоциации файлов (настраиваются через F9->Команды->Ассоциации файлов) - settings/bookmarks.ini — закладки на каталоги для быстрого перехода по RCtrl-0...9 или Ctrl-Alt-0...9 (настраиваются через F9->Команды->Закладки на папки) - favorites — закладки в меню точек монтирования (дисков), которое по Alt-F1/F2 - cp — принудительное выставление OEM и ANSI кодировок, переключаемых по F8 для просмоторщика и редактора - plugins — плагины - plugins/state.ini — кэш плагинов - plugins/NetRocks/sites.cfg — NetRocks sites - plugins/multiarc/custom.ini — добавление архиваторов командной строки - plugins/colorer/config.ini — пользовательский конфиг Far Colorer, сюда же удобно класть свои схемы colorer'а, которые будут применяться поверх базовых (требуют явного прописывания в настройках Far Colorer) - clipboard — bash-скрипт (должен иметь права выполнения chmod +x) для работы с буфером обмена, если встроенные средства почему-то не получают доступ - notify.sh, open.sh, ps.sh, trash.sh, view.sh — пользовательские скрипты кастомизации, вызываемые (при наличии) из базовых скриптов $FARHOME/open.sh и т.д.
- про формат ini-файлов: https://github.com/elfmz/far2l/wiki/INI-files-format
- про
favorites
см.: https://github.com/elfmz/far2l/issues/1379#issuecomment-1295961834 - про
cp
подробнее ниже - про
plugins/NetRocks/sites.cfg
см.: https://github.com/elfmz/far2l/issues/874#issuecomment-758384645 - про
plugins/multiarc/custom.ini
: инструкция и пример - про
plugins/colorer
: пользовательские файлы синтаксиса можно класть куда угодно, главное путь к ним указать в настройках плагина (F9⇒Options⇒Plugins configuration / Alt+Shift+F9 ⇒ FarColorer ⇒ Users file of... или в соотв. поля файла~/.config/far2l/plugins/colorer/config.ini
), см. также общую, не привязанную к Линукс инструкцию https://github.com/colorer/Colorer-library/blob/master/docs/custom.md - про
clipboard
подробности выше - про скрипты кастомизации:
open.sh
— пользовательский скрипт для переопределенияEXEC_TERM=
— эмулятора терминала, используемого при Shift-Enter внутри$FARHOME/open.sh
, если Вы хотите использовать отличный от системного из /etc/alternatives/x-terminal-emulatortrash.sh
— переопределение действий при удалении в корзину, например, см. совет KDE-шникам: https://github.com/elfmz/far2l/issues/2049- сейчас в базовые скрипты
$FARHOME/*.sh
жестко зашит путь~/.config/far2l/
, поэтому описанное выше переопределение расположения они не учитывают
- примеры клавиатурных макросов см. ниже: про Colorer и Разные макросы
- в shmuz форке far2m классический формат макросов far2 (из файла
settings/key_macros.ini
) игнорируется; работают только Lua-макросы как в far3 (лежат вMacros/scripts
, подробности в macroapi_manual_linux.chm )
- по умолчанию far2l работает с настройками хранящимися в
Note: редактировать файлы конфигов при отключенном автосохранении настроек в FAR'а или FAR должен быть не запущен
-
Стандартные фичи far благополучно скрашивающие жизнь и в far2l:
-
скопировать кусок экрана в буфер обмена:
Alt-Ins
⇒ стрелками переместится к нужной позиции ⇒ выделение при помощиShift
-стрелки (или мышью) ⇒Enter
илиCtrl-Ins
-
быстрый переход на панели к каталогу/файлу по имени через Alt-буква понимает подстановочные
*
и?
, дальнейший перескок к удовлетворяющим критерию по Ctrl-[Shift]-Enter - эскалация привилегий — редактируешь конфиг в /etc, а при сохранении far2l если нужно запросит права рута (не надо заранее помнить и делать sudo).
-
скопировать кусок экрана в буфер обмена:
-
Получить имя/путь к файлу с панелей:
- вставка с ккранированием
\
в командную строку:- Ctrl-Enter — имя файла или Ctrl-F — полный путь к файлу из активной панели, Ctrl-Shift-Enter — имя файла или Ctrl-; — полный путь к файлу из пассивной панели, Ctrl-[ и Ctrl-] — полный путь к каталогу из левой или правой панели;
- если в имени/пути есть пробелы, кавычки и прочие подобные символы, то они экранируются слешом
\
, т.к. в Linux (в отличии от Windows) в именах допустимы любые символы (в том числе кавычки"
) кроме/
;
- копирование в буфер обмена без экранирования обратным слешом в far2l:
- Ctrl-Ins — имя файла и Ctrl-Alt-Ins — полный путь файла с активной панели (ну а затем куда угодно можно вставить через Shift-Ins или Ctrl-V).
- вставка с ккранированием
-
Ctrl-Alt-F — в истории (команд, папок, просмотра/редактирования файлов), пользовательском меню, меню выбора точек монтирования и т.п. — переключение в режим быстрой фильтрации, т.е. показывать только пункты, содержащие вводимый текст (после включения режима фильтра в меню клавиши перестают выбирать пункты по выставленным hotkeys).
- для автоматического включения фильтрации в истории команд, папок, просмотра/редактирования файлов можно использовать следующие макросы (спасибо за совет ivanshatsky):
- классические макросы для far2l (дописывать в файл
~/.config/far2l/settings/key_macros.ini
):[KeyMacros/Shell/AltF8] Sequence=AltF8 CtrlAltF [KeyMacros/Shell/AltF11] Sequence=AltF11 CtrlAltF [KeyMacros/Shell/AltF12] Sequence=AltF12 CtrlAltF
- lua-макросы для far2m (класть в каталог
~/.config/far2m/Macros/scripts
):Macro { description="Turn filter on in command/view/edit/folders histories"; area="Shell Info Tree"; key="AltF8 AltF11 AltF12"; action = function() Keys(mf.akey(1,1).." CtrlAltF") end; }
- классические макросы для far2l (дописывать в файл
- для автоматического включения фильтрации в истории команд, папок, просмотра/редактирования файлов можно использовать следующие макросы (спасибо за совет ivanshatsky):
-
Фоновое копирование можно осуществлять через протокол
file
из NetRocks Plugin:небольшой лайфхак: far2l не умеет в фоновое копирование, а NetRocks - умеет. А еще NetRocks имеет псевдопротокол file: Так вот, если сейчас в far2l консоли набрать file: - то в панели откроется NetRocks'овый обзор ФС, не сильно не отличающийся от обычного. Но если оттуда начать копирование - то откроется окно "скачивания" NetRocks. С возможностью вывода в фон.
(источник: https://github.com/elfmz/far2l/issues/247#issuecomment-493710827 )
А как мониторить/прерывать фоновое копирование?
фоновое копирование - там пункт появляется в F11. Или через F9/Options/Plugins configuration
(источник: https://github.com/elfmz/far2l/issues/247#issuecomment-493738355 )
-
Каскадное SSH соединения в NetRocks Plugin:
-
Вопрос: есть ssh до сервера а, а с него ссш до сервера б, реально ли нетроксу объяснить как ходить на сервер б?
-
Ответ [нажмите, чтобы развернуть/скрыть]
- В файле
~/.ssh/config
надо указать цепочку серверов для соединения таким образом (Hostname может быть не только IP адресом, но и именем, которое знает "прокси" хост)Host test2.domain IdentityFile ~/.ssh/id_rsa.test1 Hostname 1.2.3.4 ProxyJump [email protected]:22 Host test3.abc IdentityFile ~/.ssh/id_rsa.test2 Hostname 5.6.7.8 ProxyJump [email protected]:22
- цепочка соединений здесь такая:
( test2.domain ): myhost == >> test1.tld:22 == >> 1.2.3.4 ( test3.abc ): myhost == >> test2.domain:22 == >> 5.6.7.8
- проверяйте в командной строке с помощью ssh клиента
заодно подтвердите по "отпечаткам" хостов, что доверяете им
ssh -v [email protected]
- затем тот же самый хост
[email protected]
прописывайте в NetRocks плагине или в других ssh / sftp клиентах.
- В файле
-
-
Использование rclone в NetRocks для различных протоколов (Amazon S3, etc): https://github.com/elfmz/far2l/issues/1816#issuecomment-2267081585
-
[нажмите, чтобы развернуть/скрыть]
-
Устанавливаем rclone:
sudo apt install rclone
-
Настраиваем подключение, запоминаем его имя (name):
rclone config
-
Создаем в домашней папке два скрипта:
-
nr_rclone_up.sh
Для быстрых соединений#!/bin/sh if [ "$SINGULAR" = 1 ] ; then rclone serve sftp "$EXTRA": --user "$USER" --pass "$PASSWORD" --addr :"$PORT" >/dev/null 2>&1 & sleep 3 echo $! >"$STORAGE" fi
sleep 3
можно заменить на2
или1
. Для медленных — увеличить. -
nr_rclone_down.sh
#!/bin/sh if [ "$SINGULAR" = 1 ] && [ -r "$STORAGE" ]; then kill $(cat "$STORAGE") unlink "$STORAGE" fi
-
-
Ставим им право на выполнение:
chmod +x nr_rclone*
-
Создаем новое соединение в NetRocks:
-
Протокол:
sftp
-
Хост:
localhost
-
Порт:
2022
-
Режим входа:
сохраненный пароль (saved password)
-
Имя пользователя:
1111
(любое не пустое, на самом деле) -
Пароль:
1111
(любой не пустой, на самом деле) -
Идём в Extra options
-
Command to execute on connect:
~/nr_rclone_up.sh
-
Command to execute on disconnect:
~/nr_rclone_down.sh
-
Extra string passed to command:
имя (name)
вашего соединения rclone с шага b.
-
Сохраняем всё. Подключаемся. Пользуемся.
-
Для каждого дополнительного соединения rclone указываем другой свободный порт:
2022
,2023
и т.д. Это позволяет запускать несколько облачных источников одновременно. И копировать между ними, если открыты в разных панелях. -
-
-
Использование в качестве unix-редактора "по умолчанию" (спасибо за совет ivanshatsky):
- far2l можно прописать в переменной оболочки
EDITOR
, после чего far2l будет использоваться вместо стандартногоvi
при вызове всяких команд типаsudo -e
илиcrontab -e
илиvipw
(а также для редактирования описания при вызовеgit commit
:) - для большинства программ достаточно указать
EDITOR="far2l -e"
- нюанс:
mc
не использует при вызове редактора ключ-e
и в итоге просто запускает фар (возможно есть и другие такие исключения), поэтому на far2l можно использовать (или самостоятельно сделать) симлинк с именемfar2ledit
, и прописывать в переменной его, так он будет работать редактором без дополнительных ключей:export EDITOR=farl2edit
.
- far2l можно прописать в переменной оболочки
-
Выбор кодовых страниц по F8 в редакторе и просмоторщике. Переключаемые по F8 OEM и ANSI кодовые страницы определяются на основе файла
~/.config/far2l/cp
(первая строка — OEM, вторая — ANSI) или, при его отсутствии, переменной средыLC_CTYPE
(см.DeduceCodepages()
в WinPort/src/APIStringCodepages.cpp)- Способ 1: согласно https://github.com/shmuz/far2m/issues/16#issuecomment-1351763055
Создайте файл
~/.config/far2l/cp
, в нём поместите 2 строчки:866
1251
Перезапустите Фар. - Способ 2: переопределить до запуска far переменную среды
LANG
- для запуска через ярлык — в файле
/usr/share/applications/far2l.desktop
отредактируйте строкуExec=far2l
например для русских ANSI=1251 и OEM=866 наExec=env LANG=ru_RU.UTF8 far2l
.
- для запуска через ярлык — в файле
- Способ 1: согласно https://github.com/shmuz/far2m/issues/16#issuecomment-1351763055
-
Полезности редактора (подробности: в far2l в помощи по F1 см. раздел Редактор / Editor)
-
Alt-Клав.курсора — пометка вертикального блока.
-
Alt-Shift-Клав.курсора — пометка вертикального блока (Shift нужен, если используется NumLock клавиатура).
-
Shift-F2 — пересохранение текущего документа с возможностью изменения кодовой страницы, BOM, перевода строк (CR LF, CR, LF).
-
F5 — вкл/выкл отображения пробельных символов (пробелы, табуляции).
-
Ctrl-F5 — смена для вновь вводимых TAB режима ввода: либо остаются TAB, либо меняются на заданное число пробелов (настраиваются через Shift-F5 или F9/Alt-Shift-F9 или на основе файлов
.editorconfig
см. https://editorconfig.org/ и https://github.com/elfmz/far2l/issues/1222 ). -
Работа с парными скобками в редакторе поддерживается на уровне плагина FarColorer (на основе Colorer) и обладает вкусными возможностями доступными изначально лишь через F11⇒FarColorer. Для навешивания на эти возможности комбинаций клавиш (как прописано в помощи по FarColorer, но не работает)
-
классические-макросы для far2l [нажмите, чтобы развернуть/скрыть]
добавить в
~/.config/far2l/settings/key_macros.ini
следующий код (спасибо за совет t.me/yfinkel):[KeyMacros/Editor/AltL] DisableOutput=0x1 Sequence=F11 F 1 Description=Editor->FarColorer->List types [KeyMacros/Editor/Alt[] DisableOutput=0x1 Sequence=F11 F 2 Description=Editor->FarColorer->Match pair [KeyMacros/Editor/Alt]] DisableOutput=0x1 Sequence=F11 F 3 Description=Editor->FarColorer->Select block [KeyMacros/Editor/AltP] DisableOutput=0x1 Sequence=F11 F 4 Description=Editor->FarColorer->Select pair [KeyMacros/Editor/Alt;] DisableOutput=0x1 Sequence=F11 F 5 Description=Editor->FarColorer->Outliner list [KeyMacros/Editor/Alt'] DisableOutput=0x1 Sequence=F11 F 6 Description=Editor->FarColorer->Errors list [KeyMacros/Editor/AltK] DisableOutput=0x1 Sequence=F11 F 7 Description=Editor->FarColorer->Select region [KeyMacros/Editor/AltO] DisableOutput=0x1 Sequence=F11 F 8 Description=Editor->FarColorer->Find Function
-
lua-макросы для far2m [нажмите, чтобы развернуть/скрыть]
класть в каталог
~/.config/far2m/Macros/scripts
, например, в файлColorer.lua
(спасибо bigvax):Macro { description="Colorer: Список типов"; area="Editor"; key="AltL"; action=function() Keys("F11 F 1") end; } Macro { description="Colorer: Найти парную скобку"; area="Editor"; key="Alt["; action=function() Keys("F11 F 2") end; } Macro { description="Colorer: Выделить блок со скобками"; area="Editor"; key="Alt]"; action=function() Keys("F11 F 3") end; } Macro { description="Colorer: Выделить блок между скобок"; area="Editor"; key="AltP"; action=function() Keys("F11 F 4") end; } Macro { description="Colorer: Список функций"; area="Editor"; key="Alt;"; action=function() Keys("F11 F 5") end; } Macro { description="Colorer: Список ошибок"; area="Editor"; key="Alt'"; action=function() Keys("F11 F 6") end; } Macro { description="Colorer: Выбрать текущий регион"; area="Editor"; key="AltK"; action=function() Keys("F11 F 7") end; } Macro { description="Colorer: Найти функцию"; area="Editor"; key="AltO"; action=function() Keys("F11 F 8") end; }
-
-
- для экономии ресурсов Colorer при открытии файла обрабатывает только первые 6000 строк файла (в отличии от версии под windows тут это пока не настраивается);
- если в файле больше 6000 строк, то при переходе на них раскраска Colorer работает как бы в фоне - в рамках общего/одного потока far - и чтобы в far был отзывчивым, там идут прерывания (вроде ждем события от far2l c типом idle и на каждое такое событие разбирается условно 500 строк) - выглядит это медленным;
- для принудительной раскраски всего большого файла из редактора в меню плагина Colorer F11⇒FarColorer⇒ 9 Update highlighting / 9 Обновить раскраску; при этом запускается разбор файла без прерываний на другие действия (редактор подвисает).
-
-
Полезности просмотрощика (подробности: в far2l в помощи по F1 см. раздел Программа просмотра: клавиши управления / Viewer: control keys)
-
Ctrl-F7 — grep фильтр (временная фильтрация содержимого просматриваемого файла, используя UNIX-овую утилиту
grep
). -
F5 — просмотр в processed mode, позволяющий получить информацию о файле (текстовое представление PDF'ки или технические данные об изображении); для изображений также при наличии внешних программ (
chafa
и т.п.) полноцветный показ самой картинки (к сожалению, размеры отображения ограничены настройками терминала и разрешение картинки очень низкокачественное).
-
Ctrl-F7 — grep фильтр (временная фильтрация содержимого просматриваемого файла, используя UNIX-овую утилиту
-
Полезности встроенного терминала — после скрытия обоих панелей (по Ctrl-O) в встроенном терминале доступы различные полезности (полный список: в far2l в помощи по F1 см. раздел Терминал / Terminal, также https://github.com/elfmz/far2l/issues/150#issuecomment-278467291 ):
-
Tab — Автодополнение (на основе FAR2L)
-
Shift-Tab-Tab — Автодополнение (на основе bash)
-
F3 или Ctrl+Shift+F3 или Ctrl+Shift+MouseScrollUp — Терминал⇒Просмотр (вся история терминала в Просмотр — удобно для пролистывания длинного вывода)
-
F4 или Ctrl+Shift+F4 — Терминал⇒Редактор (вся история вывода терминала в Редактор)
(в просмоторщик/редактор идёт временная копия терминала на момент нажатия F3 или F4 и может не включать дальнейшие изменения в терминале)
-
F8 — Очистка истории терминала и экрана
-
выделение мышью — сразу выделить и в буфер обмена (внимание! в отличии от Alt-Ins не требует дальнейших действий, а сразу при отпускании мыши закидывает в буфер обмена выделенный фрагмент ⇒ может быть нежданное затирание данных в буфере обмена)
-
-
Фоновый запуск программ, без блокировки терминала far2l:
-
program &
: просто добавить в конце & (после пробела) - закроет программу после закрытия far2l; -
nohup program &
: оставит программу запущенной после завершения far2l, но в текущем каталоге создаётся файл nohup.out c выводом проги; -
nohup program >/dev/null 2>&1 &
: оставит программу запущенной после завершения far2l без лишнего вывода.
-
-
Сохранение/исключение команд из сохранения в истории:
- в far2l история работает как bash
$HISTCONTROL
с опциямиignoredups
(не сохранять дубликаты подряд) иerasedups
(вообще удалять дубликаты из истории); - для работы как
ignorespace
(начинающееся с пробела не попадает в историю) допишите;" *"
в F9⇒Параметры⇒Настройки автозавершения (источник)
- в far2l история работает как bash
-
Пометка символом типов файлов, каталогов, симлинков,... по аналогии с
mc
иls -F
-
настраивается через F9⇒Параметры⇒Раскраска файлов и группы сортировки⇒Опциональный символ пометки
-
начиная с сборки
2.6.3-2024-10-05-f9a1d3b8
является дефолтной раскраской по умолчанию- для существующих профилей нужно убить вашу текущую раскраску F9⇒Options⇒Files highlighting and sort groups / F9⇒Параметры⇒Раскраска файлов и группы сортировки и нажать Ctrl+R (кому её жалко сохраните предварительно
~/.config/far2l/settings/colors.ini
) - быстрое глобальное переключение отображения маркеров на панелях через Ctrl+Alt+M или диалог F9->Panel settings
расшифровка символов по аналогии с man mc [нажмите, чтобы развернуть/скрыть]
``` ! for broken * for executable files (with X mode) / for directories ~ for symbolic links to directories @ for links = for sockets - for character devices + for block devices | for pipes ```
- для существующих профилей нужно убить вашу текущую раскраску F9⇒Options⇒Files highlighting and sort groups / F9⇒Параметры⇒Раскраска файлов и группы сортировки и нажать Ctrl+R (кому её жалко сохраните предварительно
-
пример самостоятельной настройки на скриншоте (именно в такой последовательности) [нажмите, чтобы развернуть/скрыть]
Если вы хотите, чтобы исполняемые файлы подсвечивались по расширению, то для записи с маркером
*
включите[x] Continue processing
-
-
Использование регулярных выражений (PCRE) в группах файловых масок (доступны везде, где маски, в том числе и поиске имен файлов по Alt-F7): начиная с #1395 в группах файловых масок корректно работают регулярные выражения. Пример использования регистронезависимого расширения для картинок:
Синтаксис регулярных выражений почти полностью совпадает с перловыми регэкспами, подробнее см. в разделе помощи Регулярные выражения для поиска и Regular expressions.
-
Ввод и поиск специальных символов (конец строки и т.п.)
-
В любых полях ввода и редакторе после Ctrl-Q нажимаемая комбинация клавиш обрабатывается в строке как символ, например,
-
Ctrl-Q, Enter введет разрыв строки и отобразится как
♪
-
Ctrl-Q, Esc отобразится как
←
и т.п.
Это удобно при вводе в диалоговых окнах, в частности в полях поиска.
-
Ctrl-Q, Enter введет разрыв строки и отобразится как
-
Например, при поиске по файлам через Alt-F7 поиск с текстом пробел, Ctrl-Q, Enter введёт
♪
и найдёт файлы, содержащие концы строк с пробелами. -
Внутри редактора текста стандартный поиск/замена по F7/Ctrl-F7 ищет только внутри каждой строки, соответственно для поиска текста около начала/конца строк использовать регулярные выражения (включается галочкой), например по шаблону
/\s$/
— пробелы в концах строк,/^\s/
— пробелы в начале строк и т.п. -
В поле замены для замены внутри редактора найденного по строкам фрагмента на многострочный текст помогает в нужных местах ввести разрыв строк через последовательность Ctrl-Q, Enter.
В far2m поиск/замену на нескольких строках умеет lua-плагин LF Search.
-
-
Разные макросы и кастомизации (клавиатурные макросы дописывать в файл
~/.config/far2l/settings/key_macros.ini
, затем закрыть и открыть far2l):-
костыль по вызову внешних программ сравнения выбранных на панелях файлов (спасибо bigvax): https://github.com/elfmz/far2l/issues/1042#issuecomment-983533025
-
костыль подсветки как выполняемых только с атрибутом X (по умолчанию также по списку расширений): https://github.com/elfmz/far2l/issues/1377#issuecomment-1304708792
-
альтернативный режим панели файлов (спасибо bigvax): https://github.com/elfmz/far2l/discussions/1300
-
Lynx style motion и разные макросы от bigvax: https://github.com/elfmz/far2l/discussions/1146
-
макросы для работы с выделением и для навигации по папкам от michel-nk: https://github.com/elfmz/far2l/discussions/2266
-
клавиатурные макросы для урезанных клавиатур (без Grey NumPad и, например, в MacBookPro 13" клавиатура не имеет Ins и т.п.)
-
https://github.com/corporateshark/far2l-macros/issues/6
-
макросы аналогично клавишам Grey NumPad +, - и * (Ctrl+= как аналог Grey+, Ctrl+- как аналог Grey- и Ctrl+Shift+8 как аналог Grey*):
[KeyMacros/Shell/Ctrl=] Description=Select group DisableOutput=0x1 Sequence=Add [KeyMacros/Shell/Ctrl-] Description=Deselect group DisableOutput=0x1 Sequence=Subtract [KeyMacros/Shell/CtrlShift8] Description=Invert selection DisableOutput=0x1 Sequence=Multiply
-
в качестве Ins использовать пробел (только на панелях)
[KeyMacros/Shell/Space] DisableOutput=0x1 EmptyCommandLine=0x1 NoSendKeysToPlugins=0x1 Sequence=Num0
-
в качестве Ins использовать Ctrl-Shift-T (везде, в том числе и в меню по F2)
[KeyMacros/Common/CtrlShiftT] DisableOutput=0x1 Sequence=Ins
-
альтернатива F1...F10 в виде Alt+1...Alt+0 (на практике может быть удобнее для клавиатур, где ряд функциональных клавиш доступен только через Fn), в чистом терминале также соответствует последовательному нажатию Esc,цифра как традиционно в mc (подробности и обсуждение https://github.com/elfmz/far2l/issues/2317#issuecomment-2256927220):
[KeyMacros/Common/Alt1] Sequence=F1 Description=Alt+1 as alternative to F1 [KeyMacros/Common/Alt2] Sequence=F2 Description=Alt+2 as alternative to F2 [KeyMacros/Common/Alt3] Sequence=F3 Description=Alt+3 as alternative to F3 [KeyMacros/Common/Alt4] Sequence=F4 Description=Alt+4 as alternative to F4 [KeyMacros/Common/Alt5] Sequence=F5 Description=Alt+5 as alternative to F5 [KeyMacros/Common/Alt6] Sequence=F6 Description=Alt+6 as alternative to F6 [KeyMacros/Common/Alt7] Sequence=F7 Description=Alt+7 as alternative to F7 [KeyMacros/Common/Alt8] Sequence=F8 Description=Alt+8 as alternative to F8 [KeyMacros/Common/Alt9] Sequence=F9 Description=Alt+9 as alternative to F9 [KeyMacros/Common/Alt0] Sequence=F10 Description=Alt+0 as alternative to F10
-
-
переход на неактивной панели не только в тот же каталог, но и позиционирование курсора на тот же файл, что и в исходной панели (в примере навешено на Alt-])
[KeyMacros/Shell/Alt]] DisableOutput=0x1 Sequence=Tab Ctrl\ CtrlPgUp - Tab $If (((APanel.Bof && APanel.Root) || ! APanel.Bof) && PPanel.Visible) Panel.SetPath(1,PPanel.Path,APanel.Current) $Else $End
-
пример вызова плагина по имени (к сожалению GUID плагина добавлены только с far3)
[KeyMacros/Shell/AltC] DisableOutput=0x1 Sequence=F11 $If (Menu.Select("Advanced compare",3) || Menu.Select("Расширенное сравнение",3)) Enter $Else Esc MsgBox("Warning","Advanced compare plugin is not installed!",1) $End
-
поиск в панелях аналогично MC по нажатию Ctrl-S
[KeyMacros/Shell/CtrlS] DisableOutput=0x1 Sequence=Alt0 BS
-
-
Быстрый переход к точке монтирования файловой системы текущего каталога по Ctrl-Alt-\ (начиная с сборки 26.10.2024, для более старых версий можно использовать макрос из https://github.com/elfmz/far2l/issues/2010#issuecomment-1975182538 )
-
Особенности обработки символьных ссылок:
-
Системные параметры
⇒[x] Сканировать символические ссылки
-
System settings
⇒[x] Scan symbolic links
- Объяснение: https://github.com/elfmz/far2l/issues/165#issuecomment-255555031
-
-
Изменение шрифта far2l-GUI:
- F9⇒Параметры⇒Настройки интерфейса⇒Выбрать шрифт (F9⇒Options⇒Interface settings⇒Change font)
- Шрифт ttf 10x18 "FAR как в консоли windows": https://github.com/elfmz/far2l/issues/886
(подробнее см. в far2l по F1 в помощи)
Везде:
* Ctrl-Alt-Shift — Временно убрать обе панели / текущий диалог и т.п.
(работает до тех пор, пока удерживаем эти клавиши)
* Alt-F9 или Alt-Enter — окно во весь экран (не все терминалы поддерживают)
* Alt-Ins — скопировать кусок экрана в буфер обмена:
Alt-Ins ⇒ [стрелки/Home/End/PgUp/PgDown] — переместится к нужной позиции
⇒ Shift-[стрелки/Home/End/PgUp/PgDown] (или мышью) — выделение куска экрана
⇒ Enter или Ctrl-Ins — копирование выделенного в буфер обмена
* F1 — помощь
* F11 — список и запуск доступных плагинов (свой различный список для панелей/просмоторщика/редактора)
* F12 — список и переключением между открытыми внутри far2l окна/экранами
(панели, файлы в редакторе/просмотрощике)
* Ctrl-Tab и Ctrl-Shift-Tab — переключением между окнами/экранами в прямом и обратном порядке
[окно терминала по Ctrl-O не считается отдельным экраном, а идёт как панели,
однако, открытое в нём по F3 или F4 есть отдельный экран временной копии терминала]
Внутри помощи:
* Alt-F1 или BS — переход на предыдущую страницу
* Shift-F2 — переход к темам помощи по внешним модулям (plugins)
* Shift-F1 — содержание помощи
* F7 — поиск по помощи (отображает разделы справки, содержащие искомый фрагмент текста)
В зависимости от текущей страницы Shift-F1 и F7 работают
либо с помощью основного far, либо выбранного плагина
На панелях:
* Enter — Запуск (в консоли far), смена каталога, вход в архив
* Shift-Enter — Запуск в отдельном окне, открытие каталога средствами оболочки
* Ins или Shift-Down — пометить/снять пометку файла и сдвинуться вниз
* Shift-Up — пометить/снять пометку файла и сдвинуться вверх
* Ctrl-\ — Сменить каталог на корневой
* Ctrl-` — Сменить каталог на домашний (~)
* Ctrl-PgDn — Смена каталога, вход в архив
* Ctrl-Shift-PgDn — аналогично Ctrl-PgDn + для symlink переход к расположению оригинального файла
* Ctrl-PgUp — Перейти в каталог уровнем выше (из корня в меню точек монтирования / файловых плагинов)
* Ctrl-Shift-PgUp — если ранее был переход по Ctrl-Shift-PgDn на symlink, то возврат к symlink
* Ctrl-J, Ctrl-Enter — Вставить имя файла из активной панели (с экранированием)
* Ctrl-Shift-Enter — Вставить имя файла из пассивной панели (с экранированием)
* Ctrl-[ и Ctrl-] — Вставить полный путь к текущему каталогу из левой или правой панели (с экранированием)
[действуют также в редакторе и диалоговых окнах без экранирования]
* Ctrl-F — Вставить полное имя файла из активной панели (с экранированием)
* Ctrl-; — Вставить полное имя файла из пассивной панели (с экранированием)
* Ctrl-Ins — Копирование имени файла из активной панели в буфер обмена (без экранирования)
* Ctrl-Alt-Ins — Копирование полного пути из активной панели в буфер обмена (без экранирования)
* Ctrl-E — Предыдущая команда (в командной строке)
* Ctrl-X — Следующая команда (в командной строке)
* Ctrl-Y — Очистить командную строку
* Alt-F8 — Показать историю команд
* Alt-F11 — Показать историю просмотра и редактирования
* Alt-F12 — Показать историю папок
* Ctrl-Up, Ctrl-Down — Изменить высоту панелей
— История в строках редактирования диалогов
* Ctrl-Shift-Up, Ctrl-Shift-Down — Изменить высоту текущей панели
* Ctrl-Left, Ctrl-Right — Изменить ширину (при пустой командной строке)
* Alt-Left, Alt-Right, Alt-Home, Alt-End — Прокрутка длинных имён и описаний
* Alt-буква — быстрый переход на панели к каталогу/файлу по имени понимает подстановочные * и ?,
дальнейший перескок к удовлетворяющим критерию по Ctrl-[Shift]-Enter
В истории (команд, папок, просмотра/редактирования файлов),
пользовательском меню, меню выбора точек монтирования и т.п.
* Ctrl-Alt-F — переключение в режим быстрой фильтрации,
т.е. показывать только пункты, содержащие вводимый текст
* Ctrl-F10 — Позиционировать на активной панели в каталог и, по возможности, на файл текущего пункта истории
* Ctrl-T — Переключение вида истории:
- с строками дат + колонка времени
- с строками дат (как в far3)
- просто история (как в far2)
В встроенном терминале (после скрытия обоих панелей по Ctrl-O):
* Tab — Автодополнение (на основе FAR2L)
* Shift-Tab-Tab — Автодополнение (на основе bash)
* F3 или Ctrl+Shift+F3 или Ctrl+Shift+MouseScrollUp — Терминал->Просмотр
(вся история терминала в Просмотр — удобно для пролистывания длинного вывода)
* F4 или Ctrl+Shift+F4 — Терминал->Редактор
(вся история вывода терминала в Редактор)
[в просмоторщик/редактор идёт временная копия терминала на момент нажатия F3 или F4
и может не включать дальнейшие изменения в терминале]
* F8 — Очистка истории терминала и экрана
* выделение мышью — сразу выделить и в буфер обмена
(внимание! в отличии от Alt-Ins не требует дальнейших действий,
а сразу при отпускании мыши закидывает в буфер обмена выделенный фрагмент
⇒ может быть нежданное затирание данных в буфере обмена)
В редакторе:
* Ctrl-Up или Ctrl-Down — Прокрутка экрана вверх / вниз
(текст в редакторе должен быть длиннее высоты экрана)
* Ctrl-Left и Ctrl-Right — Перескок по словам влево/вправо
* Ctrl-Shift-Left и Ctrl-Shift-Right — Пометка по словам влево/вправо
* Alt+[стрелки/Home/End/PgUp/PgDown] — Пометка вертикального блока
* Alt+Shift+[стрелки/Home/End/PgUp/PgDown] — Пометка вертикального блока
(Shift нужен, если используется NumLock клавиатура)
* Alt-BS, Ctrl-Z — Undo
* Ctrl-Shift-Z — Redo
* Ctrl-L — Запретить модификацию редактируемого текста (полезно для просмотра с подсветкой синтаксиса)
* F7 — Поиск
* Shift-F7 — Продолжить поиск
* Alt-F7 — Продолжить поиск в обратном направлении
* Ctrl-Shift-B — Show/Hide status line
* Shift-F2 — Сохранить файл как (с возможностью изменить кодировку, BOM, символы перевода строк и т.п.)
* F5 — вкл/выкл отображения пробельных символов (пробелы, табуляции).
* Ctrl-F5 — смена для вновь вводимых TAB режима ввода:
либо остаются TAB, либо меняются на заданное число пробелов
(настраиваются через Shift-F5 или F9/Alt-Shift-F9 или на основе файлов .editorconfig)
* Ctrl-F — Вставить полное имя редактируемого файла (без экранирования)
* Ctrl-[ и Ctrl-] — Вставить полный путь к текущему каталогу из левой или правой панели (без экранирования)
* Ctrl-F10 — Позиционировать на активной панели в каталог и текущий редактируемый файл (без выхода из редактора)
-
Все выкладываемые в настоящий момент на https://github.com/spvkgn/far2l-portable/releases и https://github.com/spvkgn/far2m-portable/releases сборки собраны на основе TTY|Xi под соответствующую платформу (aarch64, amd64, i386). В сборках опции «одиночное нажатие ESC», «поддержка OSC 52» и «автосохранение настроек» включены по умолчанию.
-
Portable-сборка является файлом с именем
far2l_<что-то-там>.run
, который при запуске разворачивается в/tmp
и затем стартует корректно увязывая относительные пути ко всем интегрированным в архив библиотекам- брать
<что-то-там>
соответствующий выводу в вашей системе командыuname -m
, т.е.far2l_$(uname -m).run.tar
. Например,far2l_x86_64.run.tar
- для запуска либо должны быть выставлены права на выполнение файла
chmod +x far2l_<что-то-там>.run
или пускать явно черезsh ./far2l_<что-то-там>.run
; -
/tmp
также должен быть смонтирован в систему с правами выполнения файлов на нём; -
./far2l_<что-то-там>.run --target ./far2l
— запуск с распаковкой в директориюfar2l
вместо/tmp
; -
./far2l_<что-то-там>.run --help
— список ключей запуска распаковщика.
- брать
-
Запуск портабельной версии с параметрами: надо с двойным указанием первого параметра, то есть
far2l_<что-то-там>.run -- --nodetect=xi -cd /
(первый пустой параметр--
, относится к самому архиву, а затем уже указываются последующие ключи, передающиеся внутрь в far2l). -
По умолчанию хранит настройки где и обычная в
~/.config/far2l
, но можно при запуске в командной строке задать, например,./far2l_<что-то-там>.run -- -u $(pwd)/far2l_profile
будет сохранять все настройки в папку far2l_profile внутри текущей. -
Если Вы скопировали развернутую портабельную версию, то в этом случае
- запускать распакованный
./far2l
ОБЯЗАТЕЛЬНО только, когда ТЕКУЩИМ КАТАЛОГОМ является каталог с./far2l
(иначе не сработают относительные пути); - обходной путь — запускать через far2l.sh
#!/bin/bash pushd "$(pwd)" cd "$(dirname "$0")" chmod +x lib/ld-linux* chmod +x far2l chmod +x far2l_sudoapp chmod +x far2l_askpass find . -type f -iname "*far-plug*" -exec chmod +x {} \; find . -type f -iname "*.broker" -exec chmod +x {} \; ./far2l popd
Portable версия тащит в себе собственный загрузчик, возможно отличный от системного (потому что к нему привязана собственная версия Си-библиотеки
libc
, а к ней — все остальные используемые portable-версией библиотеки), а указать путь к кастомному загрузчику в бинарнике можно только относительно текущей папки. - запускать распакованный