Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 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 | |
| 5 | let deleted = 0 |
| 6 | |
| 7 | " Start below the word count. |
| 8 | let lnum = 2 |
| 9 | while 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 |
Bram Moolenaar | 2a953fc | 2019-01-26 17:41:47 +0100 | [diff] [blame] | 18 | if lnum%1000 == 0 |
| 19 | echon "\r Processing line ".lnum. printf(" [ %02d%%]", lnum*100/line('$')) |
| 20 | endif |
Bram Moolenaar | 5c73622 | 2010-01-06 20:54:52 +0100 | [diff] [blame] | 21 | let lnum += 1 |
| 22 | endwhile |
| 23 | |
| 24 | if deleted == 0 |
| 25 | echomsg "No duplicate words found" |
| 26 | elseif deleted == 1 |
| 27 | echomsg "Deleted 1 duplicate word" |
| 28 | else |
| 29 | echomsg printf("Deleted %d duplicate words", deleted) |
| 30 | endif |