我正在尝试将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()
函数存在吗?
编辑:我不是在问如何从Python(即vim.command(...)
)调用Vimscript代码。
我知道可以用这种方法来解决包含的问题,但是我想问一个不同的问题。在这里提问。