加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 18:56:40 所属栏目:安全 来源:网络整理
导读:是否可以在vim中索引纯文本文件(书籍),例如: 1. This line contains the words : London,Berlin,Paris2. In this line,I write about : New-York,London,Berlin...100. And,to conclude,my last comments about : New-York,Paris 并得到这个结果索引: Berl
是否可以在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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读