Zsh. Навигация и редактирование

Средства навигации по командной строке и ее автоматического редактирования -- необходимое условие комфорта в интерактивной работе внутри оболочки. Здесь говорить, казалось бы, не о чем -- управляющие клавишные последовательности для таких действий давно уже вошли в обиход всех командных оболочек, претендующих на развитость. Однако и в этой области zsh есть чем похвастаться -- в нем задействованы все комбинации клавиш для перемещения и удаления (как посимвольного, так и командными "словами" и фрагментами строки), которые существуют в bash и tcsh.

Управляющие последовательности в zsh построены по принципу сочетания клавиши Control+литера или Meta+литера, причём вторая комбинация, как обычно, выступает в качестве "усиленного" варианта первой. Так, если Control+D удаляет символ в позиции курсора, то сочетание Meta+D проделывает это для всех символов от позиции курсора до конца командного слова.

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

Действие большинства простых (двухклавишных) последовательностей дублируется "сложными", вида Meta+литера-Control+литера, которые прекрасно работают и при переключении на кириллическую раскладку клавиатуры.

Легко заметить, что управляющие последовательности в zsh по умолчанию реализованы с стиле Emacs. Однако это -- лишь один из возможных режимов: при желании ничего не стоит переключить навигацию и управление в режим vi, если таковой кажется более привычным для пользователя.

. .