Python论坛  - 讨论区

标题:[python-chinese] [UliPad]Impact Command模式中先输入重复次数,再输入指令的初步实现。

2007年02月02日 星期五 00:06

Leo Jay python.leojay在gmail.com
星期五 二月 2 00:06:26 HKT 2007

¹ØÓÚUliPadµÄImpact CommandģʽÖУ¬ÀàËÆvimµÄÏÈÊäÈëÖظ´´ÎÊý£¬ÔÙÊäÈëÖ¸ÁîµÄ
³õ²½ÊµÏÖ¡£

¼´£¬¿ÉÒÔÔÚImpact CommandģʽÖУ¬ÊäÈë3j£¬±íʾÏòÏÂ×ß3ÐУ¬4w±íʾÏòÇ°×ß4¸öµ¥´Ê¡£

ÎÒµÄʵÏÖ·½·¨ÊÇ£¬ÐÞ¸Ä./mixins/Import.pyµÄon_first_charº¯Êý£¬Èç¹ûÒ»¿ªÊ¼ÊäÈëµÄÊý¾ÝÊÇ
Êý×Ö£¬Ôò±£ÁôÊý×Ö£¬µÈµ½ÊäÈëÁËÖ¸Áîºó£¬ÔÙ°ÑÖ¸ÁîÖظ´Ö´Ðжà´Î¡£

Ïê¼û¸½¼þ¡£

Áí£¬ÎÒÓÐһЩµØ·½²»ÊǺÜÃ÷°×¡£ÎªÊ²Ã´mCommand.pyºÍImport.pyÖеÄһЩ´úÂëÊÇÖصġ£
Import.pyºÃÏñÊǶà¸öpyÎļþµÄºÏ¼¯¡£ÕâÊÇΪʲôÄØ£¿

-- 
Best Regards,
Leo Jay
-------------- 下一部分 --------------
Ò»¸ö·ÇÎı¾¸½¼þ±»Çå³ý...
·¢ÐÅÈË: %(who)s
Ö÷Ìâ: %(subject)s
ÈÕÆÚ: %(date)s
´óС: 1870
Url: http://python.cn/pipermail/python-chinese/attachments/20070202/0fcd30db/attachment.bin 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年02月02日 星期五 08:03

limodou limodou在gmail.com
星期五 二月 2 08:03:45 HKT 2007

On 2/2/07, Leo Jay <python.leojay在gmail.com> wrote:
> 关于UliPad的Impact Command模式中,类似vim的先输入重复次数,再输入指令的
> 初步实现。
>
> 即,可以在Impact Command模式中,输入3j,表示向下走3行,4w表示向前走4个单词。
>
> 我的实现方法是,修改./mixins/Import.py的on_first_char函数,如果一开始输入的数据是
> 数字,则保留数字,等到输入了指令后,再把指令重复执行多次。
>
> 详见附件。
>
> 另,我有一些地方不是很明白。为什么mCommand.py和Import.py中的一些代码是重的。
> Import.py好像是多个py文件的合集。这是为什么呢?
>
非常感谢。我会尽快考虑。

Import.py是一个自动生成的文件,它是通过tools/create.py来生成的。一般在win下我是这样运行的:

tools\run.bat

这样会自动把__init__.py中定义的plugin模块,注意都是使用注释来写的,自动合并成一个大的Import.py。这样在导入时就不需要一次导入多个文件(现在有很多),目的是为了加快启动速度。


-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年02月02日 星期五 10:06

limodou limodou在gmail.com
星期五 二月 2 10:06:17 HKT 2007

On 2/2/07, limodou <limodou在gmail.com> wrote:
> On 2/2/07, Leo Jay <python.leojay在gmail.com> wrote:
> > 关于UliPad的Impact Command模式中,类似vim的先输入重复次数,再输入指令的
> > 初步实现。
> >
> > 即,可以在Impact Command模式中,输入3j,表示向下走3行,4w表示向前走4个单词。
> >
> > 我的实现方法是,修改./mixins/Import.py的on_first_char函数,如果一开始输入的数据是
> > 数字,则保留数字,等到输入了指令后,再把指令重复执行多次。
> >
> > 详见附件。
> >
> > 另,我有一些地方不是很明白。为什么mCommand.py和Import.py中的一些代码是重的。
> > Import.py好像是多个py文件的合集。这是为什么呢?
> >
> 非常感谢。我会尽快考虑。
>
> Import.py是一个自动生成的文件,它是通过tools/create.py来生成的。一般在win下我是这样运行的:
>
> tools\run.bat
>
> 这样会自动把__init__.py中定义的plugin模块,注意都是使用注释来写的,自动合并成一个大的Import.py。这样在导入时就不需要一次导入多个文件(现在有很多),目的是为了加快启动速度。
>
>
我仔细想了一下,vi的数字模式不是这么简单的。比如3ia,可以插入3个'a',然后进入编辑模式。这样从命令上看,应该是把次数传给后面要执行的命令,而不是简单地重复三次。当然ulipad并没有考虑到重复执行的问题,而且也不是所有命令都需要次数参数。所以如果ulipad可以识别出要执行的命令支持次数参数,然后把参数传进去,如果不支持就重复多次可能更好一些。但出何知道支持次数参数,可能需要有一种配置或探测的方法才可以。这个可以再想一想。

是否很多人对模拟vi很有兴趣呢?

-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年02月02日 星期五 10:56

Leo Jay python.leojay在gmail.com
星期五 二月 2 10:56:39 HKT 2007

On 2/2/07, limodou <limodou在gmail.com> wrote:
> On 2/2/07, limodou <limodou在gmail.com> wrote:
> > On 2/2/07, Leo Jay <python.leojay在gmail.com> wrote:
> > > 关于UliPad的Impact Command模式中,类似vim的先输入重复次数,再输入指令的
> > > 初步实现。
> > >
> > > 即,可以在Impact Command模式中,输入3j,表示向下走3行,4w表示向前走4个单词。
> > >
> > > 我的实现方法是,修改./mixins/Import.py的on_first_char函数,如果一开始输入的数据是
> > > 数字,则保留数字,等到输入了指令后,再把指令重复执行多次。
> > >
> > > 详见附件。
> > >
> > > 另,我有一些地方不是很明白。为什么mCommand.py和Import.py中的一些代码是重的。
> > > Import.py好像是多个py文件的合集。这是为什么呢?
> > >
> > 非常感谢。我会尽快考虑。
> >
> > Import.py是一个自动生成的文件,它是通过tools/create.py来生成的。一般在win下我是这样运行的:
> >
> > tools\run.bat
> >
> > 这样会自动把__init__.py中定义的plugin模块,注意都是使用注释来写的,自动合并成一个大的Import.py。这样在导入时就不需要一次导入多个文件(现在有很多),目的是为了加快启动速度。
> >
> >
> 我仔细想了一下,vi的数字模式不是这么简单的。比如3ia,可以插入3个'a',然后进入编辑模式。这样从命令上看,应该是把次数传给后面要执行的命令,而不是简单地重复三次。当然ulipad并没有考虑到重复执行的问题,而且也不是所有命令都需要次数参数。所以如果ulipad可以识别出要执行的命令支持次数参数,然后把参数传进去,如果不支持就重复多次可能更好一些。但出何知道支持次数参数,可能需要有一种配置或探测的方法才可以。这个可以再想一想。
>
> 是否很多人对模拟vi很有兴趣呢?
>

嗯,所以我说这只是个初步的实现,我现在对ulipad整个结构还不是很清楚,
所以先实现一些简单些的功能,上上手。

前一段时间我一直在研究vim的源代码,现在对vim的处理方法颇有些心得。
我接下来的目标就是按vim的处理方法给ulipad加入vim的功能。呵呵。


-- 
Best Regards,
Leo Jay

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年02月02日 星期五 11:16

limodou limodou在gmail.com
星期五 二月 2 11:16:07 HKT 2007

> 嗯,所以我说这只是个初步的实现,我现在对ulipad整个结构还不是很清楚,
> 所以先实现一些简单些的功能,上上手。
>
> 前一段时间我一直在研究vim的源代码,现在对vim的处理方法颇有些心得。
> 我接下来的目标就是按vim的处理方法给ulipad加入vim的功能。呵呵。
>
好。

-- 
I like python!
UliPad <>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年02月02日 星期五 21:12

ygao ygao2004在gmail.com
星期五 二月 2 21:12:46 HKT 2007

On 2/2/07, Leo Jay <python.leojay在gmail.com> wrote:
>
> On 2/2/07, limodou <limodou在gmail.com> wrote:
> > On 2/2/07, limodou <limodou在gmail.com> wrote:
> > > On 2/2/07, Leo Jay <python.leojay在gmail.com> wrote:
> > > > 关于UliPad的Impact Command模式中,类似vim的先输入重复次数,再输入指令的
> > > > 初步实现。
> > > >
> > > > 即,可以在Impact Command模式中,输入3j,表示向下走3行,4w表示向前走4个单词。
> > > >
> > > > 我的实现方法是,修改./mixins/Import.py的on_first_char函数,如果一开始输入的数据是
> > > > 数字,则保留数字,等到输入了指令后,再把指令重复执行多次。


我觉得这可以是一个项目,因为有了VIM的源代码的算法,可以少走弯路。基本可行。
建议先研究一下mixins技术,而且它可以重用。所以我觉得目标可以是wxpython下的STC控件
模拟VIM的key mapping.视野可以开阔一些。不要依赖ulipad具体的东西。

> > >
> > > > 详见附件。
> > > >
> > > > 另,我有一些地方不是很明白。为什么mCommand.py和Import.py中的一些代码是重的。
> > > > Import.py好像是多个py文件的合集。这是为什么呢?
> > > >
> > > 非常感谢。我会尽快考虑。
> > >
> > > Import.py是一个自动生成的文件,它是通过tools/create.py来生成的。一般在win下我是这样运行的:
> > >
> > > tools\run.bat
> > >
> > > 这样会自动把__init__.py中定义的plugin模块,注意都是使用注释来写的,自动合并成一个大的Import.py
> 。这样在导入时就不需要一次导入多个文件(现在有很多),目的是为了加快启动速度。
> > >
> > >
> >
> 我仔细想了一下,vi的数字模式不是这么简单的。比如3ia,可以插入3个'a',然后进入编辑模式。这样从命令上看,应该是把次数传给后面要执行的命令,而不是简单地重复三次。当然ulipad并没有考虑到重复执行的问题,而且也不是所有命令都需要次数参数。所以如果ulipad可以识别出要执行的命令支持次数参数,然后把参数传进去,如果不支持就重复多次可能更好一些。但出何知道支持次数参数,可能需要有一种配置或探测的方法才可以。这个可以再想一想。
> >
> > 是否很多人对模拟vi很有兴趣呢?
> >
>
> 嗯,所以我说这只是个初步的实现,我现在对ulipad整个结构还不是很清楚,
> 所以先实现一些简单些的功能,上上手。
>
> 前一段时间我一直在研究vim的源代码,现在对vim的处理方法颇有些心得。
> 我接下来的目标就是按vim的处理方法给ulipad加入vim的功能。呵呵。
>
>
> --
> Best Regards,
> Leo Jay
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




-- 
※※※※※※※※※※※※※※※※※※※※※※※※
My blog:  http://blog.donews.com/ygao
Forum    http://groups.google.com/group/python_study
※※※※※※※※※※※※※※※※※※※※※※※※
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070202/d5f39280/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号