我在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)
答案 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
(您可以使用MingW或MingW64(更简单)和Vim的src文件夹中的Make_ming.mak在Windows下轻松编译VIm。
更新时间:2014-08-22
补丁包含在VIm 7.4.413
中