Модули Zsh

Часть возможностей Zsh оформлена в виде модулей, отделенных от основной части командного процессора. Каждый из этих модулей может быть подключен к командному процессору во время сборки, или может быть загружен динамически во время запуска.

Загрузка модулей производится с помощью команды zmodload. Например, для загрузки модуля редактирования командной строки zle будет использоваться команда

    zmodload zsh/zle

Модуль редактирования командной строки (zsh/zle)

Данный модуль предоставляет пользователю возможность редактирования командной строки. Редактирование может осуществляться в одном из двух режимов  — многострочном, если терминал поддерживает перемещение между строками и однострочном, если терминал не поддерживает перемещения между строками или установлена опция SINGLE_LINE_ZLE.

Привязки клавиш

Модуль редактирования поддерживает концепцию таблиц привязки клавиш (keymaps). В любой момент времени может существовать любое количество таблиц привязки. По умолчанию в Zsh определены 4 таблицы привязки клавиш, которые эмулируют команды Emacs, редактора vi в режиме вставки, редактора vi в режиме команд, а также специальный режим safe, которые не определяет никаких привязок, кроме вставки символов соответствующих клавишам.

Встроенные команды zle

Модуль zle предоставляет пользователю некоторое количество встроенных команд. Сюда относятся команды привязки клавиш   — bindkey, которая позволяет определять и переопределять сочетания клавиш; команды управления виджетами zle  — создания, удаления, выдачи списка и другие.

Виджеты zle

Все действия в модуле редактирования выполняются через виджеты. Задачей виджета является выполнение какой-то простой операции. Все клавиши привязываются к какому-то из виджетов. Виджеты могут быть встроенные или определенные пользователем.

Встроенные виджеты выполняют такие операции, как модификация текста, контроль истории, операции перемещения, работу с аргументами, контроль дополнений и другие. Поведение этих виджетов можно контролировать с помощью команд zle и zstyle.

Виджеты, определяемые пользователем, являются функциями командного процессора, которые могут выполнять любые команды. Кроме того, они могут запускать другие виджеты используя встроенные команды zle. Определяемые функции могут получать доступ к результатам выполнения команд, не создавая трудностей для пользователя.

Модуль zsh/zftp

Данный модуль позволяет пользователю выполнять команды ftp в командной строке или внутри скриптов. Интерфейс похож на тот, который используется в традиционном клиенте ftp, но при этом используются все возможности Zsh  — дополнения, глоббинг и редактирование. Загрузка данного модуля предоставляет пользователю одну встроенную команду  — zftp, с помощью которой и выполняются все операции.

Загрузка модуля выполняется с помощью команд:

      autoload -U zfinit
      zfinit     

Встроенная команда zftp обеспечивает выполнение всех команд. Синтаксис команды выглядит следующим образом:

      zftp подкоманда [аргументы]      

Подкомандами являются обычные команды ftp  — open, cd, get, put, bin и другие. Кроме того, модуль предоставляет другие команды, которые являются алиасами для команд «zftp подкоманда», такие как zfopen, zfget, zfcd и другие.

Другие модули Zsh

Кроме вышеперечисленных модулей, в поставку Zsh входят модули работы со списками привилегий POSIX.1e (модуль zsh/cap), работы с математическими функциями (модуль zsh/mathfunc), модуль использования некоторых стандартных команд (chown, chgrp, ln, rm и других) как встроенных (модуль zsh/files) и другие модули. Для получения их полного списка и описания работы с ними смотрите документацию из поставки Zsh.