View Issue Details

IDProjectCategoryView StatusLast Update
0000920WishesCommand Line/Executepublic2018-11-03 16:03
ReporterJohnDoeAssigned To 
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionduplicate 
Product Version 
Target VersionFixed in Version 
Summary0000920: Усовершенствование метасимвола !&
DescriptionПри использовании метасимволов-списков возникает потребность в указании путей
Например - не сработает такая команда: type !#!&
(!#!& -это список файлов с пассивной панели)
(в какой-то момент починилось)

Хотелось бы иметь возможность использовать для метасимвола !& те же модификаторы, которые доступны в метасимволах !@! и !$!

    'Q' - заключать имена с пробелами в кавычки;
    'S' - использовать '/' вместо '\' в путях файлов;
    'F' - использовать полный путь;
Additional InformationОтдельно поясню про кавычки.

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

Конкретно эта проблемка с кавычками довольно специфическая, и можно на неё забить, но тогда лучше уточнить хелп:

Сказано:
--------
FAR при обработке метасимволов подставляется только то, что они означают (имя файла, расширение и т.д.). Никаких дополнительных символов (например, кавычки или фамилии разработчиков FAR) не подставляется и вы должны это сделать сами, если потребуется.
--------
Добавить:
Исключение: при использовании метасимвола !& кавычки подставляются для всех имён содержащих пробелы
TagsMetasymbols
Build0

Relationships

duplicate of 0000099 new Wishes Необходимо добавить модификаторы для макросов !& и !&~ 
has duplicate 0001585 closed Far Manager I would like a symbol in the external editor dialog that displays the full path of all selected files. 

Activities

JohnDoe

2009-06-12 13:37

updater   bugnote:0003605

Если !& относится к Временной Панели то имена получаются с полным путём, иначе - без

Raistlin

2011-01-18 18:16

reporter   bugnote:0006165

> не сработает такая команда: type !#!&
Потому что синтаксис неправильный. См. type /?

>'Q' - заключать имена с пробелами в кавычки
Они и так в кавычках. Если надо без кавычек:
for %A in (!&) do @echo %~A

> 'S' - использовать '/' вместо '\' в путях файлов
ChangeSlashAndDoSomething.cmd !&

ChangeSlashAndDoSomething.cmd:
@echo off
setlocal
for %%A in (%*) do call :ChangeSlashAndDoSomething %%~fA
exit /b
:ChangeSlashAndDoSomething
set FQName=%1
set FQName=%FQName:\=//%
echo %FQName%
exit /b

> 'F' - использовать полный путь;
for %A in (!&) do @echo %~fA

В общем, set /? и for /? рулят.

NightRoman

2011-01-18 19:31

reporter   bugnote:0006167

Если не в кассу, забудьте. Тут есть связанный тикет:
http://bugs.farmanager.com/view.php?id=1585

JohnDoe

2011-01-18 19:41

updater   bugnote:0006168

>В общем, set /? и for /? рулят.
В данном контексте это костыли.

Raistlin

2011-01-18 19:50

reporter   bugnote:0006169

> В данном контексте это костыли.
Всё зависит от точки зрения. IMHO лучше иметь несколько простых инструментов, чем один сложный. А это стандартные средства ОС, которые всегда под рукой. Если требуемый результат можно получить, причем без всяких оговорок, то зачем плодить сущности?

JohnDoe

2011-01-18 19:54

updater   bugnote:0006171

Да, метасимволов наплодилось изрядно. Служат они для гибкой передачи параметров сторонним приложениям.
И если несмотря на гибкость нужны ещё костыли, значит гибкость недостаточна.

Raistlin

2011-01-18 20:48

reporter   bugnote:0006174

Изрядно их наплодилось потому, что они, в основном, достались в наследство от Far 1.65 и, если копнуть глубже, NC. Продолжать их множить сейчас, когда появился относительно нормальный макроязык, IMHO путь неверный. Гибкость никогда достаточной не будет, если под ней понимать отсутствие необходимости в использовании дополнительных инструментов.

JohnDoe

2011-01-18 21:03

updater   bugnote:0006176

Подстановочные символы ничем не заменишь.
Я бы не смешивал макроязык и метасимволы.

Другое дело, что не стоит множить закорючки: нужны нормальные понятные человеку шаблоны (и/или модификаторы шаблонов).

Raistlin

2011-01-18 21:16

reporter   bugnote:0006178

Что из того, что можно сделать метасимволами, нельзя сделать макроязыком? Ну да, не так просто, не так быстро, не так наглядно, но джентльменский набор метасимволов уже есть, никто, я надеюсь, не собирается его отнимать. А если нужны изыски - применяем cmd.exe или макроязык.
Харатерно, что товарищ, открывший упомянутый выше тикет, кажется, даже не рассматривал возможность запуска vim'а не напрямую, а через bat-файл.

Наверное, пора уже отсюда в форум... Ибо холивар и офтоп.

JohnDoe

2011-01-18 21:29

updater   bugnote:0006181

>А если нужны изыски - применяем cmd.exe или макроязык.
Хорошо это или плохо, но в метасимволах по идее заложены все изыски.
Практика выявила отдельные недочёты, которые можно исправить.

Надо ли править "локально", или стоит пересмотреть всю (довольно перегруженную) их систему - очевидно этот вопрос выходит далеко за рамки данного тикета, я с вами согласен.

JohnDoe

2018-11-01 16:39

updater   bugnote:0016273

Закрыть, в пользу 0000099

Issue History

Date Modified Username Field Change
2009-06-08 03:10 JohnDoe New Issue
2009-06-12 13:37 JohnDoe Note Added: 0003605
2011-01-18 18:16 Raistlin Note Added: 0006165
2011-01-18 19:31 NightRoman Note Added: 0006167
2011-01-18 19:41 JohnDoe Note Added: 0006168
2011-01-18 19:50 Raistlin Note Added: 0006169
2011-01-18 19:54 JohnDoe Note Added: 0006171
2011-01-18 20:48 Raistlin Note Added: 0006174
2011-01-18 21:03 JohnDoe Note Added: 0006176
2011-01-18 21:16 Raistlin Note Added: 0006178
2011-01-18 21:29 JohnDoe Note Added: 0006181
2011-03-22 02:45 alexy Relationship added has duplicate 0001585
2013-02-03 04:34 alexy Severity minor => feature
2018-11-01 16:26 JohnDoe Tag Attached: Metasymbols
2018-11-01 16:27 JohnDoe Description Updated View Revisions
2018-11-01 16:39 JohnDoe Relationship added duplicate of 0000099
2018-11-01 16:39 JohnDoe Note Added: 0016273
2018-11-03 16:03 DrKnS Status new => closed
2018-11-03 16:03 DrKnS Resolution open => duplicate
2018-11-03 16:03 DrKnS Build => 0