LINUX.ORG.RU

Кривость history в zsh

 ,


0

1

Zsh — очень удобная вещь, но почему, блин, в нем встроенная команда history такая кривая? В баше вводишь history X, он выдает тебе X последних команд. А zsh по какой-то больной логике по этой команде выдает все команды, кроме X первых команд.

К тому же в баше есть возможность удалить выборочно команды из истории через «history -d X», где X — номер команды. В zsh я такой возможности не нашел.

Кто-нибудь знает как в нем можно привести history X к башевскому поведению и удалять отдельные команды из истории?

Кто-нибудь знает как в нем можно привести history X к башевскому поведению и удалять отдельные команды из истории?

Вернуться на Bash?

mord0d ★★★ ()
Ответ на: комментарий от mord0d

Это, конечно, вариант, но мне нравится zsh'евский меню-подобный перебор доступных вариантов автодоплнения. И встроенная арифметика чисел с плавающей точкой.

Kzer-Za ()

zsh по какой-то больной логике по этой команде выдает все команды, кроме X первых команд.

Ты неправильно понял логику, поэтому она кажется тебе странной. На самом деле history N выдаёт историю начиная с N-й записи. Например history 1 — начиная с самой первой.

Это стандартное поведение, подозреваю, ему больше лет, чем bash. Все клоны ksh, с которыми я сталкивался, ведут себя так же.

он выдает тебе X последних команд

history 1 | tail -n X будет выдавать тебе X последних команд. Оформи это как функцию где-нибудь в .zshrc и радуйся.

aeralahthu ()
Ответ на: комментарий от aeralahthu

А, понятно, спасибо — теперь смог нагуглить и более короткое решение: если не указывать первую запись, то можно указать "-X" для последних X записей (вот и аноним выше в очень краткой форме это советует).

Теперь бы еще найти возможность удалять выборочно записи из истории без разлогинивания из zsh'а и редактирования файла истории...

Kzer-Za ()
Ответ на: комментарий от aeralahthu

Это стандартное поведение, подозреваю, ему больше лет, чем bash.

Пошарил в стандарте, и действительно, это поведение по POSIX. По ссылке описание команды fc, но history — это то же самое (во многих шеллах просто алиас), что fc -l.

aeralahthu ()
Ответ на: комментарий от gnu_linux

Все остальное для калек. Так что выбор не широк — быть могучим геем ибрать от жизни все либо быть калекой и страдать от несовершенства. И от педиков.

anonymous ()