2010-10-14 5 views
9

Sto utilizzando "United States-International" su Windows 7, che causa problemi in combinazione con gVim 7.3.gVim + US-International: Non combinare le chiavi morte con lo spazio

Nel layout tastiera Stati Uniti-Internazionale i tasti " e ' sono chiavi esaurite, ciò significa che è possibile combinarle con un'altra chiave. Ad esempio, premendo "+a risultati in ä e le chiavi '+a in á. Per inserire un doppio preventivo è sufficiente premere "+space.

Ma quando inserisco "+space in gVim (in modalità di modifica) non accade nulla, nessun carattere è inserito. Quando colpisco ulteriormente lo spazio, vengono inseriti solo gli spazi. Sembra che i tasti "+space non siano combinati con un carattere ". Tuttavia, la combinazione di " con un numero a ä funziona come previsto.

Quando si preme " seguito da spazi, lo " viene memorizzato nel buffer finché non si immette un altro carattere e viene quindi combinato con quello (se possibile). Esempi:

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

Qualcuno sa come risolvere questo problema?

BTW, il comportamento non è influenzato in vim (attraverso cmd.exe)

risposta

2

Sei in modalità comando modalità di modifica o quando si esegue questa operazione? Mi sembra che ti aspetti che la modalità comandi funzioni come la modalità di modifica. Il carattere di citazione in modalità comando influisce sui registri e sugli appunti (ad esempio, per copia/incolla).

+0

No, il comportamento è rotto in modalità di modifica. E non è una questione di tempo che ho appena inserito la modalità di modifica o prima ho digitato qualche carattere. "+ spazio non si combinano con il personaggio" in modalità di modifica. – Chris

+0

OK, non era chiaro dalla tua dichiarazione del problema originale che eri in modalità di modifica ... –

2

Ho notato che è possibile premere " e quindi a per produrre ä. Sulla mia macchina (Windows XP) se premo e tengo premuto " e <Space> allo stesso tempo, sembra funzionare. Se provo a premere " e poi <Space>, ottengo un comportamento imprevisto.

+0

Ho appena provato. All'inizio sembra funzionare, ma sfortunatamente premendo Strg + 'e lo spazio allo stesso tempo si ottiene anche un comportamento imprevisto. (anche se molto meno) – Chris

+0

Puoi verificarlo spiegando il supporto predefinito per questi caratteri speciali (in Sezione 2 di Digitare caratteri speciali). http://www.iwarelogic.com/blog/special-french-german-characterss-keyboard-866 – tinifni

+1

Grazie per aver indagato sul mio problema, ma non vedo come il tuo link sia correlato al mio problema in quanto la sezione menzionata descrive un metodo per generare digrammi con il metodo build in vim. Attualmente utilizzo un layout di tastiera con dead key per generare digrammi. Ma le chiavi morte non sembrano essere completamente supportate da gVim per impostazione predefinita. – Chris

3

La mia soluzione attuale: utilizzare l'ultima versione di gVim 6.x, quelli non hanno il problema descritto.

+1

Vim 7.2 non ha questo problema neanche. – Martin

0

Ho lo stesso problema con le versioni ufficiali da 7.3 e compreso l'attuale 7.4 beta. La mia "soluzione" è quella di usare le build non ufficiali di Yongwei (che includono anche tutte le patch conosciute) qui è possibile trovare la build attuale (7.3.1251): http://wyw.dcweb.cn/#download

Ho inviato un'email all'autore di VIm a proposito di alcuni anni fa ma lui aveva non ho idea di dove questo problema possa venire ...

Una volta risolto questo problema compilando anch'io la VIm ma è più facile usare le build di Yongwei perché includono tutte le patch e sono compilate con più funzionalità rispetto alla build predefinita.

UPDATE: 2014-08-20

Ho fatto una patch per risolvere questo problema: https://code.google.com/p/vim/issues/detail?id=250&sort=-id

(si può facilmente compilare VIm sotto le finestre utilizzando MingW o MingW64 (più facile) e la Make_ming.mak nella cartella src di Vim)

UPDATE: 2014-08-22

patch inclusi in Vim 7.4.413

+0

Ho avuto grandi speranze ma sfortunatamente la build attuale di Yongwei (7.4 con patch 1-5) ha lo stesso problema :(. –

+0

Ho aperto un problema sul repository di VIm: https://code.google.com/p/vim/ problemi/dettagli? id = 250 & sort = -id – 2072

+1

@EndreBoth: ho aggiornato la mia risposta con una soluzione reale :) – 2072

1

Stesso problema qui dal 7.3. non ho provato Yongwei di build, ma ho costruito Vim me stesso (che era piuttosto semplice utilizzando Wikia's instructions) e il problema è andato via \ 0/

Modifica parlato troppo presto: la versione 32bit funziona bene, ma i 64bit la versione è ancora rotto :(

Edit soluzione: la versione 64 bit funziona bene se compilato con OPTIMIZE=SPACE
In alcune parti del codice, l'ottimizzazione è disabilitato utilizzando #pragmas, quindi una vera soluzione sarebbe quella di fare lo stesso cosa per le parti di codice precise che ne hanno bisogno in modo da poter avere il codice ottimizzato per il resto del programma.

Modifica Stavo creando vim utilizzando il compilatore fornito con Visual Studio 2010, che a quanto pare può produrre codice errato durante l'ottimizzazione (see here). La soluzione era installare Visual Studio Express 2013 per ottenere un compilatore aggiornato e creare vim usando questa nuova versione.
Per quello che vale, ecco la semplice script di build ho usato per ottenere un vim python 2.7-enabled:

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