我想要一个常用英文单词的词典文件(用于词典补全),但是在网上找不到,于是我想自己做一个。
我手头有一些其他软件的词典文件,用vim打开后,但是里面除了英文单词外还有很多其他的字符乱码。我想知道如何将连续的 非a-zA-Z 字符变成一个换行符?
这样就可以把每个单词变成一行,另外如何删除列数小于5的行(也就是单词长度小于5的单词,这样的单词没必要补全)?还有,如何删除重复的行?
问一个vim文本处理技术的问题
-
- 帖子: 40
- 注册时间: 2009-02-23 15:52
- lilydjwg
- 论坛版主
- 帖子: 4248
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 问一个vim文本处理技术的问题
这个就不用 Vim 了吧。这样试试:
代码: 全选
awk '
BEGIN {
RS="[^A-Za-z]+"
}
{
if(length($0) >= 5){
print $0
}
}
'|sort|uniq
- lilydjwg
- 论坛版主
- 帖子: 4248
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 问一个vim文本处理技术的问题
Vim 里试下以下命令,可能速度有些慢。
代码: 全选
:%s/[^[:alpha:]]\+/\r/g
:v/...../d
:sort u
-
- 帖子: 40
- 注册时间: 2009-02-23 15:52
Re: 问一个vim文本处理技术的问题
非常好,只是第一条命令要执行上百次,不过利用宏很好的完成了。最终完全达到了我要的效果。谢谢你了!lilydjwg 写了:Vim 里试下以下命令,可能速度有些慢。代码: 全选
:%s/[^[:alpha:]]\+/\r/g :v/...../d :sort u