Re: Особенности Zsh
On 2013-10-07, Artem Chuprina wrote:
> Артём Н. -> debian-russian@lists.debian.org @ Sun, 06 Oct 2013 12:33:32 +0400:
>
> АН> 1. Узнать у людей её использующих, какие особенности (по сравнению с Bash)
> АН> наиболее удобны, полезны и часто ими используемы.
>
> TAB-дополнение по всему пути (ls /u/s/e/23<TAB>). Часто бывает полезно,
> когда надо добраться до файла, а в пути много шагов, и на многих из них
> нужно много набирать, чтобы обеспечить уникальность.
>
В Bash нет прямого аналога. Разве что
shopt -s cdspell
или самописный модуль комплита...
> ** в шаблоне. Особенно - в комплекте с TAB, которое в данном случае
> будет уже не дополнением, а раскрытием шаблона. Опять же, не знаю,
> может, bash уже и научился.
>
# ksh-88 egrep-style extended pattern matching.
shopt -s extglob
# Enable '**' patttern matching. If the pattern is followed by a /, only dirs match.
shopt -s globstar
# Ignore case in glob.
shopt -s nocaseglob
> for f in *; do echo ../orig/${f/-r./.}; done
>
> (часть реальной командной строки, из history) и прочие преобразования со
> значениями переменных. Они у zsh богаче, чем у bash.
>
${VAR%pat}, ${VAR#pat} - в POSIX
[ str =~ ext-regex ] вместе с BASH_REMATCH[i] для доступа к группам
${parameter/pattern/string} - glob/shell pattern
Все что нужно для программирования, может синтаксис неприятный...
> Настройки обращения с history (оставление в истории только самого
> последнего из одинаковых, что часто сильно сокращает перебор, умение
> делить историю между несколькими экземплярами запущенных шеллов). Опять
> же, не знаю, как с этим у bash сегодня.
>
Есть хак с всовыванием команды "history -a" в PS1...
А так я в одном шеле history -a, а в другом history -n....
> help (как правило, man) по Esc-h, без стирания набранной части команды
> (в смысле, по выходу из man ты получаешь набранную часть команды обратно
> в командную строку).
>
Для связки Emacs + M-x term - не потребуется ))
> /etc/zshenv и ~/.zshenv, выполняемые при _любом_ запуске шелла (у bash
> такого нет).
Ну Bash же создавался как системный шелл и наследует POSIX поведение...
Чего не хватает - графического меню с возможностью ходить стрелочками...
Частично решается:
# Cycling possible completion forward and backward in place.
"\e[1;3C": menu-complete # M-Right
"\e[1;3D": menu-complete-backward # M-Left
в ~/.inputrc.
Еще ускоряет работу:
# UP/DOWN filter history by typed string as prefix.
"\e[A": history-search-backward
"\C-p": history-search-backward
"\eOA": history-search-backward
"\e[B": history-search-forward
"\C-n": history-search-forward
"\eOB": history-search-forward
# Ctrl+Left/Right to move by whole words.
"\e[1;5C": forward-word
"\e[1;5D": backward-word
# Same with Shift pressed.
"\e[1;6C": forward-word
"\e[1;6D": backward-word
--
Best regards!
Reply to: