Last active
January 20, 2026 17:10
-
-
Save AgustinParmisano/6d43b424db7720ff4a91d787685bd2e5 to your computer and use it in GitHub Desktop.
fast file-dir search .zshrc config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Add wisely, as too many plugins slow down shell startup. | |
| # history and fzf plugins allows ctrl+r fzf like command search | |
| plugins=(git history fzf) | |
| alias cdf='cd "$(dirname "$(fdfind -a -t f . ~ --hidden --exclude .git 2>/dev/null | fzf --preview="bat --style=full --color=always {}" --preview-window=right)")"' | |
| # Define la función para buscar y navegar (cd function with fzf) | |
| function cdf_widget { | |
| # Ejecuta fzf y fd con bat para la vista previa. | |
| # Usamos -a para rutas absolutas y 2>/dev/null para ignorar errores de permisos | |
| local selected_file | |
| selected_file=$(fdfind -a -t f . ~ --hidden --exclude .git 2>/dev/null | fzf --preview="bat --style=full --color=always {}" --preview-window=right) | |
| # Si se selecciona un archivo, cambiamos al directorio padre | |
| if [[ -n "$selected_file" ]]; then | |
| local parent_dir | |
| parent_dir=$(dirname "$selected_file") | |
| cd "$parent_dir" | |
| fi | |
| # Resetea la línea de comandos de Zsh | |
| zle reset-prompt | |
| } | |
| # Carga la función como un widget de Zsh | |
| # zle -N cdf_widget | |
| # Asigna la combinación de teclas Ctrl+F (ó ^F) al widget | |
| # bindkey '^F' cdf_widget | |
| # Buscar y ejecutar bash en | |
| docker-exec() { | |
| local container_id | |
| container_id=$(docker ps --format "table {{.Names}}\t{{.ID}}" | \ | |
| fzf --header-lines=1 --height 40% --layout=reverse | \ | |
| awk '{print $2}') | |
| if [ -n "$container_id" ]; then | |
| # Esto escribe el comando en la terminal para que lo edites o ejecutes | |
| print -z "docker exec -it $container_id /bin/bash" | |
| fi | |
| } | |
| alias de='docker-exec' | |
| alias dkill='docker kill $(docker ps -q) 2>/dev/null' | |
| # Función para buscar alias y ponerlos en el prompt | |
| fzf-alias-widget() { | |
| local selected_alias=$(alias | fzf --height 40% --reverse | cut -d'=' -f1) | |
| LBUFFER+=$selected_alias | |
| zle reset-prompt | |
| } | |
| na() { | |
| echo -n "command-alias-name=command to execute: " | |
| read -r input | |
| # Validar que el input contenga un '=' | |
| if [[ "$input" == *"="* ]]; then | |
| # Extraer nombre y comando | |
| name=$(echo "$input" | cut -d'=' -f1) | |
| cmd=$(echo "$input" | cut -d'=' -f2-) | |
| # 1. Aplicar el alias en la sesión actual | |
| alias "$name"="$cmd" | |
| # 2. Guardarlo permanentemente en un archivo dedicado | |
| # Usamos ~/.bash_aliases para no ensuciar el rc principal | |
| echo "alias $name='$cmd'" >> ~/.bash_aliases | |
| # Asegurar que el archivo de alias se cargue | |
| [ -f ~/.bash_aliases ] && . ~/.bash_aliases | |
| echo "Alias '$name' creado y guardado con éxito." | |
| else | |
| echo "Formato incorrecto. Usa: nombre=comando" | |
| fi | |
| } | |
| # Crear el widget de ZLE | |
| zle -N fzf-alias-widget | |
| # Opcional: Vincular a un atajo de teclado (ej. Ctrl+A) | |
| bindkey '^A' fzf-alias-widget | |
| # Alias para invocarlo manualmente si prefieres | |
| alias falias='fzf-alias-widget |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment