【发布时间】:2012-09-29 01:05:31
【问题描述】:
假设我有一个 todo 文件 (todo.txt),它看起来像这样:
- 就 Foo 项目给 Tom 打电话
- 完成 Bar 项目的总结并发送给 Thomas
- 让 Susan 向我和 Tom 发送她对 Foo 项目的预测
我希望能够编写这些任务并让 Vim 将相应的类别附加到每一行(@ 代表人员,& 代表项目):
Tom(或 Thomas)应该生成 @Tom, 苏珊应该生成@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 的 result)附加到行尾?我想
call setline(line('.'), getline('.') . ' ' . result)
如果我对 1) 和 3) 的解决方案没有弄错,那么 2) 是缺少的部分(我尝试了 keyvar 但失败了)
【问题讨论】:
标签: vim