Ctrl+ res una gran herramienta para buscar .bash_history
comandos ejecutados previamente.
Sin embargo, cuando lo uso en mi OS X Terminal.app veo un comportamiento extraño, y me preguntaba si alguien más ve lo mismo o sabe cómo solucionarlo.
- Ctrl+r
- escribir algo como
find
- oh genial, mira ... es el comando que quería
find . -exec grep -q "hello world" '{}' \; -print
- Quiero ejecutar ese comando pero cambiar hola mundo a otra cosa.
- Entonces pegué ←o→
- Ahora el comando es SORTA en la línea de comando, pero siempre parece una versión truncada del comando, como esta:
-q "blog_posts_by" '{}' \; -print
donde está todo el comando y puedo usar las teclas del cursor para moverme por la línea, pero no todos Está impreso. Hay una desconexión entre lo que se muestra en la línea y lo que el terminal realmente piensa que estoy editando.
¿Alguien tiene idea de por qué podría suceder esto? No es un fenómeno fácil buscar en las webs.
Respuestas:
Probablemente tenga secuencias de escape para colores en su solicitud que no estén delimitados correctamente. Necesitan estar encerrados en
\[
y\]
.La longitud de las secuencias de caracteres que no se imprimen no se incluyen en la longitud de la solicitud cuando están encerradas y la posición de los comandos anteriores debe calcularse para una visualización adecuada cuando se ajustan.
fuente
PS1
, pero no de nuevo después del carácter de nueva línea.Esto podría deberse a la forma en que las teclas de escape están configuradas en su Terminal, lo que normalmente hago es usar la flecha izquierda o derecha en iTerm o Terminal.app, ya que no soy fanático de presionar la tecla Intro de inmediato, ¿funciona para usted? ?
fuente
Otra posible causa de este problema es tener un
TERM
valor incorrecto . Por ejemplo, esto me sucedió cuando estaba usando colores en mi PS1, peroTERM
estaba configurado enxterm
. Lo cambiéxterm-256color
y luego CTRL-r comenzó a funcionar correctamente nuevamente.fuente