Estoy feliz usando zsh
desde hace un tiempo, y estoy bastante satisfecho con mi configuración de historial, que son:
# Write to history immediately
setopt inc_append_history
# History shared among terminals
setopt share_history
# Save extended info in history
setopt extended_history
# Ignore duplicates
setopt hist_ignoredups
Pero sucede a menudo que necesito usar comandos específicos dentro de algunos directorios específicos. Por ejemplo, cuando estoy adentro ~/my_project
, generalmente invoco make target1 && ./run1
, pero cuando estoy adentro ~/second_project
, generalmente necesito make target2 && cat foobar | ./run2
.
Es decir: directorios diferentes, pero comandos similares.
Entonces, usualmente cd ~/my_project
escribo make
y luego busco hacia atrás en el historial hasta encontrar lo que necesito. Pero si sucede que trabajé second_project
, al buscar en el historial encontraré algunos comandos que no necesito.
Entonces, mi pregunta: ¿existe un complemento / configuración / algo para zsh tal que, al buscar en el historial, los comandos invocados en el directorio actual se muestren primero?
Idealmente, todos los demás comandos de historial coincidentes aparecerán después de esos, opcionalmente especificando un número máximo de elementos prioritarios.
Intentaría escribir algo como esto por mí mismo, pero todavía no sé cómo escribir complementos personalizados de zsh, cómo manejar el historial, etc.