programa - que significa en linux
¿Cómo cambio la finalización del historial de bash para completar lo que ya está en la línea? (5)
Encontré un comando hace un par de meses que hizo que mi historial de bash autocompletase en lo que ya está en la línea al presionar la flecha hacia arriba:
$ vim fi
Presione ↑
$ vim file.py
Me gustaría configurar esto en mi nueva computadora, ya que ahorra mucho tiempo al mantener una gran historia. El problema es que no puedo recordar cómo se mencionó y leer infinidad de referencias de bash y tutoriales desafortunadamente tampoco ayudó.
¿Alguien sabe el comando?
Actualiza .inputrc con lo siguiente:
"/C-[OA": history-search-backward
"/C-[[A": history-search-backward
"/C-[OB": history-search-forward
"/C-[[B": history-search-forward
Con ohmyzsh, usa esto en tu .zshrc :
bindkey ''^[OA'' history-search-backward
bindkey ''^[OB'' history-search-forward
Para volver a cargar, source ~/.zshrc
o relanzar el terminal.
Es posible que deba habilitar la finalización de bash.
Comprobar
-
/etc/profile
-
/etc/bash.bashrc
-
~/.bashrc
para ver si alguno de los archivos anteriores es fuente /etc/bash_completion
. es decir
. /etc/bash_completion
Si /etc/bash___completion
no proviene de ninguno de los archivos anteriores, deberá agregarlo a uno de ellos.
Si desea que todos los usuarios de bash en su máquina tengan finalización de bash, fuente /etc/bash_completion
de /etc/bash.bashrc
.
Si es solo usted el que quiere finalizar bash, fuente /etc/bash_completion
desde su ~/.bashrc
.
Probablemente algo así como
# ~/.inputrc "/e[A": history-search-backward "/e[B": history-search-forward
o equivalente,
# ~/.bashrc if [[ $- == *i* ]] then bind ''"/e[A": history-search-backward'' bind ''"/e[B": history-search-forward'' fi
(la instrucción if comprueba el modo interactivo)
Normalmente, Arriba y Abajo están vinculados a las funciones Readline previous-history
next-history
respectivamente. Prefiero unir PgUp / PgDn a estas funciones, en lugar de desplazar la operación normal de Arriba / Abajo.
# ~/.inputrc "/e[5~": history-search-backward "/e[6~": history-search-forward
Después de modificar ~/.inputrc
, reinicie su shell o use Ctrl + X , Ctrl + R para indicarle que vuelva a leer ~/.inputrc
.
Por cierto, si estás buscando documentación relevante:
Bash usa la Biblioteca de línea de lectura de GNU para el indicador e historial del shell.
Si set enable-keypad on
está en su ~/.inputrc
como lo hacen algunos usuarios de st ( suckless simple terminal ), tenga en cuenta que las teclas de flechas están en modo de teclado. Ubuntu viene con este útil /usr/share/doc/bash/inputrc.arrows
:
# This file controls the behaviour of line input editing for
# programs that use the Gnu Readline library.
#
# Arrow keys in keypad mode
#
"/C-[OD" backward-char
"/C-[OC" forward-char
"/C-[OA" previous-history
"/C-[OB" next-history
#
# Arrow keys in ANSI mode
#
"/C-[[D" backward-char
"/C-[[C" forward-char
"/C-[[A" previous-history
"/C-[[B" next-history
#
# Arrow keys in 8 bit keypad mode
#
"/C-M-OD" backward-char
"/C-M-OC" forward-char
"/C-M-OA" previous-history
"/C-M-OB" next-history
#
# Arrow keys in 8 bit ANSI mode
#
"/C-M-[D" backward-char
"/C-M-[C" forward-char
"/C-M-[A" previous-history
"/C-M-[B" next-history
Así que no estoy seguro si necesitarás todo, pero podría no ser ~/.inputrc
tener en tu ~/.inputrc
:
# Arrow keys in keypad mode
"/C-[OA": history-search-backward
"/C-[OB": history-search-forward
"/C-[OC": forward-char
"/C-[OD": backward-char
# Arrow keys in ANSI mode
"/C-[[A": history-search-backward
"/C-[[B": history-search-forward
"/C-[[C": forward-char
"/C-[[D": backward-char
Esto también es sobre el mismo tema: las teclas de mi cursor no funcionan y también este xterm: teclas especiales