Не знаю где я это впервые встретил, но мне очень нравится фича в shell’е когда можно удалить слово целиком или переместится на целое слово. Обычно это делается в виде комбинации ctrl+стрелка для перехода и ctrl+delete/ctrl+backspace для удаления слова целиком (или, вместо ctrl можно использовать alt). Однако, в Ubuntu под zsh у меня «из коробки» работает только alt+backspace. Поправим досадное недоразумение.
Смотрим какие символы выводятся в командной строке при попытке использовать желаемые комбинации. Это можно сделать открыв терминал и набрав «ctrl+v <нужная комбинация>», вывод может различаться для различных терминалов. На моей системе это выглядит так:
- ctrl + стрелка вправо — «^[[1;5C»;
- ctrl + стрелка влево — «^[[1;5D»
- ctrl + delete — «^[[3;5~»;
- ctrl + backspace — тут всё несколько сложнее, вывод будет одинаков как для ctrl+backspace, так и для просто backspace. Как вариант, можно довольствоваться alt+backspace.
Проверьте у себя, варианты могут несколько отличаться в зависимости от терминала. Для динамической конфигурации можно использовать команду tput, но сейчас мы её затрагивать не будем.
Открываем конфиг — пользовательский ~/.zshrc или глобальный /etc/zshrc и добавляем следующую «магию»:
bindkey '^[[1;5D' emacs-backward-word
bindkey '^[[1;5C' emacs-forward-word
bindkey -M emacs '^[[3;5~' delete-word
export WORDCHARS=''
Последняя строка нужна если при перемещении по словам zsh не останавливается на символах пунктуации.
Выполняем команду «source ~/.zshrc» (/etc/zhrc) или открываем новый интерпретатор и проверяем работоспособность.