Intento vincularme Shift-Enter
para insertar una nueva línea sin evaluar la expresión actual en la terminal y en los modos de respuesta. Leyendo a través delArchiwiki, Intenté configurar esto en mi ~/.Xmodmap
archivo y recargarlo ~/.Xmodmap
con xmodmap ~/.Xmodmap
. Sin embargo, esto no funciona. Aquí está mi configuración detallada:
contenido de:
~/.Xmodmap:
keysym Return = Return Linefeed
~/.Xmodmap
obtiene recursos automáticamente al iniciar sesión configurando:
if [ -s ~/.Xmodmap ]; then
xmodmap ~/.Xmodmap
fi
en mi ~/.xinitrc
.
Información adicional relevante:
(1) Activé el modo de edición vi en my ~/.bashrc
y my ~/.inputrc
. Sin embargo, los resultados no difirieron al eliminar estas opciones.
(2) keysym Return = Return Linefeed
Se sugirió el usoaquí.* Otros métodos tampoco funcionaron.
(3) Mi $TERM
está configurado en xterm-256color
.
¡Gracias por cualquier ayuda!
*Actualización: La solución sugerida en esta página (si aún no se encuentra) no puede funcionar en el caso específico que se analiza allí, ya que el lenguaje de programación utiliza su propia implementación de respuesta. Por tanto, esto no tiene ninguna relación con el caso que nos ocupa.
Respuesta1
La respuesta fácil es escribir Ctrl+ V Ctrl+ J.
Vincular Shift+ Returna Linefeed
hace que envíe ^J
= control-J = \n
= \012
(en lugar de ^M
= \r
= \015
). Eso es sólo una parte de lo que debe hacer: de forma predeterminada, ambas claves están obligadas a ejecutar la línea actual en bash. Debe cambiar el enlace de ^J en su .inputrc
para insertar una nueva línea literal ( ^V
= \026
):
"\n": self-insert
Alternativamente, vincule la clave en su .bashrc
:
bind -m vi-command '"\n": self-insert'
bind -m vi-insert '"\n": self-insert'
Cambiar Shift+ Returna Linefeed
puede tener efectos secundarios indeseables; a menudo es útil tener Shift+ Returnequivalente a Returnpara poder escribir Returnrápidamente incluso cuando Shiftestá inactivo. En su lugar, recomendaría cambiar Ctrl+ Returnpara insertar un salto de línea en XTerm. Puedes hacerlo en tu ~/.Xresources
(o dondequiera que coloques tus recursos X):
XTerm.vt100.translations: #override Ctrl<Key>Return: string("\012")