Buscando co-mantenedores : No tengo mucho tiempo para mantener este proyecto en estos días. Si alguien quisiera participar y convertirse en co-mantenedor, ¡se lo agradeceríamos!
McFly reemplaza su búsqueda predeterminada en el historial del shell ctrl-r
con un motor de búsqueda inteligente que tiene en cuenta su directorio de trabajo y el contexto de los comandos ejecutados recientemente. Las sugerencias de McFly se priorizan en tiempo real con una pequeña red neuronal.
TL;DR: un ctrl-r
actualizado donde los resultados del historial tienen sentido para lo que estás trabajando en este momento.
ctrl-r
para mostrar una búsqueda de historial inverso en pantalla completa priorizada con una pequeña red neuronal.%
para que coincida con cualquier número de caracteres al realizar la búsqueda. La característica clave de McFly es la priorización de comandos inteligente impulsada por una pequeña red neuronal que se ejecuta en tiempo real. El objetivo es que el comando que desea ejecutar sea siempre una de las principales sugerencias.
Al sugerir un comando, McFly tiene en cuenta:
Instalar mcfly
:
brew install mcfly
Agregue lo siguiente al final de su archivo ~/.bashrc
, ~/.zshrc
o ~/.config/fish/config.fish
:
Intento:
eval " $( mcfly init bash ) "
Zsh:
eval " $( mcfly init zsh ) "
Pez:
mcfly init fish | source
Correr . ~/.bashrc
/ . ~/.zshrc
/ source ~/.config/fish/config.fish
o reinicie su emulador de terminal.
mcfly
: brew uninstall mcfly
~/.bashrc
/ ~/.zshrc
/ ~/.config/fish/config.fish
.Actualizar el árbol de puertos
sudo port selfupdate
Instalar mcfly
:
sudo port install mcfly
Agregue lo siguiente al final de su archivo ~/.bashrc
, ~/.zshrc
o ~/.config/fish/config.fish
, según corresponda:
Intento:
eval " $( mcfly init bash ) "
Zsh:
eval " $( mcfly init zsh ) "
Pez:
mcfly init fish | source
Correr . ~/.bashrc
/ . ~/.zshrc
/ source ~/.config/fish/config.fish
o reinicie su emulador de terminal.
mcfly
: sudo port uninstall mcfly
~/.bashrc
/ ~/.zshrc
/ ~/.config/fish/config.fish
. curl -LSfs https://raw.githubusercontent.com/cantino/mcfly/master/ci/install.sh | sh -s -- --git cantino/mcfly
(o, si el usuario actual no tiene permisos para editar /usr/local/bin, utilice sudo sh -s
).
Agregue lo siguiente al final de su archivo ~/.bashrc
, ~/.zshrc
o ~/.config/fish/config.fish
, respectivamente:
Intento:
eval " $( mcfly init bash ) "
Zsh:
eval " $( mcfly init zsh ) "
Pez:
mcfly init fish | source
Correr . ~/.bashrc
/ . ~/.zshrc
/ source ~/.config/fish/config.fish
o reinicie su emulador de terminal.
Descargue la última versión de GitHub.
Instálelo en una ubicación en su $PATH
. (Por ejemplo, puede crear un directorio en ~/bin
, copiar mcfly
a esta ubicación y agregar export PATH="$PATH:$HOME/bin"
a su .bashrc
/ .zshrc
o ejecutar set -Ua fish_user_paths "$HOME/bin"
para pescado.)
Agregue lo siguiente al final de su ~/.bashrc
, ~/.zshrc
o ~/.config/fish/config.fish
, respectivamente:
Intento:
eval " $( mcfly init bash ) "
Zsh:
eval " $( mcfly init zsh ) "
Pez:
mcfly init fish | source
Correr . ~/.bashrc
/ . ~/.zshrc
/ source ~/.config/fish/config.fish
o reinicie su emulador de terminal.
Instale Rust 1.40 o posterior
Ejecute git clone https://github.com/cantino/mcfly
y cd mcfly
Ejecute cargo install --path .
Asegúrese de ~/.cargo/bin
esté en su $PATH
.
Agregue lo siguiente al final de su ~/.bashrc
, ~/.zshrc
, ~/.config/fish/config.fish
o powershell $PROFILE
, respectivamente:
Intento:
eval " $( mcfly init bash ) "
Zsh:
eval " $( mcfly init zsh ) "
Pez:
mcfly init fish | source
Núcleo Powershell (pwsh)
Invoke-Expression - Command $ (mcfly init powershell | out-string )
Correr . ~/.bashrc
/ . ~/.zshrc
/ source ~/.config/fish/config.fish
/ . $PROFILE
o reinicia tu emulador de terminal.
Agregue el siguiente código a su zshrc.
zinit ice lucid wait " 0a " from " gh-r " as " program " atload ' eval "$(mcfly init zsh)" '
zinit light cantino/mcfly
Descargará mcfly y lo instalará por usted.
$(mcfly init zsh)
se ejecutará después del aviso
Para evitar que la interfaz de usuario de McFly arruine su historial de desplazamiento hacia atrás en iTerm2, asegúrese de que esta opción no esté marcada:
McFly puede volcar el historial de comandos en stdout .
Por ejemplo:
mcfly dump --since ' 2023-01-01 ' --before ' 2023-09-12 09:15:30 '
volcará el comando ejecutado entre 2023-01-01 00:00:00.0 y 2023-09-12 09:15:30 ( exclusivo ) como json . También puede especificar csv como formato de volcado mediante --format csv
.
Cada elemento de los comandos volcados tiene los siguientes campos:
cmd
: el comando de ejecución.when_run
: la hora a la que se ejecutó el comando en su zona horaria local.Puedes volcar todo el historial de comandos sin ningún argumento:
mcfly dump
McFly analiza las marcas de tiempo mediante chrono-systemd-time
, una implementación no estricta de systemd.time, con las siguientes excepciones:
Los usuarios de McFly simplemente deben comprender que no está permitido especificar la zona horaria en la marca de tiempo . McFly siempre utilizará su zona horaria local .
Para obtener más detalles, consulte la documentación chrono-systemd-time
.
Dump admite comandos de filtrado con expresiones regulares. La sintaxis de expresiones regulares sigue la expresión regular de caja.
Por ejemplo:
mcfly dump -r ' ^cargo run '
volcará todos los prefijos de comando con cargo run
.
Puede usar las opciones -r/--regex
y hora al mismo tiempo.
Por ejemplo:
mcfly dump -r ' ^cargo run ' --since ' 2023-09-12 09:15:30 '
volcará todos los prefijos de comando con cargo run
ejecutado desde 2023-09-12 09:15:30 .
Se pueden establecer varias configuraciones a través de variables de entorno. Para establecer una configuración, debe agregar los siguientes fragmentos a su ~/.bashrc
/ ~/.zshrc
/ ~/.config/fish/config.fish
.
Para cambiar el esquema de color para usarlo en una terminal ligera, configure la variable de entorno MCFLY_LIGHT
.
bash/zsh:
export MCFLY_LIGHT=TRUE
pez:
set -gx MCFLY_LIGHT TRUE
powershell:
$ env: MCFLY_LIGHT = " TRUE "
Consejo: en macOS puedes usar el siguiente fragmento para configurar la combinación de colores según la configuración de todo el sistema:
bash/zsh:
if [[ " $( defaults read -g AppleInterfaceStyle 2 & > /dev/null ) " != " Dark " ]] ; then
export MCFLY_LIGHT=TRUE
fi
De forma predeterminada, Mcfly utiliza un esquema de claves inspirado emacs
. Si desea cambiar al esquema de claves inspirado vim
, configure la variable de entorno MCFLY_KEY_SCHEME
.
bash/zsh:
export MCFLY_KEY_SCHEME=vim
pez:
set -gx MCFLY_KEY_SCHEME vim
powershell:
$ env: MCFLY_KEY_SCHEME = " vim "
Para habilitar la búsqueda difusa, establezca MCFLY_FUZZY
en un número entero. 0 está apagado; Los números más altos pesan hacia partidos más cortos. Los valores en el rango de 2 a 5 obtienen buenos resultados hasta el momento; ¡Pruebe algunos e informe cuál funciona mejor para usted!
bash/zsh:
export MCFLY_FUZZY=2
pez:
set -gx MCFLY_FUZZY 2
powershell:
$ env: MCFLY_FUZZY = 2
Para cambiar el número máximo de resultados mostrados, configure MCFLY_RESULTS
(predeterminado: 10).
bash/zsh:
export MCFLY_RESULTS=50
pez:
set -gx MCFLY_RESULTS 50
powershell:
$ env: MCFLY_RESULTS = 50
Para eliminar sin confirmación, establezca MCFLY_DELETE_WITHOUT_CONFIRM
en verdadero.
bash/zsh:
export MCFLY_DELETE_WITHOUT_CONFIRM=true
pez:
set -gx MCFLY_DELETE_WITHOUT_CONFIRM true
powershell:
$ env: MCFLY_DELETE_WITHOUT_CONFIRM = " true "
Para cambiar la vista de la interfaz, configure MCFLY_INTERFACE_VIEW
(predeterminado: TOP
). Opciones disponibles: TOP
y BOTTOM
bash/zsh:
export MCFLY_INTERFACE_VIEW=BOTTOM
pez:
set -gx MCFLY_INTERFACE_VIEW BOTTOM
powershell:
$ env: MCFLY_INTERFACE_VIEW = " BOTTOM "
Para deshabilitar la interfaz del menú, configure la variable de entorno MCFLY_DISABLE_MENU
.
bash/zsh:
export MCFLY_DISABLE_MENU=TRUE
pez:
set -gx MCFLY_DISABLE_MENU TRUE
powershell:
$ env: MCFLY_DISABLE_MENU = true
Para cambiar la clasificación de los resultados mostrados, configure MCFLY_RESULTS_SORT
(predeterminado: RANK). Valores posibles RANK
y LAST_RUN
bash/zsh:
export MCFLY_RESULTS_SORT=LAST_RUN
pez:
set -gx MCFLY_RESULTS_SORT LAST_RUN
powershell:
$ env: MCFLY_RESULTS_SORT = " LAST_RUN "
Para cambiar el mensaje, configure MCFLY_PROMPT
(predeterminado: $
).
bash/zsh:
export MCFLY_PROMPT= " ❯ "
pez:
set -gx MCFLY_PROMPT " ❯ "
powershell:
$ env: MCFLY_PROMPT = " > "
Tenga en cuenta que sólo se permiten mensajes de un solo carácter. configurar MCFLY_PROMPT
en "<str>"
lo restablecerá al mensaje predeterminado.
McFly almacena su base de datos SQLite en la ubicación estándar del sistema operativo. En OS X, esto está en ~/Library/Application Support/McFly
, en Linux está en $XDG_DATA_DIR/mcfly/history.db
(el valor predeterminado sería ~/.local/share/mcfly/history.db
) y en Windows , es %LOCALAPPDATA%McFlydatahistory.db
. Para soporte heredado, si ~/.mcfly/
existe, se usa en su lugar.
Si tiene una base de datos histórica muy grande y nota que McFly se inicia lentamente, puede configurar MCFLY_HISTORY_LIMIT
en algo así como 10000 para limitar la cantidad de registros que se consideran al realizar la búsqueda. En este ejemplo, McFly buscaría sólo las 10.000 entradas más recientes.
A partir de la versión 6.2 del kernel de Linux, algunos sistemas han desactivado TIOCSTI (que McFly usaba anteriormente para escribir el comando seleccionado). McFly soluciona este problema utilizando dos combinaciones de teclas "ficticias", que de forma predeterminada son ctrl-x 1
y ctrl-x 2
. Si está utilizando cualquiera de estos para otro propósito, puede configurar MCFLY_BASH_SEARCH_KEYBINDING
y MCFLY_BASH_ACCEPT_LINE_KEYBINDING
, respectivamente, en algo que no esté utilizando. Si prefiere utilizar el comportamiento TIOCSTI heredado, puede habilitarlo configurando la variable sysctl
dev.tty.legacy_tiocsti
en 1
en su sistema y configurando la variable bash MCFLY_BASH_USE_TIOCSTI
en 1
.
McFly actualmente no analiza ni usa HISTTIMEFORMAT
.
¡Se recomiendan contribuciones y correcciones de errores! Sin embargo, no podemos fusionar RP que aumenten significativamente la complejidad más allá de lo que ya se requiere para mantener el proyecto. Si tiene dudas, no dude en abrir un problema y preguntar.
cargo test
Cargo.toml
y aumente la versión.cargo clippy
y cargo fmt
.cargo build
) y probar ( cargo test
)git add -p
git ci -m 'Bumping to vx.x.x'
git tag vx.xx
git push origin head --tags
cargo publish
Viejo:
pkg/brew/mcfly.rb
y actualice la versión y los SHA. ( shasum -a 256 ...
)../homebrew-mcfly/pkg/brew/mcfly.rb
también.cp pkg/brew/mcfly.rb ../homebrew-mcfly/pkg/brew/mcfly.rb
diff ../homebrew-mcfly/pkg/brew/mcfly.rb ../mcfly/pkg/brew/mcfly.rb ; diff ../homebrew-mcfly/HomebrewFormula/mcfly.rb ../mcfly/HomebrewFormula/mcfly.rb
git add -p && git ci -m 'Update homebrew' && git push
cd ../homebrew-mcfly && git add -p && git ci -m 'Update homebrew' && git push && cd ../mcfly