В очередной раз искал, как сделать что-то в zsh, и наткнулся на html-версию man-странички zsh-lovers. В этот раз проглядел её (всё ещё не до конца) более внимательно и впечатлился.
Раньше не знал клёвых штук, например вот такая команда делает символические ссылки на все файлы (не трогая директории, благодаря модификатору в *(.)), заменяя в них слово “avi” на слово “other”:
for f (*(.)) ln -s $f ${f/avi/other}
А вот такие выводят файлы, менявшиеся в последнее время:
ls -l *(.m-3) # в течении последних 3 дней
ls -l *(.mm-3) # минут
ls -l *(.mh-3) # часов
ls -l *(.mM-3) # месяцев
Или, например, порядок:
ls -l *(om[1]) # последний изменившийся объект
ls -l *(.om[1]) # или файл
ls -l *(/om[1]) # или директория
Собственно, там ещё много клёвого, включая абсолютный хардкор. :-)
2
comments
»
Симон Виллисон дал ссылку на reinteract, интерактивный интерпретатор для питона, можно даже сказать - следующее поколение IPython. Но IPython - это консольная штука, а тут - GTK, что позволяет небольшой интерактивный редактор (к сожалению, привычные из обычных шеллов емаксовые биндинги M-b/M-f/M-d/C-w/etc отсутствуют, может попросить автора, чтоб сделал?), рисовать графики, играть звуки и т.д. :) Присутствует система плагинов.
В общем, выглядит хорошо достаточно, но требует полировки. :)
3
comments
»
Несмотря на то, что большинство знакомых моих пользуются tcsh или bash, есть люди - и я среди них ;) - которые просто знают, что zsh лучше. ;)
Даже если не упоминать пресловутое автодополнение (его вроде в bash’е в третьей версии кардинально улучшили?) - есть куча вещей, которые существенно облегчают жизнь. К примеру, есть такая полезная команда which - вряд ли кто-то редко пользовался ей. ls -l \which ping\ - не самая редкая комбинация. Но в zsh есть такая замечательная штука, как “=”, и вся эта уродливая конструкция легко превращается в ls -l =ping.
Еще можно вспомнить про глобальные алиасы. То есть делается такая штука: alias -g C="| ccze -A" и получаем возможность намного короче смотреть расцвеченные логи: tail -f mainlog C.
Есть еще одна поражающая просто штука - дополнение команд по расширению. Типа такого: alias -s mp3=mpg123. Ну и при наборе test.mp3 запускается сразу его проигрывание. ;)
И - спасибо, напомнили мне - есть такая вещь, как zmv. Включается простым autoload -U zmv, а фичи просто невероятные. Грубо говоря - это просто переименовывалка по паттернам. Хелп можно заценить в первом комментарии. :-)
В общем, zsh рулит неимоверно. ;) Переходите.
P.S.На всякий случай - тут лежит мой конфиг.
5
comments
»