Add <C-e> to open a global file
This commit is contained in:
parent
cc6fe9a337
commit
0e8fea7999
|
@ -111,35 +111,13 @@ function zvm_after_init() {
|
|||
fi
|
||||
fi
|
||||
if [ ! -f $FZY_CACHE ]; then
|
||||
PATHS=""
|
||||
search_dirs=(~/.config/waybar/ \
|
||||
~/.config/xmodmap/ \
|
||||
~/.config/zsh/ \
|
||||
~/.config/tmux/ \
|
||||
~/.config/vim/ \
|
||||
~/.config/qtile/ \
|
||||
~/.config/rofi/ \
|
||||
~/.config/scripts/ \
|
||||
~/.config/nvim/ \
|
||||
~/.config/picom/ \
|
||||
~/.config/polybar/ \
|
||||
~/.config/awesome/ \
|
||||
~/.config/dunst/ \
|
||||
~/.config/firefox/ \
|
||||
~/.config/git/ \
|
||||
~/.config/gitui/ \
|
||||
~/.config/helix/ \
|
||||
~/.config/hypr/ \
|
||||
~/.config/i3/ \
|
||||
~/.config/kitty/ \
|
||||
~/.config/mpv/ \
|
||||
~/.config/alacritty/ \
|
||||
PATHS="$(/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME ls-files | xargs -n 1 dirname | uniq | grep -v '^\.$' | parallel echo ~/{})"
|
||||
search_dirs=( \
|
||||
~/Workspace/ \
|
||||
~/Containers/ \
|
||||
~/Storage/Shared/ \
|
||||
~/Storage/Thomas/ \
|
||||
/home/server/Storage/Shared/ \
|
||||
/home/server/Storage/Thomas/ \
|
||||
)
|
||||
|
||||
for i in $search_dirs ; do
|
||||
if [ -d $i ]; then
|
||||
PATHS="$PATHS\n$i"
|
||||
|
@ -156,8 +134,40 @@ function zvm_after_init() {
|
|||
cd_to "$(fd . -t d | fzy -l 20)"
|
||||
}
|
||||
|
||||
function edit_global_files() {
|
||||
zle -I
|
||||
FZY_CACHE=~/.cache/fzy_file_paths
|
||||
if [ -f $FZY_CACHE ]; then
|
||||
# Check if cache is older than 1 day
|
||||
if [ $(($(date +%s) - $(date -r $FZY_CACHE +%s))) -gt 86400 ]; then
|
||||
rm $FZY_CACHE
|
||||
fi
|
||||
fi
|
||||
if [ ! -f $FZY_CACHE ]; then
|
||||
PATHS="$(/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME ls-files | parallel echo ~/{})"
|
||||
search_dirs=( \
|
||||
~/Workspace/ \
|
||||
~/Containers/ \
|
||||
)
|
||||
for i in $search_dirs ; do
|
||||
if [ -d $i ]; then
|
||||
PATHS="$PATHS\n$(fd . $i -t f)"
|
||||
fi
|
||||
done
|
||||
echo -e $PATHS > $FZY_CACHE
|
||||
fi
|
||||
file=$(cat $FZY_CACHE | fzy -l 20)
|
||||
if [ -z "$file" ]; then
|
||||
return 0
|
||||
fi
|
||||
cd_to "$(dirname $file)"
|
||||
nvim "$file"
|
||||
|
||||
}
|
||||
|
||||
zle -N find_global_files
|
||||
zle -N find_local_files
|
||||
zle -N edit_global_files
|
||||
|
||||
bindkey "^T" find_global_files
|
||||
bindkey -M emacs "^T" find_global_files
|
||||
|
@ -169,6 +179,11 @@ function zvm_after_init() {
|
|||
bindkey -M vicmd "^Y" find_local_files
|
||||
bindkey -M viins "^Y" find_local_files
|
||||
|
||||
bindkey "^E" edit_global_files
|
||||
bindkey -M emacs "^E" edit_global_files
|
||||
bindkey -M vicmd "^E" edit_global_files
|
||||
bindkey -M viins "^E" edit_global_files
|
||||
|
||||
|
||||
if [ "$SSH_SESSION_ID" != "" ]; then
|
||||
mkdir -p /tmp/ssh_sessions
|
||||
|
@ -289,7 +304,7 @@ alias vim="nvim"
|
|||
alias dot='/usr/bin/git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME" "$@"'
|
||||
alias wget=wget --hsts-file="$XDG_DATA_HOME/wget-hsts"
|
||||
alias python=python3
|
||||
alias r="cd \"\$(lf -print-selection -print-last-dir)\""
|
||||
alias lf="cd \"\$(/usr/bin/lf -print-selection -print-last-dir)\""
|
||||
alias v="nvim -c ':lua require(\"oil\").open()' && cd \"\$(cat /tmp/oil_dir 2> /dev/null || pwd)\""
|
||||
alias cpr="rsync --archive -hh --partial --info=stats1,progress2 --modify-window=1"
|
||||
alias mvr="rsync --archive -hh --partial --info=stats1,progress2 --modify-window=1 --remove-source-files"
|
||||
|
|
Loading…
Reference in New Issue