Я пытаюсь перенести мою конфигурацию 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(...)
).
Я понимаю, что охватываетпроблему можно решить тривиально, но здесь я задаю другой вопрос.