关掉高亮试试。另外,用 sed / awk 等处理如何?
--
Best regards,
lilydjwg
Linux Vim Python 我的博客
http://lilydjwg.is-programmer.com/
On Nov 17, 3:32 pm, 依云 <lilyd...@gmail.com> wrote:
> On Thu, Nov 17, 2011 at 02:49:24PM +0800, 夏凯 wrote:
> > 我用vim打开一个三十几万字符的行的文件,很卡,有什么参数或者是插件可以改进性能么?因为处理要求必须在一行上,所以不能先拆成多行,再合并,或者可以给我 些资料,哪里有这方面的东西,谢谢。
--
要退订此论坛,请发邮件至 vim-cn+un...@googlegroups.com
更多选项,请通过 http://groups.google.com/group/vim-cn 访问该论坛
2011/11/17 Zind <wzmi...@gmail.com>:
LargeFile 那个东西我曾经试过,结果好像是没什么效果。
--
2011/11/17 依云 <lily...@gmail.com>:
其实不是正则,是我在编辑一个三十万字符的正则,我做的替换只是是s/<((\[^<>\]\*))>/<([^<>]*)>/g,这个不涉及到正则,只是普通的文本替换。
其实不是正则,是我在编辑一个三十万字符的正则,我做的替换只是是s/<((\[^<>\]\*))>/<([^<>]*)>/g,这个不涉及到正则,只是普通的文本替换。
从未发现过有。还是用外部命令或者 Perl 吧,Ruby 和 Lua 也不错,单行
Python 写起来就麻烦了点。可以考虑下我的 RCode 插件:
http://www.vim.org/scripts/script.php?script_id=3705
On Thu, Nov 17, 2011 at 07:01:55PM +0800, Jacky Liu wrote:从未发现过有。还是用外部命令或者 Perl 吧,Ruby 和 Lua 也不错,单行
> 2011/11/17 夏凯 <walk...@gmail.com>
>
> >
> > 其实不是正则,是我在编辑一个三十万字符的正则,我做的替换只是是s/<((\[^<>\]\*))>/<([^<>]*)>/g,这个不涉及到正则,只是普通的文本替换。
> >
>
>
>
> 那不是 RE 是什么?而且是个有问题的 RE,要是你不是故意在写伪代码的话。
>
> Vim 里有非 RE 的替换方式吗?类似于 Python 的 replace() 函数的?
Python 写起来就麻烦了点。可以考虑下我的 RCode 插件:
http://www.vim.org/scripts/script.php?script_id=3705
那么多字不麻烦么。。。看人家 Perl 多简单: :perldo s/abc/def/
datetime 不清楚,不过 Python 的 re 和 Perl 的是不同的,虽然大部分语法一
致。
�� 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 ���ʸ���̳
>>
>
>
>
没看明白这个正则。。
vim编辑大文件加 -n -u NONE 就行了,基本上就是读一遍文件的时间。
我这里一个1.2G的文本打开差不多十几秒,各种搜索替换正则试了一遍,基本都在
20s以内吧。
你这个正则就是瞬间完成,加上%以后19s
2011/11/17 Jacky Liu <bluege...@gmail.com>:
> --
> 要退订此论坛,请发邮件至 vim-cn+un...@googlegroups.com
> 更多选项,请通过 http://groups.google.com/group/vim-cn 访问该论坛
>
--
其实就是把abc替换成def而已,没用正则,所以和正则的效率一点关系都没有,只不过我的整行都是正则,我要把其中一小块正则修改一下。
比如
:s/\.\*/\.+/g
\.\*和\.+都不是正则,我要把当前行的.*都改成.+。
明白你意思了。但是简单归简单,s 命令的第一个 field 一定是按 RE 解释的,不是只有 '\w\+' 才算是 RE。'abc' 比 '\w\+' 快很多是因为内部的优化,很可能就是 RE 内部的优化。
话说这样替换会慢吗?具体什么情况,有多慢?
就是s/<((\[^<>\]\*))>/<([^<>]*)>/g,cpu99%,几十秒,然后被我kill了。
就是s/<((\[^<>\]\*))>/<([^<>]*)>/g,cpu99%,几十秒,然后被我kill了。
就是s/<((\[^<>\]\*))>/<([^<>]*)>/g,cpu99%,几十秒,然后被我kill了。
[] 里第一个 ^ 就是取反的意思,加 \ 反而不对的。
--
Best regards,
lilydjwg
Linux Vim Python 我的博客
http://lilydjwg.is-programmer.com/
台湾那边叫“正规表示式”的。“正则”这个词还真不知道是谁为什么译成这样子的,
也有些地方叫“正规”,或者两者混用,对应英语里的 regular。
我不同意译成“通配表达式”,一是不合英文原文,二是更容易和“通配符”混淆。
--
Best regards,
lilydjwg
Linux Vim Python 我的博客
http://lilydjwg.is-programmer.com/
> 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
正则一词古已有之。
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。
>
> 我不同意译成“通配表达式”,一是不合英文原文,二是更容易和“通配符”混淆。
LargeFile 默认文件大小 20M 以上才起作用。建议楼主试试这个插件,效果确实会好一点。当然不要跟sed比较了
[] 里第一个 ^ 就是取反的意思,加 \ 反而不对的。
2011/11/18 Jacky Liu <bluege...@gmail.com>:
其实我学正则表达式时一直不明白正则是什么意思的。不过这对于正则表达式的使
用并不影响啊。反而,译成通配的话,谁知道英文原文是 regular 呢?说正则是
生造的,其实英文里的 regular 还有 normal 何尝不是呢?