Кавычки (QuoteSpace)

Здесь можно сообщить о найденных багах в Far.
User avatar
DrKnS
Posts: 5342
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Кавычки (QuoteSpace)

Post by DrKnS » Wed 11 Sep, 2019 13:42

Latest post of the previous page:

HaRT wrote:
Wed 11 Sep, 2019 13:29
Я готов даже букву предложить и Справку написать.
"I'm gonna make him an offer he can't refuse" :)

User avatar
HaRT
Moderator
Posts: 8840
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 86 times
Been thanked: 151 times

Кавычки (QuoteSpace)

Post by HaRT » Wed 11 Sep, 2019 14:14

HaRT wrote:
Wed 11 Sep, 2019 13:29
готов даже букву предложить
Похоже, насчёт буквы я несколько погорячился. Использование популярного в именах файлов символа (особенно алфавитно-цифрового) неизбежно будет мешать составлению путей с !\. Поэтому лучше выбрать из символов, запрещённых в именах файлов. Предлагаю < — кому нужно перенаправление <filename сразу после !\, тем не помешает и пробел: exe !\ < filename. А запоминать так: < — это как бы обозначение «забоя», стирания символа \ слева.
@DrKnS, если нет возражений, то Справку допишу позже сегодня.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Smitis
Posts: 1584
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 18 times
Been thanked: 35 times

Кавычки (QuoteSpace)

Post by Smitis » Wed 11 Sep, 2019 14:38

DrKnS wrote:
Wed 11 Sep, 2019 13:08
не будет добавлять слеш, но только если сразу после него идёт пробел или конец строки (с кавычками или без)?
Можно и так, я бы только добавил, если после него не идёт другой метасимвол, например !\!.!
Или отдельный метасимвол, который действует также, как сейчас, но без слеша. Например, !,\ и !,/ (запятая взята для примера, вроде она ещё не задействована в метасимволах) или !<\ и !</
На счёт модификатора-буквы согласен с HaRT.
Разум когда-нибудь победит.

User avatar
John Doe
Бюрократ
Posts: 12325
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 168 times

Кавычки (QuoteSpace)

Post by John Doe » Wed 11 Sep, 2019 14:55

Не надо новых закорючек.

Smitis
Posts: 1584
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 18 times
Been thanked: 35 times

Кавычки (QuoteSpace)

Post by Smitis » Wed 11 Sep, 2019 14:57

John Doe wrote:
Wed 11 Sep, 2019 14:55
Не надо новых закорючек.
Иначе никак
Разум когда-нибудь победит.

User avatar
John Doe
Бюрократ
Posts: 12325
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 168 times

Кавычки (QuoteSpace)

Post by John Doe » Wed 11 Sep, 2019 15:17

Можно примеры, когда никак?
(При том я ключевое слово 'закорючек')

Smitis
Posts: 1584
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 18 times
Been thanked: 35 times

Кавычки (QuoteSpace)

Post by Smitis » Wed 11 Sep, 2019 15:25

Уточняющий вопрос - под закорючками Вы понимаете добавление новых метасимволов?
Разум когда-нибудь победит.

User avatar
John Doe
Бюрократ
Posts: 12325
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 168 times

Кавычки (QuoteSpace)

Post by John Doe » Wed 11 Sep, 2019 15:37

Если тут был бы применим способ с (привычными) модификаторами, я бы и не встревал.
В данном случае закорючку (но привычную) предложили дополнить ещё одной (но уже вовсе непонятной).

Поэтому хотелось бы обойтись без добавлений совсем (учитывая предложение DrKnS).

И если действительно не получится, то подумать над другим решением (добавить можно и не закорючку, а что-то более понятное)

Smitis
Posts: 1584
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 18 times
Been thanked: 35 times

Кавычки (QuoteSpace)

Post by Smitis » Wed 11 Sep, 2019 17:56

John Doe wrote:
Wed 11 Sep, 2019 15:37
И если действительно не получится, то подумать над другим решением
У меня deja vu. Похоже, что-то такое уже обсуждали. Я бы предложил вообще тогда заморозить метасимволы, ничего больше не менять, в том числе поведение, добавив всего один метасимвол в виде, скажем, !{шаблон}, а в шаблоне уже более естественным образом описывать, что нужно.
Например, !{F} (от full) == !{DPNX} (диск+путь+имя+расширение) == !{d:\p\n.x} (то же, но диск без двоеточия и пр.). Вот такие закорючки были бы намного понятнее.

П.С.
На счёт пути без конечного "\" - всё равно остаётся корень диска, где путь "\" поэтому всё равно путь будет оканчиваться на этот единственный "\"
Last edited by Smitis on Wed 11 Sep, 2019 18:10, edited 1 time in total.
Разум когда-нибудь победит.

makhaon
Posts: 10
Joined: Mon 09 Sep, 2019 11:31
Has thanked: 2 times

Кавычки (QuoteSpace)

Post by makhaon » Sun 15 Sep, 2019 00:12

buniak_a_h wrote:
Wed 11 Sep, 2019 05:31
Как выяснилось, cmd понимает конструкцию вида "C:\Program Files\Far Manager"\far.exe несмотря на то, что путь продолжается после закрывающей кавычки. И даже пути вида "C:\Program Files\Far Manager"\"Far x64.exe"! Поэтому дискуссия становится какой-то беспредметной.
cmd - может и так. однако многие и я в том числе запускают команды с помощью win+r. оба ваши варианта там не работоспособны
Last edited by makhaon on Sun 15 Sep, 2019 00:13, edited 1 time in total.

makhaon
Posts: 10
Joined: Mon 09 Sep, 2019 11:31
Has thanked: 2 times

Кавычки (QuoteSpace)

Post by makhaon » Sun 15 Sep, 2019 00:25

Вообще. Очень много месте, где вариант "C:\Program Files\Far Manager"\ не работает:
win+r,
вставка в Open/SaveDialog windows,
вставка в браузер папок,
недавно winmerge не принимал такие пути (сейчас они к счастью тупо фильтруют пути от кавычек, стало сильно удобнее)
любое действие с шеллом винды как я понимаю не принимает такой вариант. cmd.exe разве что не так привередлив.

buniak_a_h
Posts: 750
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 72 times
Been thanked: 20 times
Contact:

Кавычки (QuoteSpace)

Post by buniak_a_h » Sun 15 Sep, 2019 01:09

makhaon wrote:
Sun 15 Sep, 2019 00:25
вставка в Open/SaveDialog
Я, в принципе, согласен, что слэш после кавычек смотрелся странно. Но в этих диалогах и просто кавычки тоже не принимаются. Так что отказ от слэша ситуации не исправляет. Просто надо было делать разные хоткеи для разных вариантов . И такое есть (давно): Alt+Shift+Ins помещает путь в буфер вообще без кавычек, что для вставки Open/Save диалоги подходит идеально. А чтоб не менять привычки всегда можно сделать макрос.
Кстати, не только cmd "терпит" такое написание. Наиболее частое использование у меня - это fc, dbcomp (моя программа, написанная на Харборе) и ExamDiff - все они принимают параметры вида "C:\Users\PC\AppData\Local\Temp\19 09 15\2"\File.Ext, причём в моей программе я специально не обрабатывал кавычки от слова вообще!
Впрочем, это всё беллетристика. Слэш убрали, кавычки оставили. Теперь для слепления пути с именем файла надо нажимать слэш самому - не проблема, если б не привычка. Уже пару раз потерял файл (хотел перенести File.Ext в Dir, а в результате переименовал в DirFile.Ext). А для вставки в ОпенДиалог всё равно ничего не изменилось...

makhaon
Posts: 10
Joined: Mon 09 Sep, 2019 11:31
Has thanked: 2 times

Кавычки (QuoteSpace)

Post by makhaon » Sun 15 Sep, 2019 17:06

buniak_a_h wrote:
Sun 15 Sep, 2019 01:09
Но в этих диалогах и просто кавычки тоже не принимаются
Это не так :) Вот сейчас попробовал в браузере Crlt+O - "C:\Program Files (x86)\Far Manager" зашло без вопросов.
buniak_a_h wrote:
Sun 15 Sep, 2019 01:09
Теперь для слепления пути с именем файла надо нажимать слэш самому
Ctrl+F в помощь :) Вставляет сразу путь + файл
К слову говоря - можно было бы сделать простую эвристику - если сразу за путем в строку вставляют файл, то добавлять его внутри кавычек. Не думаю, что это такой уж космос по сравнению со всем написанным.
Last edited by makhaon on Sun 15 Sep, 2019 17:16, edited 4 times in total.

buniak_a_h
Posts: 750
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 72 times
Been thanked: 20 times
Contact:

Кавычки (QuoteSpace)

Post by buniak_a_h » Sun 15 Sep, 2019 18:09

makhaon wrote:
Sun 15 Sep, 2019 17:06
buniak_a_h wrote:
Sun 15 Sep, 2019 01:09
Но в этих диалогах и просто кавычки тоже не принимаются
Это не так :) Вот сейчас попробовал в браузере Crlt+O - "C:\Program Files (x86)\Far Manager" зашло без вопросов.
Возможно, зависит от версии виндов.
Поясню. Раньше очень мешали и кавычки, и пробел в конце (по Ctrl+F вставляется). Ругался, но приходилось вычищать... Видимо, с тех пор что-то изменилось: и LibreOffice, и старая Delphi-7, во всяком случае, съедают.
makhaon wrote:
Sun 15 Sep, 2019 17:06
Ctrl+F в помощь Вставляет сразу путь + файл
Вы таки мне это рассказываете? :sarcastic_hand
Ситуация, когда папку надо взять с одной панели, а файл - с другой. А Ctrl+F и Вам раньше бы не помешал: там конечного слэша вне кавычек никогда не было.

Smitis
Posts: 1584
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 18 times
Been thanked: 35 times

Кавычки (QuoteSpace)

Post by Smitis » Sun 15 Sep, 2019 19:27

Как ни крути, вставлять слеш плохо, не вставлять плохо...
Разум когда-нибудь победит.

User avatar
DrKnS
Posts: 5342
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Кавычки (QuoteSpace)

Post by DrKnS » Sun 15 Sep, 2019 19:57

Ну как там, придумали, что с !\ делать - AI или новую закорючку?

Smitis
Posts: 1584
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 18 times
Been thanked: 35 times

Кавычки (QuoteSpace)

Post by Smitis » Sun 15 Sep, 2019 21:28

DrKnS wrote:
Sun 15 Sep, 2019 19:57
Ну как там, придумали, что с !\ делать - AI или новую закорючку?
Коротко напомню о проблеме:
- Пути могут содержать пробелы, поэтому их надо заключать в кавычки.
- Если путь в кавычках с \ на конце - некоторые программы воспринимают такой слеш как спецсимвол.
- Обратный слеш после кавычек воспринимается не правильно другими программами.
- Не ставить слеш совсем не получиться, так как корень диска всегда будет заканчиваться на \, а если добавлять \ в ручную к пути без слеша на конце, не все программы такой двойной слеш воспримут правильно.

Бардак, в общем, ещё со времён ДОСа.

Тут только поможет:
- Делать как я выше предложил - шаблон для путей. Тогда в критической ситуации всегда можно проверить через IF что там. (IF "!{P}"=="\")
- Делать AI, как Вы предложили.

Шаблоны универсальнее. AI, наверное, проще реализовать. Но как должен вести себя AI с корнем диска, не представляю.
Разум когда-нибудь победит.

Post Reply

Return to “Глюки и баги”