Intereting Posts
Как определить приоритеты маршрутов нескольких интерфейсов VMWare Workstation Общие папки на ядре Arch / Linux 4.x все еще не работают? gnu parallel: цитируемые аргументы и пробелы в именах файлов. Как решить? vim, как запретить Запуск VPN через Debian в маршрутизатор Условный awk через 4 столбца Как обновить настройки пользователя / группы запущенного процесса? Команда Logger – как хранить журналы в заданном файле? Есть ли способ кэшировать последний IP-адрес, назначенный на DHCP-клиентах, и использовать его, если DHCP-сервер не работает? ошибка монтирования (13): разрешение отклонено Perl – / etc / shadow – Отказано в доступе Подключение к двум интернет-провайдерам в локальной сети с использованием двух разных сетей Плазма KDE сломалась после обновления Как отрезать сегмент или несколько сегментов из одной строки? Как вставить одну и ту же информацию в 2 разных файла?

Что вызывает это поведение при определении функции с именем ':'

Если я создам следующую функцию

function :() { echo "hi" } 

то в любое время, когда я набираю какой-либо символ, функция выполняется, как только я набираю ее, и до того, как я нажму!

Это как-то вызвано чем-то в моем .zshrc , так как это не происходит, если я запускаю Z-оболочку с zsh -f , и это не происходит в Bash.

Как я могу понять, что вызывает это странное поведение?

Встроенный : ничего не делает (это не-op ). Он используется во многих местах в коде завершения zsh, среди прочих. Его вполне можно использовать в некотором коде, связанном с привязкой клавиш. Если вы переопределите его функцией, ожидайте, что ваша функция будет вызвана много.

Переопределение стандартных имен команд с чем-то совершенно другим – плохая идея. Но если вы действительно хотите определить свой собственный : сделайте его псевдонимом (для функции с более длинным явным именем). Таким образом, это не повлияет на функции автозагрузки (кроме функций, автоматически загружаемых автоматически с autoload без опции -U ), поэтому всякий раз, когда вы используете autoload , pass -U ), включая код завершения.