2010-10-14 13 views
9

Estoy usando "Estados Unidos-Internacional" en Windows 7, lo que causa problemas en combinación con gVim 7.3.gVim + EE. UU.-Internacional: no combina claves muertas con espacio

En el diseño de teclado internacional de EE. UU. Las teclas " y ' son teclas muertas, es decir, puede combinarlas con otra tecla. Por ejemplo, presionando "+a resulta en ä y las claves '+a en á. Para insertar una comilla doble, simplemente tiene que presionar "+space.

Pero cuando ingreso "+space en gVim (en modo de edición) no ocurre nada, no se inserta ningún carácter. Cuando golpeo aún más espacio, solo se insertan espacios. Parece que las claves "+space no se combinan en un solo carácter ". Sin embargo, la combinación de " con a a ä funciona como se esperaba.

Cuando presiono " seguido de espacios, el " se almacena en el búfer hasta que ingrese otro carácter y luego se combina con eso (si es posible). Ejemplos:

 
"+space+space+a => » ä« 
"+space+space+b => » "b« 
"+space+space+" => » ""« 

¿Alguien sabe cómo resolver este problema?

Por cierto, el comportamiento no se ve afectada en vim (a través de cmd.exe)

Respuesta

2

¿Está usted en el modo de edición o modo de comandos cuando se hace esto? Me parece que está esperando que el modo de comando funcione como el modo de edición. El carácter de comillas en modo comando afecta los registros y el portapapeles (por ejemplo, para copiar/pegar).

+0

No, el comportamiento se rompe en el modo de edición. Y no es una cuestión de clima. Acabo de ingresar al modo de edición o escribí algunos caracteres antes. "+ espacio no se combina con el personaje" en el modo de edición. – Chris

+0

OK, no estaba claro desde el enunciado de su problema original que estuviera en modo de edición ... –

2

Me di cuenta de que puede presionar " y luego a para producir ä. En mi máquina (Windows XP) si presiono y sostengo " y <Space> al mismo tiempo, parece que funciona. Si intento presionar " y luego <Space>, aparece un comportamiento inesperado.

+0

Acabo de intentarlo. Al principio parece funcionar, pero desafortunadamente presionar Strg + 'y espacio al mismo tiempo también resulta en un comportamiento inesperado. (aunque mucho menos) – Chris

+0

Puede verificar esto explicando la compatibilidad predeterminada para estos caracteres especiales (en la Sección 2 de Escribir caracteres especiales). http://www.iwarelogic.com/blog/special-french-german-characterss-keyboard-866 – tinifni

+1

Gracias por investigar mi problema, pero no veo cómo su vínculo está relacionado con mi problema, ya que la sección mencionada describe una método para generar dígrafos con el método build in de vim. Actualmente uso un diseño de teclado con teclas muertas para generar dígrafos. Pero las llaves muertas no parecen ser totalmente compatibles con gVim por defecto. – Chris

3

Mi solución actual: utilice la última versión de gVim 6.x, aquellos que no tienen el problema descrito.

+1

Vim 7.2 tampoco tiene este problema. – Martin

0

Tengo el mismo problema con las compilaciones oficiales desde 7.3 e incluye la beta actual 7.4. Mi "solución" es usar las versiones no oficiales de Yongwei (que también incluyen todos los parches conocidos) puedes encontrar la compilación actual (7.3.1251) aquí: http://wyw.dcweb.cn/#download

Envié un correo electrónico al autor de VIm hace unos años, pero él tenía no tengo idea de dónde podría venir este problema ...

Una vez también resolví este problema compilando VIm pero es más fácil usar las compilaciones de Yongwei ya que incluyen todos los parches y están compilados con más funciones que la compilación predeterminada.

ACTUALIZACIÓN: 2014-08-20

He hecho un parche para solucionar este problema: https://code.google.com/p/vim/issues/detail?id=250&sort=-id

(se puede compilar fácilmente VIm debajo de las ventanas utilizando MingW o MingW64 (más fácil) y la Make_ming.MAK en la carpeta src de Vim)

ACTUALIZACIÓN: 2014-08-22

parche incluido en vim 7.4.413

+0

Tenía grandes esperanzas, pero desafortunadamente la versión actual de Yongwei (7.4 con parches 1-5) tiene el mismo problema :(. –

+0

He abierto un problema en el repositorio de VIm: https://code.google.com/p/vim/ issues/detail? id = 250 & sort = -id – 2072

+1

@EndreBoth: actualicé mi respuesta con una solución real :) – 2072

1

El mismo problema aquí desde 7.3. no lo probé Yongwei de construcciones, pero he construido Vim a mí mismo (que era bastante sencillo utilizando Wikia's instructions) y el problema desapareció \ 0/

Editar hablado demasiado pronto: la versión de 32 bits funciona bien, pero los 64bits versión todavía está roto :(

Editar solución: la versión de 64 bits funciona bien si se compila con OPTIMIZE=SPACE
En algunas partes del código, optimización está deshabilitada usando #pragmas, por lo que una solución real sería la de hacer lo mismo cosa para el código preciso partes que lo necesitan para que pudiéramos tener código optimizado para el resto Del programa.

Editar Estaba compilando vim usando el compilador que viene con Visual Studio 2010, que aparentemente puede producir código incorrecto al optimizar (see here). La solución fue instalar Visual Studio Express 2013 para obtener un compilador actualizado y crear vim utilizando esta nueva versión.
Por lo que vale la pena, aquí está el script de construcción sencilla que utiliza para obtener una pitón vim 2.7 habilitado:

REM TODO: cd to your vim source code directory 

:: Set environment for wanted options before building Vim. 
set GUI=yes 
set DYNAMIC_PYTHON=yes 
set PYTHON=C:/Python27 
set PYTHON_VER=27 
set NETBEANS=no 
set FEATURES=HUGE 
set CPUNR=i686 
set WINVER=0x500 
set OLE=yes 
set CPU=AMD64 
set SDK_INCLUDE_DIR=C:\Program Files\Microsoft SDKs\Windows\v7.1\Include 

REM setup environment to use VS2013's compiler 
call "c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64 

nmake -f Make_mvc.mak clean 
nmake -f Make_mvc.mak 
Cuestiones relacionadas