Я не верю, что есть простой способ сделать это.Мое лучшее предложение - использовать этот маленький скрипт на python для генерации хэша Vim:
#!/usr/bin/python
# Assumes the vim source code is available in ./vim_src
# save this as vimoptions.py
import re
import os
vim_src_dir = './vim_src'
matcher = re.compile(r'^\s*{"(?P<longname>[^"]+)",\s*"(?P<shortname>[^"]+)",')
fh = open(os.path.join(vim_src_dir, 'src/option.c')
option_dict = {}
for line in fh:
m = matcher.match(line)
if m is not None:
option_dict[m.group('longname')] = m.group('shortname')
fh.close()
print "let option_dict = {"
for key, value in option_dict.iteritems():
print '\t\t\t\\ "%s": "%s",' % (key, value)
print '\t\t\t\\ }'
Запустите его с python vimoptions.py > vimoptions.vim
Затем откройте vim и :source vimoptions.vim
.Затем вы можете сделать что-то вроде этого, чтобы преобразовать ваш список (при условии, что список является переменной, а не текстом: отредактируйте, если это не так):
for index in range(len(optlist))
if has_key(option_dict, optlist[index])
let optlist[index] = option_dict[optlist[index]]
endif
endfor
Код Python немного ненадежен (он предполагает довольно жесткий синтаксис в файле options.c).Если бы я хотел, чтобы это было более надежным и поддерживаемым, я бы использовал API Python C для компиляции options.c в модуль python и импортировал таблицу в некоторый код python для анализа.Это может быть намного сложнее, чем вам сейчас нужно.