Как вывести все параметры, начинающиеся с foo
:
declare -p ${(Mk)parameters:#foo*}
Все переменные хранятся в ассоциативном массиве parameters
, поэтому достаточно вывести все его ключи (k)
и поискать паттерн foo*
. Флаг (M)
присутствует для удаления несовпадающих элементов.
Output:
typeset foo_a=1
typeset foo_b=2
(обратите внимание, что declare
- то же самое, что typeset
).
Вставка не работает так, как ожидалось, из-за недавно появившейся функции под названием bracketed_paste:
zle_bracketed_paste
Многие эмуляторы терминалов имеют функцию, которая позволяет приложениям определять, когда текст вставляется в терминал. когда текст вставляется в терминал, а не набирается обычным образом. Для ZLE это означает, что специальные символы, такие как табуляция и новая строка, могут быть вместо того, чтобы вызывать команды редактора. Кроме того, вставленный текст формирует одно событие отмены, и если область активна, вставленный текст заменит регион.
Этот двухэлементный массив содержит терминальные управляющие последовательности для включения и отключения функции. Эти управляющие последовательности используются для включения вставки со скобками, когда ZLE активен, и отключения в другое время. Снятие установки приводит к тому, что вставка со скобками остается отключенной.
Просто снимите значение, если оно вам не нравится:
unset zle_bracketed_paste