Метасимволы

Far Manager


Метасимволы

В ассоциированных командах, пользовательском меню и команде Применить команду могут использоваться специальные метасимволы:

!!Символ '!'.
!Длинное имя файла без расширения.
!~Короткое имя файла без расширения.
!`Длинное расширение файла без имени (ext).
!`~Короткое расширение файла без имени (ext).
!.!Длинное имя файла с расширением.
!-!Короткое имя файла с расширением.
!+!Аналогично !-!, но если длинное имя файла утеряно после выполнения команды, Far восстановит его.
!@!Имя файла, содержащего имена помеченных файлов.
!$!Имя файла, содержащего короткие имена помеченных файлов.
!&Список помеченных файлов.
!&~Список помеченных файлов с короткими именами.
!:Текущий диск в формате "C:".
Для сетевых каталогов - "\server\share".
!\Текущий путь.
!/Короткое имя текущего пути.
!=\Текущий путь с учётом символических ссылок.
!=/Короткое имя текущего пути с учётом символических ссылок.
!?<title>?<init>!При выполнении команды этот символ заменяется данными, введёнными пользователем. <title> и <init> - заголовок и исходный текст строки редактирования.

Допускается использование нескольких таких символов в одной строке, например:

grep !?Search for:?! !?In:?*.*!|c:\far\Far.exe -v -

В <title> можно указать имя истории для строки <init>.
В этом случае команда имеет следующий формат:

!?$<history>$<title>?<init>!

например:
grep !?$GrepHist$Search for:?! !?In:?*.*!|Far.exe -v -

Для отключения истории оставьте имя пустым.

В <title> и <init> допускается использование прочих метасимволов, заключив их в круглые операторные скобки, например:

grep !?В (!.!) найти:?! |Far.exe -v -
!#Префикс !#, указанный перед символом ассоциации файла, заставляет его (и все последующие) ссылаться на пассивную панель (см. примечание 4).

Например, !#!.! обозначает имя текущего файла на пассивной панели.
!^Префикс !^, указанный перед символом ассоциации файла, заставляет его (и все последующие) ссылаться на активную панель (см. примечание 4).

Например, !^!.! обозначает имя текущего файла на активной панели, а конструкция !#!\!^!.! - файл на пассивной панели с таким же именем, как имя текущего файла на активной панели.

Примечания

  1. Far при обработке метасимволов подставляется только то, что они означают (имя файла, расширение и т.д.). Никаких дополнительных символов (например, кавычек или фамилий разработчиков Far) не подставляется и вы должны это сделать сами, если потребуется. Например, если используемая в ассоциациях программа требует, чтобы имя файла было в кавычках, то вы должны писать program.exe "!.!", а не program.exe !.!.

  2. Для ассоциаций !@! и !$! допускаются следующие модификаторы:

    Q - заключать имена с пробелами в кавычки
    S - использовать '/' вместо '\' в путях файлов
    F - использовать полный путь
    A - использовать кодовую страницу ANSI
    U - использовать кодовую страницу UTF-8
    W - использовать кодовую страницу UTF-16 (Little endian).

    Например, ассоциация !@AFQ! - имя файла, содержащего имена помеченных файлов с полным путём в кодовой странице ANSI; имена файлов, содержащие пробелы будут заключены в кавычки.

  3. Метасимволы !@! и !$! в меню выбора (когда задано несколько ассоциаций) показываются как есть, преобразование происходит в момент исполнения команды.

  4. Префиксы !# и !^ работают как переключатели для ассоциаций. Действие этих префиксов распространяется до следующего подобного префикса.

    Например, команда:

    if exist !#!\!^!.! diff -c -p !#!\!^!.! !\!.!

    обозначает "Если на пассивной панели существует такой же файл, как и на активной под курсором, то показать расхождения между файлом на пассивной панели и файлом на активной панели, независимо от имени текущего файла на пассивной панели"

  5. Если нужно передать программе имя с завершающей обратной чертой, используйте кавычки - "!"\.

    Например, распаковать rar-архив в папку с таким же именем:

    winrar x "!.!" "!"\


Far Manager © 1996—2000 Eugene Roshal, © 2000—2015 Far Group