Cómo hacer que la comilla doble se comporte como una clave muerta, excepto cuando se usa en combinación consigo misma


14

Cuando uso un teclado, espero los siguientes comportamientos (y confío en estos comportamientos):

  • Presione ", suelte" : debe recordar la tecla como una tecla muerta
  • Presione ", suelte ", presione <space>, suelte<space> : debe imprimir"
  • Presione ", suelte ", presione ", suelte" : debe imprimir""

Entiendo que este comportamiento está definido por una distribución del teclado, así que investigué un poco.

En el diseño del teclado "Inglés - EE. UU. Con teclas muertas", obtengo los 2 comportamientos principales que prefiero, pero el último comportamiento no se cumple y obtengo el carácter extraño ¨cuando lo intento.

En la distribución del teclado "Inglés - EE. UU. Con teclas muertas AltGr", solo obtengo el último comportamiento, pero la tecla ya no se comporta como muerta.

¿Cómo puedo modificar la distribución del teclado para cumplir con los 3 comportamientos que espero cuando uso un teclado?


Esta pregunta sería mucho mejor con algo de motivación.
Joshua

Creo que su motivación es evitar las comillas dobles no coincidentes en los literales de cadena. Parece un poco exagerado lograr esto modificando el comportamiento general del teclado; esto debería ser manejado por el IDE utilizado para cualquier propósito.
teukkam

2
@Joshua En mi país, las personas crecieron con lecciones de computadora en Windows, y estos comportamientos clave muertos son los predeterminados en Windows en mi país. Es realmente difícil cambiar un hábito que aprendieron hace 20 años cuando ambos usan Ubuntu y Windows al mismo tiempo. En Windows, la distribución del teclado con este comportamiento se llama "Inglés - Estados Unidos - Internacional con teclas muertas"
Ferrybig

Respuestas:


12

Después de probar diferentes maneras para este problema, finalmente encontré una solución con ayuda en el chat para este problema

La causa raíz del problema es en realidad el hecho de que Linux no tiene una dead_apostrophey una dead_quotedblpor defecto, por lo que el "diseño de teclado muerto de EE. UU." Predeterminado ha asignado una dead_acuteo una tecla no muerta asignada a ".

Esto significaba que este problema no se puede solucionar haciendo su propia distribución de teclado personalizada, como me sugirieron en el chat.

Después de más investigaciones y el tiempo justo para aprender nuevas palabras clave para buscar, encontré esta solución en Unix y Linux StackExchange , lo que me ayudó a resolver el problema.

Seguí los siguientes pasos enumerados en esa respuesta:

  1. sudo apt install uim
  2. echo 'export GTK_IM_MODULE="uim"' >> ~/.profile
  3. echo 'export QT_IM_MODULE="uim"' >> ~/.profile
  4. curl 'https://gist.githubusercontent.com/guiambros/b773ee85746e06454596/raw/0ea6d7f7cf9a6ff38b4cafde24dd43852e46d5e3/.XCompose' > ~/.XCompose
  5. Configurar la distribución de mi teclado en "Inglés (EE. UU. - intl con teclas muertas)"
  6. Ubuntu reiniciado (de acuerdo con los comentarios, cerrar sesión e iniciar sesión es suficiente)

Después de estos pasos, logré cumplir las siguientes expectativas que tenía sobre mi teclado:

  • Presione ", suelte" : debe recordar la tecla como una tecla muerta
  • Presione ", suelte ", presione <space>, suelte<space> : debe imprimir"
  • Presione ", suelte ", presione ", suelte" : debe imprimir""

44
Para cerrar sesión y volver a iniciar sesión debería ser suficiente para que los cambios en la configuración del usuario surtan efecto. No es necesario reiniciar.
David Foerster
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.