zsh, стрілка вгору повторює лише унікальні команди?


21

Я шукаю налаштування, яке дозволить зробити так, що коли я натискаю стрілку вгору, zsh показує команди, які я нещодавно відредагував. Улов є, я хочу лише унікальних команд. Наразі, якщо я набираю echo "hello world"50 разів, мені потрібно натиснути стрілку вгору 50 разів, щоб отримати команду, яку я використав, перед тим, як набрати команду echo. Це найменше дратує.

Будь-які думки щодо того, який параметр мені потрібно вмикати / вимикати?

Відповіді:


23

HIST_IGNORE_ALL_DUPSвикине всі попередні збіги команди, що може заплутатись при використанні історії як журналу того, що ви робили пізніше.

Більш підходить до ваших потреб - це, мабуть, варіант HIST_IGNORE_DUPSчи навіть HIST_FIND_NO_DUPS.

Дивіться man zshoptions | less -p History:

HIST_FIND_NO_DUPS: Під час пошуку записів історії в редакторі рядків не відображайте дублікатів раніше знайдених рядків, навіть якщо дублікати не є суміжними.

HIST_IGNORE_ALL_DUPS: Якщо новий командний рядок, який додається до списку історії, дублює старіший, старша команда видаляється зі списку (навіть якщо це не попередня подія).

HIST_IGNORE_DUPS: Не вводьте командні рядки у список історії, якщо вони є дублікатами попередньої події.


1
HIST_FIND_NO_DUPS - краща відповідь, ніж моя, я думаю.
Мікель

3

Я не бачу ніякого способу буквально зробити це, але якщо ви встановите цей HIST_IGNORE_ALL_DUPSпараметр, в історії збережеться лише остання версія команди, що дасть вам такий же ефект.

Детальніше man zshoptionsдив.


Чудово працює! Якщо я чогось не пропускаю, це саме те, що я хотів :)
Лі Олайвар
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.