Eric's Blog 时光荏苒,岁月如梭

Vim 字典补全插件

2020-03-14
Eric Wong
 

起因

因为需要书写一些英文文档,有些英文单词太长,因此需要一个英文单词补全工具。 之前在 Linux 系统下面使用了 look 命令,和 noco-look 插件。但是换到 Windows 下之后,发现居然没有 look 这个命令。

恰巧,最近在学习 rust,于是就用 rust 简单写了一个字典补全的 Vim 插件:vim-async-dict

简单实现

因为现有的工具已经非常齐全了,因此并未从头实现,补全框架使用的是 deoplete, 只需要新建一个 dict source:

from os.path import expanduser, expandvars
import re
import subprocess
from .base import Base

class Source(Base):
    def __init__(self, vim):
        Base.__init__(self, vim)

        self.name = 'dict'
        self.mark = '[D]'
        self.min_pattern_length = 3

命令行工具

有了 source 之后,需要在新建一个命令行工具,接受 2 个参数,查询词和字典文件路径:

impl Config {
    #[allow(dead_code)]
    fn new(args: &[String]) -> Result<Config, &'static str> {
        if args.len() < 3 {
            return Err("not enough arguments");
        }
        let query = args[1].clone();
        let filename = args[2].clone();
        Ok(Config { query, filename })
    }
}

延生阅读

分享到:

评论

目前只支持使用邮件参与评论。