假设我有一个看起来像这样的 todo 文件 (todo.txt):
- 就 Foo 项目给 Tom 打电话
- 完成 Bar 项目的总结并发送给 Thomas
- 让 Susan 把她对 Foo 项目的预测发给我和 Tom
我希望能够编写这些任务并让 Vim 将相应的类别附加到每一行(@ 用于人员,& 用于项目):
Tom(或 Thomas)应该生成 @Tom,Susan 应该生成 @Susan,Foo 应该生成 &Foo 和 Bar &Bar
因此结果应该是:
- 就 Foo 项目给 Tom 打电话@Tom &Foo
- 完成 Bar 项目的总结并发送给 Thomas @Tom &Bar
- 让 Susan 把她对 Foo 项目的预测发送给我和 Tom @Susan @Tom & Foo
我创建了一个字典:
let dictodo = {'Tom': "@Tom", 'Thomas': "@Tom", 'Susan': "@Susan", 'Foo': "&Foo", 'Bar': "&Bar",}
每次我创建一个新任务并在这个特定文件中离开插入模式时,我怎样才能有一个自动命令启动一个函数(:autocmd InsertLeave todo.txt :call Filltodo() ?)
1)这将创建一个包含该行不同单词的列表:我想
let words = split(getline('.'), '\W\+')
2) 使用此列表浏览 dictodo Dictionary
3)并将字典中对应的单词(2的结果)附加到行尾?我想
call setline(line('.'), getline('.') . ' ' . result)
如果我对 1) 和 3) 的解决方案没有弄错,那么 2) 是缺少的部分(我尝试了 keyvar 但失败了)