My history file looks like: .... : 1656846180:0;mint-vm : 1657092275:4;g d fpull : 1657092331:0;stow-dotfiles : 1657092447:0;fd --hidden --ignore-file .gitignore --base-directory="$HOME/.dotfiles/.common-dotfiles-buggy-nemo-bookmarks" --type l --type f | sd ^. $HOME | xargs -I{} rm {}\ : 1657092530:0;fd --hidden --base-directory="$HOME/.dotfiles/.common-dotfiles-buggy-nemo-bookmarks" --type l --type f | sd ^. $HOME | xargs -I{} rm {}\ stow --target="$HOME" --dir="$HOME/.dotfiles" --no-folding --restow .common-dotfiles-buggy-nemo-bookmarks\ : 1657092737:0;for i in "${array[@]}"\ do\ \ DOWNLOAD_URL=$(curl -Lfs ${i} | grep -m1 -Po '(?<=href=")[^"]*zip')\ FILE_NAME=$(echo $DOWNLOAD_URL | grep -Eo "([^\/]+$)")\ \ wget $DOWNLOAD_URL\ \ \ done : 1657092752:15;array=( https://cinnamon-spices.linuxmint.com/applets/view/83\ https://cinnamon-spices.linuxmint.com/applets/view/106\ https://cinnamon-spices.linuxmint.com/applets/view/222\ https://cinnamon-spices.linuxmint.com/applets/view/238\ https://cinnamon-spices.linuxmint.com/applets/view/284\ https://cinnamon-spices.linuxmint.com/applets/view/303 )\ \ for i in "${array[@]}"\ do\ \ DOWNLOAD_URL=$(curl -Lfs ${i} | grep -m1 -Po '(?<=href=")[^"]*zip')\ FILE_NAME=$(echo $DOWNLOAD_URL | grep -Eo "([^\/]+$)")\ \ wget $DOWNLOAD_URL\ \ \ done .... I am working on a widget for fuzzy search history. .... skim-history() { origquery=${BUFFER} output=$(history -1 1 | sd '^[ ]*[0-9]*[ ]*' '' | sk --tac --no-sort --exact) if [ $? -eq 0 ]; then BUFFER=$output else BUFFER=$origquery fi CURSOR=$#BUFFER } zle -N skim-history bindkey '^R' skim-history .... In `history -1 1 | sd '^[ ]*[0-9]*[ ]*' '' | sk --tac --no-sort --exact`, sd is used instead of sed, which just removes numbers from the beginning. However, it messes things up if the command is multi-line. What I found is, the only way zsh history parsing works correctly is if I use something like !NUM, to get the history. How can I edit my zle extension to do that? Another option is (if previous fails), do not save multi line commands in history. How can I do that?