Перевести строку кода Vim ("") в фактический номер кода клавиши (^ Z = 26) в Python - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь перенести мою конфигурацию Vim 8.0 (~/.vimrc) на Python.То есть я устанавливаю параметры Vim в качестве полей для vim.options сопоставления:

import vim

# set wildmenu
vim.options['wildmenu'] = True
# set wildcharm=<C-Z>
vim.options['wildcharm'] = ord('^Z') # [Literal ^Z (ASCII 26), CTRL-V CTRL-Z]
# set wildchar=<F10>
vim.options['wildchar'] = -15211 # extracted from Vim

Параметры wildchar и wildcharm Vim имеют тип "число".Насколько я понимаю, они ожидают своего рода код ключа (по крайней мере, в простых случаях это это код ASCII рассматриваемого символа).

В Vimscript, когда вы что-то говоритеподобно set wildchar=<F10>, Vim переводит текстовое представление, специфичное для Vim, в числовой код клавиши.В Python это не так (vim.options['wildchar'] = '<F10>' дает ошибку TypeError).

Для простых случаев можно использовать ord() для строки, содержащей буквенно типизированный управляющий символ (см. Выше с помощью Ctrl-Z).Однако такая клавиша, как F10, выдает несколько символов, поэтому я не могу использовать ord().

В конце я хочу сделать что-то вроде этого:

vim.options['wildchar'] = magic('<F10>')

Существует ли эта magic() функция?


Редактировать: я не спрашиваю, как вызвать код Vimscript из Python (то есть vim.command(...)).
Я понимаю, что охватываетпроблему можно решить тривиально, но здесь я задаю другой вопрос.

1 Ответ

0 голосов
/ 27 ноября 2018
:python vim.command("set wildchar=<F10>")

См. vim.command документацию для более подробного объяснения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...