From 7fbce52dde2d4e7f96096199b8a8f7ee1f31b0e5 Mon Sep 17 00:00:00 2001 From: chenyc Date: Tue, 27 Jun 2023 16:18:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=BB=98=E8=AE=A4fzf=20ctrl-?= =?UTF-8?q?r=20=E6=9F=A5=E6=89=BE=E5=B9=B6=E6=89=A7=E8=A1=8Chistory?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 20 ++++++++++++-------- config/fzf.zsh | 16 +++++++++++++++- config/hook.zsh | 3 --- omz.zsh | 5 +++++ 4 files changed, 32 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 4109c2d..8be7335 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,14 @@ * [o╦╗](#o) * [FUTURES](#futures) - * [USAGE](#usage) - * [UPDATE](#update) - * [FILE TREE](#file-tree) - * [REQUIRES](#requires) - * [CONFIGURATION](#configuration) - * [PLUGINS](#plugins) - * [贡献者](#贡献者) - * [Support: buy me a coffee](#support-buy-me-a-coffee) + * [USAGE](#usage) + * [UPDATE](#update) + * [FILE TREE](#file-tree) + * [REQUIRES](#requires) + * [CONFIGURATION](#configuration) + * [PLUGINS](#plugins) + * [贡献者](#贡献者) + * [Support: buy me a coffee](#support-buy-me-a-coffee) @@ -105,6 +105,10 @@ _OMZ_APPLY_CHPWD_HOOK 行为: 1. 载入时,会自动切换到上一次cd过的目录 2. 发生cd命令时,自动记录当前cd的目录(在缓存文件中) + +_OMZ_APPLY_HISTORYBYFZF + 是否允许fzf管理ctrl_r快捷键 + 默认true ``` ## PLUGINS diff --git a/config/fzf.zsh b/config/fzf.zsh index 8cd0575..7df8a83 100644 --- a/config/fzf.zsh +++ b/config/fzf.zsh @@ -1,5 +1,5 @@ export RUNEWIDTH_EASTASIAN=0 -export FZF_DEFAULT_OPTS="--height 12 --scrollbar=▌▐ --info=inline-right --margin=1 --layout=reverse --history=$OMZ/cache/fzfhistory" +export FZF_DEFAULT_OPTS="--height 12 --scrollbar=▌▐ --info=inline-right --layout=reverse --history=$OMZ/cache/fzfhistory" export FZF_DEFAULT_COMMAND="fd --exclude={.git,.idea,.vscode,.sass-cache,node_modules,build,dist,vendor} --type f" export FZF_PREVIEW_COMMAND='bash $OMZ/lib/file_preview.sh {}' @@ -22,3 +22,17 @@ zstyle ':fzf-tab:complete:git-show:*' fzf-preview 'git show --color=always $word zstyle ':fzf-tab:complete:git-checkout:*' fzf-preview '[ -f "$realpath" ] && git diff --color=always $word || git log --color=always $word' zstyle ':fzf-tab:complete:*:*' fzf-preview 'bash $OMZ/lib/file_preview.sh ${(Q)realpath}' zstyle ':fzf-tab:complete:*:*' fzf-flags --height=12 + +_apply_historybyfzf() { + function historybyfzf (){ + if [ $#LBUFFER -gt 0 ]; then + BUFFER=$(history -n | awk '!seen [$0]++' | fzf --query $LBUFFER) + else + BUFFER=$(history -n | awk '!seen [$0]++' | fzf) + fi + CURSOR=$#BUFFER + zle redisplay + } + zle -N historybyfzf + bindkey '^r' historybyfzf +} diff --git a/config/hook.zsh b/config/hook.zsh index 7c21af2..9a6796a 100644 --- a/config/hook.zsh +++ b/config/hook.zsh @@ -11,6 +11,3 @@ _apply_chpwd_hook() { currentdir=$(cat $OMZ/cache/currentdir 2>/dev/null) [ -d "$currentdir" ] && cd $currentdir } - -[ "$_OMZ_APPLY_PREEXEC_HOOK" = "true" ] && _apply_preexec_hook -[ "$_OMZ_APPLY_CHPWD_HOOK" = "true" ] && _apply_chpwd_hook diff --git a/omz.zsh b/omz.zsh index 244644b..4771729 100644 --- a/omz.zsh +++ b/omz.zsh @@ -4,3 +4,8 @@ source $OMZ/config/git.zsh source $OMZ/config/fzf.zsh source $OMZ/config/hook.zsh source $OMZ/themes/simple.zsh-theme + +# configuration +[ "$_OMZ_APPLY_PREEXEC_HOOK" = "true" ] && _apply_preexec_hook # file: $OMZ/config/hook.zsh +[ "$_OMZ_APPLY_CHPWD_HOOK" = "true" ] && _apply_chpwd_hook # file: $OMZ/config/hook.zsh +[ "$_OMZ_APPLY_HISTORYBYFZF" = "false" ] || _apply_historybyfzf # file: $OMZ/config/fzf.zsh