是否可以在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@H_403_2@并得到这个结果索引:
Berlin : 1 London : 1,2 New-York : 2,...,100 Paris : 1,100@H_403_2@并且,如果可能,标记方法是什么?
我已经阅读过有关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@H_403_2@所以你可以在你希望的所有单词上调用这个函数(或者编写一个脚本来执行此操作)并将输出定向到文件.也许不是很优雅,但很好的自足.
希望这有助于而不是阻碍.