2015-03-02 3 views
2

В моей повседневной работе в режиме вставки Vim я использую свой родной язык раскладки клавиатуры (HR), к которому я привык. В нормальном режиме для меня более практично быть в раскладке клавиатуры на английском языке (EN), поскольку у нее есть скобки [] и изогнутые круглые скобки {}, и, как правило, ярлыки Vim лучше используют его.Изменение раскладки клавиатуры между вставкой и обычным режимом

Есть ли способ переключать режимы клавиатуры автоматически между режимами?

+0

В стороне, знаете ли вы о [vi.se] (http://vi.stackexchange.com/), который посвящен только вопросам vi и vim. Поскольку это не связано конкретно с программированием, оно может быть лучше подходит для другого сайта. –

+0

@MichaelT - Совершенно в курсе. Не вдаваясь в дискуссию о том, являются ли здесь вопросы vim, так как это уже несколько раз избито до смерти, я буду медленно перенаправлять там вопросы vim, но пока этот сайт не получит больше пользователей, я оставляю их здесь. – Rook

ответ

4

Vim может использовать keymap файлы для перевода набранных ключей в режиме вставки; он даже поставляется с хорватским ($VIMRUNTIME/keymap/croatian.vim)! :help mbyte-keymap объясняет это так:

Когда клавиатура не производит символы, которые вы хотите, чтобы войти в свой текст, вы можете использовать опцию «» раскладки клавиатуры. Это переведет один или несколько символов (английский) на другой (неанглийский) символ. Это происходит только при при вводе текста, а не при вводе команд Vim. Это позволяет избежать переключения между двумя настройками клавиатуры.

В принципе, эта конфигурация должна сделать это (вместе с помощью раскладки клавиатуры английский в операционной системе):

:set keymap=croatian 

Любой вы используете его так:

В Вставка и Режим командной строки вы можете использовать CTRL-^для переключения между использованием карты клавиатуры или нет. Этот флаг запоминается для режима Вставки с параметром «iminsert».

+0

Привет. Спасибо за ответ. Я не могу сказать, что я все еще понимаю, что делает клавиатура. Редактируя файл ключевой карты хорвата, я вижу, что это имеет какое-то отношение к кодировкам, но для жизни меня, вместе с темами справки, на которые вы указали, я до сих пор не могу это понять. Я фактически использую раскладку клавиатуры HR в операционной системе, как мой макет по умолчанию. Поэтому я пытаюсь, чтобы Vim переключился на EN в нормальном режиме. – Rook

+0

Пожалуйста, если вы можете дать дополнительные разъяснения. – Rook

+0

Ну, так будет, это будет сложно. Я бы предложил сначала попробовать использовать Vim с макетом EN и использовать предоставленную хорватскую клавиатуру для режима вставки. Если это тебе уже подходит, отлично. –

0

Если вам действительно нужно изменить раскладку клавиатуры по умолчанию не вставить, но в нормальном режиме (и, вероятно, другие режимы, а), вы не можете использовать раскладки клавиатуры функцию. Вместо этого вы должны использовать внешние команды для переключения языка ввода операционной системы (если это возможно в Windows, возможно, через how to change keyboard layout via command line cmd exe on windows xp). Эскиз:

:autocmd InsertLeave * call system('locale-change EN') 
:autocmd InsertEnter * call system('locale-change HR') 
Смежные вопросы