gVim + US-International: не сочетать мертвые ключи с пробелом - PullRequest
9 голосов
/ 15 октября 2010

Я использую "United States-International" в Windows 7, что вызывает проблемы в сочетании с gVim 7.3.

В раскладке клавиатуры US-International клавиши " и ' являются мертвыми клавишами, то есть вы можете комбинировать их с другой клавишей. Например, нажатие "+a приводит к ä, а клавиши '+a - á. Чтобы вставить одну двойную кавычку, просто нажмите "+space.

Но когда я ввожу "+space в gVim (в режиме редактирования), ничего не происходит, символ не вставляется. Когда я в дальнейшем нажимаю пробел, вставляются только пробелы. Кажется, что ключи "+space не объединены в один " символ. Однако сочетание " с a до ä работает как положено.

Когда я нажимаю " с последующими пробелами, " буферизуется до тех пор, пока я не введу другой символ, а затем объединится с этим (если это возможно). Примеры: * * тысяча двадцать-один

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

Кто-нибудь знает, как решить эту проблему?

Кстати, на поведение vim это не влияет (через cmd.exe)

Ответы [ 5 ]

3 голосов
/ 15 сентября 2011

Мой текущий обходной путь: используйте последнюю версию gVim 6.x, у которой нет описанной проблемы.

2 голосов
/ 15 октября 2010

Я заметил, что вы можете нажать ", а затем a, чтобы получить ä.На моей машине (Windows XP), если я нажимаю и удерживаю " и <Space> одновременно, это похоже на работу.Если я пытаюсь нажать ", а затем <Space>, я получаю неожиданное поведение.

2 голосов
/ 15 октября 2010

Когда вы это делаете, вы находитесь в режиме редактирования или командном режиме? Мне кажется, что вы ожидаете, что командный режим будет работать как режим редактирования. Символ кавычки в командном режиме влияет на регистры и буфер обмена (например, для копирования / вставки).

1 голос
/ 12 ноября 2013

Та же проблема здесь с 7.3. Я не пробовал сборки Yongwei, но сам собрал Vim (что было довольно просто, используя инструкции Викии ), и проблема исчезла \ 0 /

Редактировать Говорили слишком рано: 32-битная версия работает нормально, но 64-битная версия все еще не работает: (

Редактировать Обходной путь: 64-битная версия работает нормально, если скомпилирована с OPTIMIZE=SPACE
В некоторых частях кода оптимизация отключена с помощью #pragmas, поэтому реальным решением было бы сделать то же самое для точных частей кода, которые в этом нуждаются, чтобы мы могли оптимизировать код для остальной части программы.

Редактировать Я собирал vim, используя компилятор, который поставляется с Visual Studio 2010, который, по-видимому, может генерировать неправильный код при оптимизации ( см. Здесь ). Решением было установить Visual Studio Express 2013, чтобы получить обновленный компилятор и собрать vim с использованием этой новой версии.
Для чего стоит этот простой сценарий сборки, который я использовал для получения vim с поддержкой Python 2.7:

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 
0 голосов
/ 21 июля 2013

У меня такая же проблема с официальными сборками, начиная с 7.3 и включая текущую бета-версию 7.4.Мое "решение" состоит в том, чтобы использовать неофициальные сборки 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

(вы можете легко скомпилировать VIm под окнами, используя MingW или MingW64 (проще) и Make_ming.mak в папке src Vim)

ОБНОВЛЕНИЕ: 2014-08-22

Патч включен в VIm 7.4.413

...