LINUX.ORG.RU

HSTR 1.25

 , ,


1

2

HSTR — консольная утилита с curses-интерфейсом для интерактивного поиска команд в истории оболочки.

Помимо интерактивности HSTR отличают от Ctrl-R также:

  • три варианта поиска: совпадение подстроки, регулярное выражение или поиск ключевых слов (строка считается совпадающей, если она включает в себя все указанные ключевые слова);
  • опциональный учёт регистра в шаблоне;
  • наличие списка избранных команд;
  • возможность удаления элементов из истории;
  • альтернативное ранжирование команд, учитывающее их длину в дополнении к позиции в истории.

Изменения в данной версии:

  • новая опция командной строки --kill-last-command, удаляющая последнюю команду из истории;
  • добавлена опция конфигурации verbose-kill, которая контролирует вывод на экран команды, удалённой с помощью --kill-last-command;
  • новое сочетание Ctrl-X k для оболочки, которое вызывает --kill-last-command;
  • смена режима по умолчанию на совпадение по ключевым словам;
  • отсутствие задержки после нажатия Esc;
  • ускорение загрузки истории команд;
  • исправления подсветки текущего элемента списка, поведения Ctrl-R для поля ввода внизу экрана, обновления списка при изменении размеров окна, перемещение курсора ввода за пределы поля ввода, падения при удалении единственного элемента списка.

Альтернативное название — hh. Пакет в дистрибутивах может называться одним из двух вариантов.

>>> Ссылки для загрузки

>>> Страница проекта

★★★★★

Проверено: Shaman007 ()
Последнее исправление: xaizek (всего исправлений: 8)

Ответ на: комментарий от mandala

Собрал, прикольная штука, пожалуй растащу по всем хостам своим.

mandala ★★★★★
()

Оно умеет парсить хистори с таймстампами и многострочники, или мне продолжать юзать свой костылище?

r3lgar ★★★★★
()
Последнее исправление: r3lgar (всего исправлений: 1)
Ответ на: комментарий от r3lgar

Оно умеет парсить хистори с таймстампами

Да.

многострочники

Они же в истории в качестве одной строки хранятся.

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

Они же в истории в качестве одной строки хранятся.

Не знаю как в баше, но в zsh с таймстампами…

: 1525943671:0;echo "\
1234\
4321\
3333\
33331\
"

r3lgar ★★★★★
()

отсутствие задержки после нажатия Esc

Ох, сколько же костылестроения вокруг этой кнопки в Linux! винде такое даже и не снилось.

ls-h ★★★★★
()
Ответ на: комментарий от r3lgar

Хм, я видимо с каким-то частным случаем попутал. Тоже на строки бьётся и HSTR назад не собирает, в zsh аналогичное поведение.

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

Ещё можно подумать о модификации этого файла. Как-то склеивать и разбивать строки в нём.

xaizek ★★★★★
() автор топика

Выглядит полезной. Возможностей Ctrl+R иногда не хватает.

das_tier ★★★★★
()

А я пользуюсь fish, там это из коробки.

Puzan ★★★★★
()

Осознал, что пользуюсь Midnight Commander’ом в том числе ради видимой истории.

Centaur
()
Ответ на: fzf от asdfzxcv

fzf же вроде про другое, не оставит команду в шелле для продолжения редактирования, не удалит элементы из истории. Хотя что-то им сэмулировать можно.

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

Да, тут даже вроде что-то про мультилайн вырисовывается. Благодарю.

r3lgar ★★★★★
()

HSTR — консольная утилита с curses-интерфейсом для интерактивного поиска команд в истории оболочки.

Обалденная штука.

Вот только ".bash_history" иной раз удручает. Никто не подскажет методу, по которой ".bash_history" будет всегда содержать некий набор «избранных» команд и всегда будет избавлен от «шлаковых» команд. Плюс с «hh» повторяющиеся команды в хистори совершенно ни к чему.

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

Как пример (в man bash можно посмотреть описание):

# don't save duplicates, l, ll, ls, bf, bg, su and exit commands to command
# history
export HISTIGNORE='&:l:ll:ls:[bf]g:su:exit'

# remove all previous lines matching the current line from the history list
# before that line is saved
export HISTCONTROL='erasedups'

Сохранять избранные команды нельзя, можно только не сохранять избранные.

Только с такими настройками у меня всё равно дубликаты в .bash_history появляются. Думаю, что это из-за shopt -s histappend.

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

Думаю, что это из-за shopt -s histappend.

Точно такая же байда.

Мне бы только понять, как наладить систему, а отдельные компоненты то есть:

1) Избранные команды: .bash_history_save

2) Удаление дубликатов:

sort -u .bash_history >.bash_history_uniq

3) Объединение

history -c
history -w
cat .bash_history_save .bash_history_uniq | sort -u > .bash_history
exit

А вот, чтобы без моего участия всё это фурычило, ну ни как.

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

fzf же вроде про другое

да, собственно, про то же самое, но с другой стороны. Еще и быстрее гораздо, чем hstr.

не оставит команду в шелле для продолжения редактирования

с башем в нем не вижу с мысла, а в zsh дефолтное поведение после подстановки из history команду не выполнить, а оставить на редактирование.

не удалит элементы из истории

я не могу придумать кейса, что бы это было нужно. А если и могу - то оно решается другими путями, намного проще, и не нужно для этого компелять дополнительно ничего.

Crystal_HMR ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.