返回首页 - Notes - 2017

给 Vim 生成 Dict 文件


第一步

先从 Vim 运行时复制一份某语言的语法文件,比如 ruby.vim

手动编辑该文件,做下简单的处理,确保最终该文件只存在语言关键字,而不再有其他任何无关词汇


第二步

#!/usr/bin/env ruby

#
# 从 Vim 运行时剥离出语法文件
# 先手工编辑该文件做简单处理,只保留全部关键字
# 按空格分隔,可分布于多行,也允许存在空白行
#

file = ARGV&.first

unless file
  puts '需提供一个参数,形如 html.vim'
  exit
end

words = []

data = File.readlines(file)
data.each do |line|
  line = line.strip.split # 每行按空格分割成词组
  words.concat(line)      # 将每行的词组附加到一起
end

words.uniq!  # 去重
words.sort!  # 排序

# 输出 dict 文件
save_file = "#{File.basename(file, '.*')}.dict"
File.open(save_file, 'w') { |f| f.write(words.join("\n")) }

puts "处理完成,生成的 #{save_file} 文件有 #{words.size} 个词汇"
  1. 复制上面的代码,保存为 generate_dict
  2. chmod a+x generate_dict
  3. ./generate_dict ruby.vim

第三步

Vim 配置文件中添加下面的语句

au FileType ruby set dict+=your_dict_file_save_path/ruby.dict
set complete+=k

date:2017-03-27