Как комментировать сразу несколько строк? [дубликат]

Это модуль Z Shell, известный как "url-quote-magic" в действии. Он пытается гарантировать, что вы в конечном итоге получите то, что планировали, даже если вы полностью проигнорировали метасимволы оболочки и цитирование. Он определяет, когда (в ZLE) слово без кавычек выглядит как URL-адрес со схемой на лицевой стороне, и изменяет способ, которым самовставка символа происходит с остальной частью слова.

Если бы операция вставки просто вводила

http://example.com/?a=c

в редактор командной строки, вы бы получили команду, которая при запуске попыталась бы выполнить расширение имени файла, а не удалось выполнить , потому что имена файлов не совпадают. Хорошо известный пример Вивека Вермы :

~$  mpv https://www.youtube.com/watch?v=HcgJRQWxKnw
zsh: no matches found: https://www.youtube.com/watch?v=HcgJRQWxKnw
~$  

Помните: Z Shell имеет много символов расширения имени файла, включая не только ? , [ , ] и * ; но также = (поиск имени команды), и > (диапазоны номеров), ~ , ^ и # . И это даже не считая механизмов совместимости с оболочкой Korn. См. Довольно подробные сведения на странице руководства zshexpn .

url-quote-magic определил, что это не слово в кавычках, распознал префикс схемы http: и изменил ? и = на \? и \ = , чтобы они не вызывали расширение имени файла.

Итак, если вы действительно не хотите, чтобы по какой-то причине, URL-адреса, которые вы вставили или набрали (без добавления каких-либо заключительных одинарных кавычек, примечание), должны были подвергаться всем расширениям имен файлов и либо не работают или (в редких случаях крайней неожиданности) дают неожиданные совпадения, вы, вероятно, должны порадоваться, что это автоматическое цитирование метасимволов оболочки в том, что вы явно считаете URL-адресами, делается за вас. ☺

89
21.03.2014, 01:41
0 ответов

Теги

Похожие вопросы