微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Vim:如何索引纯文本文件?

是否可以在vim中索引纯文本文件(书籍),例如:
1. This line contains the words : London,Berlin,Paris
2. In this line,I write about : New-York,London,Berlin
...
100. And,to conclude,my last comments about : New-York,Paris

并得到这个结果索引:

Berlin : 1
London : 1,2
New-York : 2,...,100
Paris : 1,100

并且,如果可能,标记方法是什么?
我已经阅读过有关ctags的内容,但它似乎专注于特定语言(并说实话,对我的需求有点过分)

我冒昧地编写了以下函数,基于使用:g / STRING /#命令来获取匹配项.我将此命令的结果读入列表,然后处理它以返回匹配行号的列表:
function! IndexByWord( this_word )
    redir => result
    sil! exe ':g/' . a:this_word . '/#'
    redir END
    let tmp_list = split(strtrans(result),"\\^\@ *")
    let res_list = []
    call map(tmp_list,'add(res_list,matchstr(v:val,"^[0-9]*"))')
    let res = a:this_word . ' : ' . string(res_list)
    let res = substitute(res,"[\\[\\]\\']","","g")
    echo res
endfunction

所以你可以在你希望的所有单词上调用这个函数(或者编写一个脚本来执行此操作)并将输出定向到文件.也许不是很优雅,但很好的自足.

希望这有助于而不是阻碍.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐