1
0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2024-11-22 15:36:24 +08:00
ohmyzsh/plugins/per-directory-history/README.md
cohml 418046e958
feat(per-directory-history): add option to reduce verbosity (#12069)
Co-authored-by: Chris Hamill <chamill@ets.org>
2023-11-29 10:15:32 +01:00

2.2 KiB

per-directory-history plugin

This plugin adds per-directory history for zsh, as well as a global history,
and the ability to toggle between them with a keyboard shortcut. This is a
bundle of the official plugin by @jimhester.

To use it, add per-directory-history to the plugins array in your zshrc file:

plugins=(... per-directory-history)

This is an implementation of per-directory history for zsh, some implementations
of which exist in bash1,2. It also implements a toggle-history function
to change from using the directory history to using the global history. In both
cases the history is always saved to both the global history and the directory
history, so the toggle state will not effect the saved histories. Being able to
switch between global and directory histories on the fly is a novel feature.

Usage

The default mode is per directory history, interact with your history as normal.

Press ^G (the Control and G keys simultaneously) to toggle
between local and global histories. If you would prefer a different shortcut to
toggle set the PER_DIRECTORY_HISTORY_TOGGLE environment variable.

Configuration

  • HISTORY_BASE is a global variable that defines the base directory in which the
    directory histories are stored (default $HOME/.directory_history).
  • per-directory-history-toggle-history is the function to toggle between local
    and global histories.
  • PER_DIRECTORY_HISTORY_TOGGLE is the key binding used to run the toggle-history
    function above (default ^G)
  • PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE is a variable which toggles whether
    the current mode is printed to the screen following a mode change (default true)

History

The idea/inspiration for a per directory history is from Stewart MacArthur
and Dieter, the implementation idea is from Bart Schaefer. The
implementation is by Jim Hester in September 2012.