xref: /vim-8.2.3635/runtime/spell/fixdup.vim (revision 2a953fcf)
1" Vim script to fix duplicate words in a .dic file  vim: set ft=vim:
2"
3" Usage: Edit the .dic file and source this script.
4
5let deleted = 0
6
7" Start below the word count.
8let lnum = 2
9while lnum <= line('$')
10  let word = getline(lnum)
11  if word !~ '/'
12    if search('^' . word . '/', 'w') != 0
13      let deleted += 1
14      exe lnum . "d"
15      continue		" don't increment lnum, it's already at the next word
16    endif
17  endif
18  if lnum%1000 == 0
19    echon "\r Processing line ".lnum. printf(" [ %02d%%]", lnum*100/line('$'))
20  endif
21  let lnum += 1
22endwhile
23
24if deleted == 0
25  echomsg "No duplicate words found"
26elseif deleted == 1
27  echomsg "Deleted 1 duplicate word"
28else
29  echomsg printf("Deleted %d duplicate words", deleted)
30endif
31