gVim + US-International:不将死键与空格组合

时间:2010-10-14 20:24:44

标签: vim keyboard quotes

我在Windows 7上使用“United States-International”,与gVim 7.3结合使用会导致问题。

在美国 - 国际键盘布局中,键"'是死键,这意味着您可以将它们与另一个键组合使用。例如,按"+a会导致ä'+a中的密钥á。要插入一个双引号,您只需点击"+space

但是当我在gVim中输入"+space时(在编辑模式下)没有任何反应,没有插入任何字符。当我进一步命中空间时,只插入空格。密钥"+space似乎未与一个"字符组合。但是,将"与a ä合并可以正常工作。

当我按"后跟空格时,"被缓冲,直到我输入另一个字符,然后与之合并(如果可能)。例子:

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

有谁知道如何解决这个问题?

BTW,vim中的行为不受影响(通过cmd.exe)

5 个答案:

答案 0 :(得分:3)

我目前的解决方法:使用最新的gVim 6.x版本,那些没有描述的问题。

答案 1 :(得分:2)

执行此操作时,您是处于编辑模式还是命令模式?听起来像你期望命令模式像编辑模式一样工作。命令模式中的引号字符会影响寄存器和剪贴板(例如,用于复制/粘贴)。

答案 2 :(得分:2)

我注意到您可以按"然后按a来生成ä。在我的机器(Windows XP)上,如果我同时按住"<Space>,它似乎可以正常工作。如果我尝试按"然后按<Space>,我会遇到意外行为。

答案 3 :(得分:1)

自7.3以来同样存在问题。 我没有尝试过Yongwei的构建,但我自己构建了Vim(使用Wikia's instructions非常简单)并且问题消失了\ 0 /

编辑过早发言:32位版本运行良好,但64位版本仍然破损:(

编辑解决方法:如果使用OPTIMIZE=SPACE编译,64位版本可以正常工作 在代码的某些部分,使用#pragmas禁用优化,因此真正的解决方案是对需要它的精确代码部分执行相同的操作,以便我们可以为程序的其余部分优化代码。

编辑我正在使用Visual Studio 2010附带的编译器构建vim,显然在优化(see here)时会产生错误的代码。解决方案是安装Visual Studio Express 2013以获取更新的编译器并使用此新版本构建vim 对于它的价值,这里是我用来获得启用python 2.7的vim的简单构建脚本:

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 

答案 4 :(得分:0)

自7.3以来我的官方版本存在同样的问题,包括目前的7.4 beta。我的“解决方案”是使用非官方的Yongwei的构建(也包括所有已知的补丁),你可以在这里找到当前版本(7.3.1251):http://wyw.dcweb.cn/#download

几年前我给VIm的作者发了一封电子邮件,但他不知道这个问题可能来自哪里......

一旦我通过自己编译VIm也解决了这个问题,但是使用Yongwei的构建更容易,因为它们包含了所有的补丁,并且使用了比默认构建更多的功能。

更新时间:2014-08-20

我已经做了一个补丁来解决这个问题:https://code.google.com/p/vim/issues/detail?id=250&sort=-id

(您可以使用MingWMingW64(更简单)和Vim的src文件夹中的Make_ming.mak在Windows下轻松编译VIm。

更新时间:2014-08-22

补丁包含在VIm 7.4.413