Opsætning af Lokal og Global ZSH Shell-Historik: En Trin-for-Trin Guide

Er det muligt at opsætte lokal ZSH shell-historik (handlinger kun sket i den prompt) og global ZSH-historik (delt historik er aktiveret) separat, f.eks. ved at binde CTRL+op til global historik og normal op til lokal historik?

Opsætning af lokal og global ZSH shell-historik indebærer at konfigurere ZSH's indbyggede funktioner, oprette skiftefunktioner og binde taster til disse funktioner i din .zshrc fil.

Opsætning af Lokal og Global ZSH Shell-Historik

Ja, det er muligt at opsætte både lokal og global ZSH shell-historik separat. Dette kan gøres ved at konfigurere ZSH's indbyggede funktioner og bindings. Her er en trin-for-trin guide til, hvordan du kan gøre dette:

1. Konfigurer ZSH til at bruge både lokal og global historik

  • Åbn din .zshrc fil i en teksteditor.
  • Tilføj følgende linjer for at konfigurere lokal og global historik:

# Lokal historik
HISTFILE=~/.zsh_history_local
HISTSIZE=1000
SAVEHIST=1000

# Global historik
setopt share_history
HISTFILE=~/.zsh_history_global
HISTSIZE=2000
SAVEHIST=2000

2. Opret en funktion til at skifte mellem lokal og global historik

  • Tilføj følgende funktioner i din .zshrc fil:

# Funktion til at skifte til lokal historik
function use_local_history() {
  export HISTFILE=~/.zsh_history_local
}

# Funktion til at skifte til global historik
function use_global_history() {
  export HISTFILE=~/.zsh_history_global
}

3. Bind tasterne til de respektive funktioner

  • Tilføj følgende tastaturbindings i din .zshrc fil:

# Bind CTRL+op til global historik
bindkey '^[[1;5A' use_global_history

# Bind normal op til lokal historik
bindkey '^[[A' use_local_history

4. Genindlæs din .zshrc fil

  • For at anvende ændringerne, genindlæs din .zshrc fil ved at køre:

source ~/.zshrc

Med disse trin vil du kunne skifte mellem lokal og global ZSH shell-historik ved hjælp af tastaturbindings. Dette giver dig fleksibiliteten til at have en separat historik for hver terminalsession samt en delt historik på tværs af alle terminalsessioner.