关于vim处理超长文件的性能问题

1,191 views
Skip to first unread message

夏凯

unread,
Nov 17, 2011, 1:49:24 AM11/17/11
to vim...@googlegroups.com
我用vim打开一个三十几万字符的行的文件,很卡,有什么参数或者是插件可以改进性能么?因为处理要求必须在一行上,所以不能先拆成多行,再合并,或者可以给我些资料,哪里有这方面的东西,谢谢。
--
contact me:
MSN: walk...@gmail.com
GTALK: walk...@gmail.com

依云

unread,
Nov 17, 2011, 2:32:23 AM11/17/11
to vim...@googlegroups.com
On Thu, Nov 17, 2011 at 02:49:24PM +0800, 夏凯 wrote:
> 我用vim打开一个三十几万字符的行的文件,很卡,有什么参数或者是插件可以改进性能么?因为处理要求必须在一行上,所以不能先拆成多行,再合并,或者可以给我些资料,哪里有这方面的东西,谢谢。

关掉高亮试试。另外,用 sed / awk 等处理如何?

--
Best regards,
lilydjwg

Linux Vim Python 我的博客
http://lilydjwg.is-programmer.com/

leiking

unread,
Nov 17, 2011, 3:10:14 AM11/17/11
to Vim.cn
把插件都关闭试试,我也遇到过。插件搞的

On Nov 17, 3:32 pm, 依云 <lilyd...@gmail.com> wrote:
> On Thu, Nov 17, 2011 at 02:49:24PM +0800, 夏凯 wrote:

> > 我用vim打开一个三十几万字符的行的文件,很卡,有什么参数或者是插件可以改进性能么?因为处理要求必须在一行上,所以不能先拆成多行,再合并,或者可以给我 些资料,哪里有这方面的东西,谢谢。

Zind

unread,
Nov 17, 2011, 3:20:43 AM11/17/11
to vim...@googlegroups.com
中文维基百科上推荐过一个 LargeFile 的插件,传说它处理大文件或长行比较好,不过没试过。
你可以当回小白鼠,:-)
http://zh.wikipedia.org/wiki/Vim#.E4.B8.8D.E8.B6.B3.E4.B9.8B.E5.A4.84


2011/11/17 夏凯 <walk...@gmail.com>

--
要退订此论坛,请发邮件至 vim-cn+un...@googlegroups.com
更多选项,请通过 http://groups.google.com/group/vim-cn 访问该论坛

夏凯

unread,
Nov 17, 2011, 3:30:38 AM11/17/11
to vim...@googlegroups.com
好的,谢谢,因为要频繁编译,所以要用vi打开,不能用sed和awk,没有插件,高亮我也关了,但是我替换一个正则表达式,整行就95个,cpu就99%了,而且很久都没下来。

2011/11/17 Zind <wzmi...@gmail.com>:

依云

unread,
Nov 17, 2011, 4:45:00 AM11/17/11
to vim...@googlegroups.com
Vim 的正则是出了名的慢。。。试试能不能优化下,或者使用 :perldo s... 代
替。

LargeFile 那个东西我曾经试过,结果好像是没什么效果。

--

夏凯

unread,
Nov 17, 2011, 5:40:41 AM11/17/11
to vim...@googlegroups.com
其实不是正则,是我在编辑一个三十万字符的正则,我做的替换只是是s/<((\[^<>\]\*))>/<([^<>]*)>/g,这个不涉及到正则,只是普通的文本替换。

2011/11/17 依云 <lily...@gmail.com>:

Jacky Liu

unread,
Nov 17, 2011, 6:01:55 AM11/17/11
to vim...@googlegroups.com


2011/11/17 夏凯 <walk...@gmail.com>

其实不是正则,是我在编辑一个三十万字符的正则,我做的替换只是是s/<((\[^<>\]\*))>/<([^<>]*)>/g,这个不涉及到正则,只是普通的文本替换。



 那不是 RE 是什么?而且是个有问题的 RE,要是你不是故意在写伪代码的话。

Vim 里有非 RE 的替换方式吗?类似于 Python 的 replace() 函数的?



--
http://bluegene8210.is-programmer.com/

Jacky Liu

unread,
Nov 17, 2011, 6:20:47 AM11/17/11
to vim...@googlegroups.com


2011/11/17 夏凯 <walk...@gmail.com>

其实不是正则,是我在编辑一个三十万字符的正则,我做的替换只是是s/<((\[^<>\]\*))>/<([^<>]*)>/g,这个不涉及到正则,只是普通的文本替换。




如果是确定的文本替换而且 Python 能用的话,你试试看这样:

:py3 vim.current.line= vim.current.line.replace('xxx', 'yyy')

看看有没有那么慢。



--
http://bluegene8210.is-programmer.com/

依云

unread,
Nov 17, 2011, 6:21:26 AM11/17/11
to vim...@googlegroups.com
On Thu, Nov 17, 2011 at 07:01:55PM +0800, Jacky Liu wrote:
> 2011/11/17 夏凯 <walk...@gmail.com>
>
> >
> > 其实不是正则,是我在编辑一个三十万字符的正则,我做的替换只是是s/<((\[^<>\]\*))>/<([^<>]*)>/g,这个不涉及到正则,只是普通的文本替换。
> >
>
>
>
> 那不是 RE 是什么?而且是个有问题的 RE,要是你不是故意在写伪代码的话。
>
> Vim 里有非 RE 的替换方式吗?类似于 Python 的 replace() 函数的?

从未发现过有。还是用外部命令或者 Perl 吧,Ruby 和 Lua 也不错,单行
Python 写起来就麻烦了点。可以考虑下我的 RCode 插件:
http://www.vim.org/scripts/script.php?script_id=3705

Jacky Liu

unread,
Nov 17, 2011, 6:36:08 AM11/17/11
to vim...@googlegroups.com


2011/11/17 依云 <lily...@gmail.com>

On Thu, Nov 17, 2011 at 07:01:55PM +0800, Jacky Liu wrote:
> 2011/11/17 夏凯 <walk...@gmail.com>
>
> >
> > 其实不是正则,是我在编辑一个三十万字符的正则,我做的替换只是是s/<((\[^<>\]\*))>/<([^<>]*)>/g,这个不涉及到正则,只是普通的文本替换。
> >
>
>
>
>  那不是 RE 是什么?而且是个有问题的 RE,要是你不是故意在写伪代码的话。
>
> Vim 里有非 RE 的替换方式吗?类似于 Python 的 replace() 函数的?

从未发现过有。还是用外部命令或者 Perl 吧,Ruby 和 Lua 也不错,单行
Python 写起来就麻烦了点。可以考虑下我的 RCode 插件:
http://www.vim.org/scripts/script.php?script_id=3705




你说的麻烦是指什么?我上面写的那行 Python 你看有无问题?

我好像看到过介绍文章,说 Python 的一些标准模块是从 Perl 里原样“借”过来的,包括 datetime 和 re。如果是真的话,Python 和 Perl 的 RE 效率应该差不多。

Perl 早期确实以它的 RE 而著称,好像还一度被称作“文本处理语言”。



--
http://bluegene8210.is-programmer.com/

依云

unread,
Nov 17, 2011, 6:43:20 AM11/17/11
to vim...@googlegroups.com
On Thu, Nov 17, 2011 at 07:36:08PM +0800, Jacky Liu wrote:
> 2011/11/17 依云 <lily...@gmail.com>

> >
> > 从未发现过有。还是用外部命令或者 Perl 吧,Ruby 和 Lua 也不错,单行
> > Python 写起来就麻烦了点。可以考虑下我的 RCode 插件:
> > http://www.vim.org/scripts/script.php?script_id=3705
> >
>
> 你说的麻烦是指什么?我上面写的那行 Python 你看有无问题?
>
> 我好像看到过介绍文章,说 Python 的一些标准模块是从 Perl 里原样“借”过来的,包括 datetime 和 re。如果是真的话,Python
> 和 Perl 的 RE 效率应该差不多。
>
> Perl 早期确实以它的 RE 而著称,好像还一度被称作“文本处理语言”。

那么多字不麻烦么。。。看人家 Perl 多简单: :perldo s/abc/def/
datetime 不清楚,不过 Python 的 re 和 Perl 的是不同的,虽然大部分语法一
致。

Jacky Liu

unread,
Nov 17, 2011, 7:00:10 AM11/17/11
to vim...@googlegroups.com

这个我刚才自己试了一下。先找了一个文本文件,然后:

:py3 vim.current.line= ' '.join(vim.current.buffer[:10000])

这样制造了一个长行,字符一百万以上。这一步操作很快,感觉不到延时。

然后在长行里执行 vim 的 s 命令:

:s/ \+/ /g

这一步确实慢,大概十几到几十秒。

然后用 python 做一般替换:

:py3 vim.current.line= vim.current.line.replace('2010', 'xxxx')

也很快,感觉不到延时。

最后用 vim 的 s 命令做一般替换,先撤销上一步操作,然后:

:s/2010/xxxx/g

结果是,虽然能感觉到延时但仍然很快,一秒左右。

所以,如果楼主确实只是做的简单替换但是慢到不可接受,那应该是哪里出了问题。



--
http://bluegene8210.is-programmer.com/

bill

unread,
Nov 17, 2011, 7:07:02 AM11/17/11
to vim...@googlegroups.com
û������������򡣡�
vim�༭���ļ��� -n -u NONE �����ˣ����Ͼ��Ƕ�һ���ļ���ʱ�䡣
������һ��1.2G���ı��򿪲��ʮ���룬���������滻��������һ�飬����
20s���ڰɡ�
������������˲����ɣ�����%�Ժ�19s


�� 2011/11/17 18:40, �Ŀ� д��:
> ��ʵ�������������ڱ༭һ����ʮ���ַ�������������滻ֻ����s/<((\[^<>\]\*))>/<([^<>]*)>/g��������漰������ֻ����ͨ���ı��滻��
>
> 2011/11/17 ����<lily...@gmail.com>:
>> Vim �������dz��������������ܲ����Ż��£�����ʹ�� :perldo s... ��
>> �档
>>
>> LargeFile �Ǹ����������Թ��������ûʲôЧ��
>>
>> On Thu, Nov 17, 2011 at 04:30:38PM +0800, �Ŀ� wrote:
>>> �õģ�лл����ΪҪƵ�����룬����Ҫ��vi�򿪣�������sed��awk��û�в����������Ҳ���ˣ��������滻һ��������ʽ�����о�95����cpu��99%�ˣ����Һܾö�û������
>>>
>>> 2011/11/17 Zind<wzmi...@gmail.com>:
>>>> ����ά��ٿ����Ƽ���һ�� LargeFile �IJ������˵������ļ����бȽϺã�����û�Թ�
>>>> ����Ե���С����:-)
>>>> http://zh.wikipedia.org/wiki/Vim#.E4.B8.8D.E8.B6.B3.E4.B9.8B.E5.A4.84
>>>>
>>>>
>>>> 2011/11/17 �Ŀ�<walk...@gmail.com>
>>>>>
>>>>>
>>>>> ����vim��һ����ʮ�����ַ���е��ļ����ܿ�����ʲô��������Dz�����ԸĽ�����ô����Ϊ����Ҫ�������һ���ϣ����Բ����Ȳ�ɶ��У��ٺϲ������߿��Ը���Щ���ϣ��������ⷽ��Ķ�����лл��


>>>>> --
>>>>> contact me:
>>>>> MSN: walk...@gmail.com
>>>>> GTALK: walk...@gmail.com
>>>>>
>>>>> --

>>>>> Ҫ�˶�����̳���뷢�ʼ��� vim-cn+un...@googlegroups.com
>>>>> ���ѡ���ͨ�� http://groups.google.com/group/vim-cn ���ʸ���̳
>>>>
>>>> --
>>>> Ҫ�˶�����̳���뷢�ʼ��� vim-cn+un...@googlegroups.com
>>>> ���ѡ���ͨ�� http://groups.google.com/group/vim-cn ���ʸ���̳


>>>>
>>>
>>>
>>>
>>> --
>>> contact me:
>>> MSN: walk...@gmail.com
>>> GTALK: walk...@gmail.com
>>>
>>> --

>>> Ҫ�˶�����̳���뷢�ʼ��� vim-cn+un...@googlegroups.com
>>> ���ѡ���ͨ�� http://groups.google.com/group/vim-cn ���ʸ���̳
>>
>> --
>> Best regards,
>> lilydjwg
>>
>> Linux Vim Python �ҵIJ���
>> http://lilydjwg.is-programmer.com/
>>
>> --
>> Ҫ�˶�����̳���뷢�ʼ��� vim-cn+un...@googlegroups.com
>> ���ѡ���ͨ�� http://groups.google.com/group/vim-cn ���ʸ���̳
>>
>
>
>

Jacky Liu

unread,
Nov 17, 2011, 7:15:06 AM11/17/11
to vim...@googlegroups.com


2011/11/17 bill <bil...@gmail.com>
没看明白这个正则。。
vim编辑大文件加 -n -u NONE 就行了,基本上就是读一遍文件的时间。
我这里一个1.2G的文本打开差不多十几秒,各种搜索替换正则试了一遍,基本都在
20s以内吧。
你这个正则就是瞬间完成,加上%以后19s




厉害 :-) 原来还有这个选项啊

我开始怀疑是不是插件在作祟了,一般用户平时都很少关心插件在背后干了些什么,什么后台数据缓冲啊,关联自动命令之类的,都是慢的根源。



--
http://bluegene8210.is-programmer.com/

夏凯

unread,
Nov 17, 2011, 9:25:23 AM11/17/11
to vim...@googlegroups.com
其实就是把abc替换成def而已,没用正则,所以和正则的效率一点关系都没有,只不过我的整行都是正则,我要把其中一小块正则修改一下。
比如
:s/\.\*/\.+/g
\.\*和\.+都不是正则,我要把当前行的.*都改成.+。

2011/11/17 Jacky Liu <bluege...@gmail.com>:

> --
> 要退订此论坛,请发邮件至 vim-cn+un...@googlegroups.com
> 更多选项,请通过 http://groups.google.com/group/vim-cn 访问该论坛
>

--

Jacky Liu

unread,
Nov 17, 2011, 9:42:25 AM11/17/11
to vim...@googlegroups.com


2011/11/17 夏凯 <walk...@gmail.com>

其实就是把abc替换成def而已,没用正则,所以和正则的效率一点关系都没有,只不过我的整行都是正则,我要把其中一小块正则修改一下。
比如
:s/\.\*/\.+/g
\.\*和\.+都不是正则,我要把当前行的.*都改成.+。


明白你意思了。但是简单归简单,s 命令的第一个 field 一定是按 RE 解释的,不是只有 '\w\+' 才算是 RE。'abc' 比 '\w\+' 快很多是因为内部的优化,很可能就是 RE 内部的优化。

话说这样替换会慢吗?具体什么情况,有多慢?

--
http://bluegene8210.is-programmer.com/

夏凯

unread,
Nov 17, 2011, 9:52:39 AM11/17/11
to vim...@googlegroups.com
就是s/<((\[^<>\]\*))>/<([^<>]*)>/g,cpu99%,几十秒,然后被我kill了。

2011/11/17 Jacky Liu <bluege...@gmail.com>:

Jacky Liu

unread,
Nov 17, 2011, 9:53:21 AM11/17/11
to vim...@googlegroups.com

明白你意思了。但是简单归简单,s 命令的第一个 field 一定是按 RE 解释的,不是只有 '\w\+' 才算是 RE。'abc' 比 '\w\+' 快很多是因为内部的优化,很可能就是 RE 内部的优化。

话说这样替换会慢吗?具体什么情况,有多慢?




牢骚一下,总是听到 “正则正则” 的,蛋疼 。。。 这个词真是属于狗屁不通的硬译,不知是谁干的。生造了一个词出来,非音非义,不伦不类。应该译成 “通配表达式”。我都讲 RE,“正则” 从来都不用。

记得第一次看见这个词的时候,想到的是矩阵论里的 正定阵、正交阵,就觉得计算机真是高深的科学。现在回想起来,蛋就是这么扯的。



--
http://bluegene8210.is-programmer.com/

Jacky Liu

unread,
Nov 17, 2011, 9:58:19 AM11/17/11
to vim...@googlegroups.com


2011/11/17 夏凯 <walk...@gmail.com>

就是s/<((\[^<>\]\*))>/<([^<>]*)>/g,cpu99%,几十秒,然后被我kill了。


有意思。。。我再试试

--
http://bluegene8210.is-programmer.com/

Jacky Liu

unread,
Nov 17, 2011, 10:02:19 AM11/17/11
to vim...@googlegroups.com


2011/11/17 夏凯 <walk...@gmail.com>

就是s/<((\[^<>\]\*))>/<([^<>]*)>/g,cpu99%,几十秒,然后被我kill了。


‘^’ 没加 反斜杠 是会按行首解释的,但是这样应该也不致于会慢 。。。

Jacky Liu

unread,
Nov 17, 2011, 10:13:00 AM11/17/11
to vim...@googlegroups.com


2011/11/17 夏凯 <walk...@gmail.com>

就是s/<((\[^<>\]\*))>/<([^<>]*)>/g,cpu99%,几十秒,然后被我kill了。


这是我用的命令:


s/<((\[\^<>\]\*))>/<([^<>]*)>/g

把下面的字串:

<(([^<>]*))>

替换成:

<([^<>]*)>

一行内替换了三万一千多个,一共两秒左右。^ 前面没加反斜杠的话,其实也没影响。

你碰上问题喽,再找找吧。



--
http://bluegene8210.is-programmer.com/

tocer

unread,
Nov 17, 2011, 9:48:57 PM11/17/11
to vim...@googlegroups.com
LargeFile 默认文件大小 20M 以上才起作用。建议楼主试试这个插件,效果确实会好一点。当然不要跟sed比较了

依云

unread,
Nov 17, 2011, 11:41:09 PM11/17/11
to vim...@googlegroups.com

[] 里第一个 ^ 就是取反的意思,加 \ 反而不对的。

--
Best regards,
lilydjwg

Linux Vim Python 我的博客
http://lilydjwg.is-programmer.com/

依云

unread,
Nov 17, 2011, 11:46:41 PM11/17/11
to vim...@googlegroups.com
On Thu, Nov 17, 2011 at 10:53:21PM +0800, Jacky Liu wrote:
> >
> >
> > 明白你意思了。但是简单归简单,s 命令的第一个 field 一定是按 RE 解释的,不是只有 '\w\+' 才算是 RE。'abc' 比
> > '\w\+' 快很多是因为内部的优化,很可能就是 RE 内部的优化。
> >
> > 话说这样替换会慢吗?具体什么情况,有多慢?
> >
> >
>
>
> 牢骚一下,总是听到 “正则正则” 的,蛋疼 。。。 这个词真是属于狗屁不通的硬译,不知是谁干的。生造了一个词出来,非音非义,不伦不类。应该译成
> “通配表达式”。我都讲 RE,“正则” 从来都不用。
>
> 记得第一次看见这个词的时候,想到的是矩阵论里的 正定阵、正交阵,就觉得计算机真是高深的科学。现在回想起来,蛋就是这么扯的。

台湾那边叫“正规表示式”的。“正则”这个词还真不知道是谁为什么译成这样子的,
也有些地方叫“正规”,或者两者混用,对应英语里的 regular。

我不同意译成“通配表达式”,一是不合英文原文,二是更容易和“通配符”混淆。

--
Best regards,
lilydjwg

Linux Vim Python 我的博客
http://lilydjwg.is-programmer.com/

依云

unread,
Nov 17, 2011, 11:48:29 PM11/17/11
to vim...@googlegroups.com
On Fri, Nov 18, 2011 at 12:46:41PM +0800, 依云 wrote:

> On Thu, Nov 17, 2011 at 10:53:21PM +0800, Jacky Liu wrote:
> > >
> > >
> > > 明白你意思了。但是简单归简单,s 命令的第一个 field 一定是按 RE 解释的,不是只有 '\w\+' 才算是 RE。'abc' 比
> > > '\w\+' 快很多是因为内部的优化,很可能就是 RE 内部的优化。
> > >
> > > 话说这样替换会慢吗?具体什么情况,有多慢?
> > >
> > >
> >
> >
> > 牢骚一下,总是听到 “正则正则” 的,蛋疼 。。。 这个词真是属于狗屁不通的硬译,不知是谁干的。生造了一个词出来,非音非义,不伦不类。应该译成
> > “通配表达式”。我都讲 RE,“正则” 从来都不用。
> >
> > 记得第一次看见这个词的时候,想到的是矩阵论里的 正定阵、正交阵,就觉得计算机真是高深的科学。现在回想起来,蛋就是这么扯的。
>
> 台湾那边叫“正规表示式”的。“正则”这个词还真不知道是谁为什么译成这样子的,
> 也有些地方叫“正规”,或者两者混用,对应英语里的 regular。
>
> 我不同意译成“通配表达式”,一是不合英文原文,二是更容易和“通配符”混淆。

查到了: http://www.zdic.net/cd/ci/5/ZdicE6ZdicADZdicA3304008.htm
正则一词古已有之。

Jacky Liu

unread,
Nov 18, 2011, 12:45:44 AM11/18/11
to vim...@googlegroups.com


2011/11/18 依云 <lily...@gmail.com>

On Fri, Nov 18, 2011 at 12:46:41PM +0800, 依云 wrote:

> On Thu, Nov 17, 2011 at 10:53:21PM +0800, Jacky Liu wrote:
> > >
> > >
> > > 明白你意思了。但是简单归简单,s 命令的第一个 field 一定是按 RE 解释的,不是只有 '\w\+' 才算是 RE。'abc' 比
> > > '\w\+' 快很多是因为内部的优化,很可能就是 RE 内部的优化。
> > >
> > > 话说这样替换会慢吗?具体什么情况,有多慢?
> > >
> > >
> >
> >
> > 牢骚一下,总是听到 “正则正则” 的,蛋疼 。。。 这个词真是属于狗屁不通的硬译,不知是谁干的。生造了一个词出来,非音非义,不伦不类。应该译成
> > “通配表达式”。我都讲 RE,“正则” 从来都不用。
> >
> > 记得第一次看见这个词的时候,想到的是矩阵论里的 正定阵、正交阵,就觉得计算机真是高深的科学。现在回想起来,蛋就是这么扯的。
>
> 台湾那边叫“正规表示式”的。“正则”这个词还真不知道是谁为什么译成这样子的,
> 也有些地方叫“正规”,或者两者混用,对应英语里的 regular。
>
> 我不同意译成“通配表达式”,一是不合英文原文,二是更容易和“通配符”混淆。



相反,我觉得就是因为 “通配符” 的存在,才应该这么译。自然语言没那么精准,尤其是中文,这里不能指望它再去区分 globbing 跟 RE matching 的区别,但是大致意思是符合的。

中英文的词汇或语素远不是一一对应的关系,试图寻找这种一一对应关系的翻译方式大多显得生硬,像 “正则” 这种尤其失败。regular 的含义大概有 “按一定范式指定的” 和 “反复使用的” 两重意思,中文没有对应的语素,我觉得最好是按事物的本质或特征来译,“通配” 就能很好得表示它的特征,符合道理而且不会跟其它词混淆。次一点是按字面意思直译,也应该找一个意思接近一点的语素,让人看得懂是底线,而 “正则” 就胡扯了,大概是要生造一个语素来跟 regular 对应。至于它在古语里的意思,其实跟 regular 八杆子打不着,我怀疑在现代汉语里是否还有这个词存在。

初次接触的人就苦了,除非已经知道“正则”这个词是什么意思(通过花时间去看资料),否则恐怕要猜破头。不知还会有多少时间浪费在这个上头,跟我当年一样。


--
http://bluegene8210.is-programmer.com/

Jacky Liu

unread,
Nov 18, 2011, 12:54:58 AM11/18/11
to vim...@googlegroups.com


2011/11/18 tocer <tocer...@gmail.com>

LargeFile 默认文件大小 20M 以上才起作用。建议楼主试试这个插件,效果确实会好一点。当然不要跟sed比较了




并非文件过大的原因,一行三十万个字符其实不大。我试的结果并不慢,楼主的 vim 一定是哪里出了问题。

我同意 leiking 说的,把插件都毙掉试试。我试的时候没用任何外部插件。



--
http://bluegene8210.is-programmer.com/

Jacky Liu

unread,
Nov 18, 2011, 1:18:14 AM11/18/11
to vim...@googlegroups.com

[] 里第一个 ^ 就是取反的意思,加 \ 反而不对的。


是 。。。

另外,楼主的那个 pattern 其实木有写错, ^ 在里头会按字面意思解释,因为 “行首” 和 “非” 都解释不通。那里没有岐义,加不加斜杠其实没区别。

--
http://bluegene8210.is-programmer.com/

夏凯

unread,
Nov 18, 2011, 2:09:29 AM11/18/11
to vim...@googlegroups.com
谢谢大家,这个问题今天重现不了了,我也很奇怪,不至于会这样的。因为我的里面是\[\],所以里面的^不是取反,因为不是行首,所以就是普通字符。

2011/11/18 Jacky Liu <bluege...@gmail.com>:

Yiming Hu

unread,
Nov 18, 2011, 4:35:37 AM11/18/11
to vim...@googlegroups.com
 看了那个汉典的解释,真心怀疑是徐光启翻译几何原本时造出来的词。
同意Jacky Liu的分析,不过提个醒,正则这个词出现的领域是不少的,至少就我所知,分析力学以及一些数学领域这个词是在广泛使用着的。但是两个正则的意思又完全不同,特别是像我这样先学物理再接触vim的人,第一反应就是“擦”

依云

unread,
Nov 21, 2011, 3:45:41 AM11/21/11
to vim...@googlegroups.com

其实我学正则表达式时一直不明白正则是什么意思的。不过这对于正则表达式的使
用并不影响啊。反而,译成通配的话,谁知道英文原文是 regular 呢?说正则是
生造的,其实英文里的 regular 还有 normal 何尝不是呢?

Kent

unread,
Nov 21, 2011, 7:42:16 AM11/21/11
to vim...@googlegroups.com

 
大文件还是用其他文本处理的工具来的方便一些,毕竟它们着重在“处理”,而vim是"编辑"。 比编辑的快捷,sed/awk 比不了vi,但对于处理vim效率上恐怕不及前者。

即使你需要频繁编译用awk/sed也没问题阿,保存完了编译不就得了,还是说你编译必须只能通过vim一条路走?不会吧?


2011/11/21 依云 <lily...@gmail.com>

夏凯

unread,
Nov 22, 2011, 12:33:10 AM11/22/11
to vim...@googlegroups.com
其实文件不大,50k左右,主要是比较长,那行就有30K了,而且是配置文件,我随时要做一些我无法预期的修改。

2011/11/21 Kent <kent...@gmail.com>:

--

Reply all
Reply to author
Forward
0 new messages