Differences between revisions 3 and 4
Revision 3 as of 2004-08-26 23:50:33
Size: 9064
Editor: Zoom.Quiet
Comment:
Revision 4 as of 2004-09-21 16:53:41
Size: 9200
Editor: Zoom.Quiet
Comment: 收集同志们使用Vim 开发Python 的经验,技巧,故事等等'''
Deletions are marked like this. Additions are marked like this.
Line 198: Line 198:
=== 我们的经验 ===
'''收集同志们使用Vim 开发Python 的经验,技巧,故事等等'''
 * ["VimPython"] -- ["xyb"]的文章

- 作者: 刘鑫 - 发源地: [http://python.cn/ Python中文社区]

TableOfContents

.. Contents:: 索引

注意


这里所讲的,都是最最简单的技巧和经验。它不能使你成为VIM或Python高手,本文的目的在于帮助绝对菜鸟用最短的时间选择适合自己的工具,以及学会将配置VIM为自己的主要Python开发工具。这样,他可以有一个尽可能好的开始:)。

最基本选择


如果你希望在最短的时间内开始Python生涯,那么, 我推荐Python内置的命令行模式和IDLE:

- 前者是最直接最轻巧的工作界面,适合每次只在Python上运行单行脚本和表达式的朋友——很多时候,我就是这么用Python的; - 后者是Python内置的GUI界面IDE,虽然不够华丽,但非常实用,它可以设置断点,跟踪调试Python脚本,根据脚本设定订制其编码(如果中文支持不够理想,请安装CJKPython扩展)。甚至当你拥有了更强大的IDE以后,也不应该忘记,最朴素最实用的IDLE,时刻伴随着你。

更快,更好,更多


随着工作的展开,你越来越离不开Python了,我想很多朋友都不会再满足于只使用IDLE。毕竟,它太慢了,而且不够华丽。

"PythonWin"的IDE

===================== PythonWin中有一个很出色的IDE,功能强大而且齐全,速度也非常快,但它对多内码的支持非常差,如果你只说英语,这倒不是什么大问题。当然,如果你也不在乎它时不时的在内存管理上犯点儿错误……

强悍的Emacs

===================== 文本编辑器的至尊王者,只用过Windows记事本的人永远也没办法想像它的强大。但是,它也不是很容易学习的。如果你需要一个“无所不能”的工具,并且不在乎付出大量的学习时间,那么这是一个不错的选择。

VIM

===================== 轻巧快捷,与Emacs相近的扩充能力,跨平台,多语言,久经考验。在我用过的各种文本编辑器中,它是唯一一个有资格与Emacs相比的。由于它比较容易学习,我推荐新手从这里开始。

下载和安装VIM

请访问http://vim.sourceforge.net/,下载新版的VIM,

为了抗议欧盟的新版权法,近日来VIM的首页换成了一篇声明。阅读过首页(就算是为了表达我们对这些了不起的Hacker们的尊重吧)之后,

您可以从http://vim.sourceforge.net/index2.php进入网站的正式界面。

在这里,可以下载最新版的VIM程序、运行时文件、安装包、扩充脚本等等。 这里,我们需要一个最新版的VIM二进制程序(也可以直接下载安装包,不过,对Windows用户我有别的建议:))。

Vim脚本

`

然后请在这个网站上按“Python”关键字搜索与Python有关的脚本,这里我们需要

- 一个“RunScript.vim”, - 一个“Python_fold.vim”,

你也可以根据喜好和需要多下载一些。

另外,在sourceforge上还可以搜到cream-vim项目(搜索vim关键字,cream就是第二项),他们提供的VIM不是太稳定,但是Windows用户先下载一个吧,我们一会儿用得到。

安装VIM

  • 现在,请根据你的平台安装VIM,Windows用户不妨安装Cream提供的VIM(先不要安装Cream外壳吧,这个不在本文讨论的范围),这样就可以额外拥有快捷菜单、自动语法加亮等功能(其实以前的VIM安装盘都有提供,不知道为什么最近下载的这一版没有这部分脚本)。然后用你从VIM网站上下载的VIM执行程序替换掉安装上的Cream-VIM。 如果需要中文文档,请访问http://vcd.cosoft.org.cn/pwiki/index.php 新用户请在安装后阅读帮助文档,重点学习在VIM中执行命令、折叠代码、设置语言这几部分。

配置VIM

\\\\\\\\\\\\\\\\\\\\\\\\\\\\

- 1、多语言支持:VIM安装路径下有一个文件,名为_vimrc,打开它(我就是用VIM来编辑的,呵呵),

加入以下代码

  let &termencoding = &encoding
  set encoding=utf-8
  set fileencodings=ucs-bom,utf-8,cp936

三行代码,从此告别中文问题!

如果打开个别文件时仍会出现乱码,请尝试执行::

  :e

刷新编辑区;或执行::

  :edit ++enc=cp936

强制设定当前编辑区的编码。

各命令的含义请参见帮助文档,理解它们会给你的工作带来极大方便! 如果你使用Cream版本的VIM,设置编码时可能会给你带来很多麻烦,请将可执行文件换成正宗的VIM版,或直接安装普通的VIM好了! 如果加上以上代码后,导致菜单乱码等问题,请将以上代码移至_vimrc文件的末尾。

- 2、Python代码折叠:

  • 将前面下载的“Python_fole.vim”复制到ftplugin目录下,即自动拥有代码折叠功能。zo、zc命令分别为打开和折叠代码——注意,这里没有“:”。完整的代码折叠教程请阅读帮助文档。

- 3、集成运行与调试:

打开“RunScript.vim”文档,找到Python路径设置部分,将其改为当前计算机的Python安装路径,

存盘后将“RunScript.vim”复制到plugin目录下,从此拥有集成运行功能。

  • - F11键将当前输入窗设为“Start Program”, - F9键打开输出缓冲区, - F12执行当前脚本——这里有一个小陷阱,F9之后,光标自动跳转到输出窗,如果没有将代码区设为“Start Program”,也没有将光标移回到编辑区,

PYUNIT 编 译 器

这其实不是一个编译器,而是一个为 Python 语言而设的单元测试工具。 从版本 2.0 起,它就在标准的 Python 发布中。对老版本,你可以在这里获得: http://pyunit.sourceforge.net

当你运行测试时,Vim 会解析错误并进入到 quick-fix 模式。

不幸的是,没有一个运行测试的标准方法。 一般都会用使用 alltest.py。 有关 'makeprg' 选项就可以这样设定:

 setlocal makeprg=./alltests.py " Run a testsuite
 setlocal makeprg=python %      " Run a single testcase

另外,参考 http://vim.sourceforge.net/tip_view.php?tip_id=280.

直接按F12会返回::

  • %PythonHome%\python.exe: can't open file 'Output'

On 2004-07-19 23:44:1090251888 +0800, Zoom.Quiet wrote: > Hollo HD: > > 辛苦了! > “单元测试” > 非常重要,这些指南将为 Python 开发可复用的,高质量代码起决定性作用!

单元测试我一般是在c这样的一个文件做为模板:

from unittest import TestCase

class exampleTest(TestCase):
    def setUp(self):
        pass

    def tearDown(self):
        pass

    def testExample(self):
        self.assertEqual(len('0'), 1)

if '__main__' == __name__:
    import unittest
    unittest.main()

下一步

\\\\\\\\\\\\\\\\\\\\\\

对于新手来讲,这些功能应该可以初步满足你的需要了。接下来,也许应该专注于Python编程一段时间,也许应该仔细研究一下VIM,或者装一个CVS……

Cream--美好的冰淇淋

` 对于从 M$ 平台跨入开源软件(或是说 Liunx 世界)的人,已有的编辑器习惯难以改变,

特别是 UE EditPlus 的资深用户,更是难以割舍原来的习惯快捷键!

现在你可以使用 Cream for Vim 令 Vim 变幻为一个跨平台的 UE/EditPlus!

FTP/WebDav..远程访问

` 不用怀疑!Vim can do it!

文档编写

` 好的软件,精彩友好的文档同样重要!

Vim 可以快速集成一系列的文档工具,跨平台的进行文档编写

惊奇杂技

虽然对象Vim 一直在 Emacs 的阴影之下,但是!

日历

' 有多种版本的Vim脚本支持, Cream 也有一个包含在内,不过 好象还没有阴历的..

工程管理

' 难以忘记UE 智能的记忆每个工程,每次打开的文件,Vim...

Zope 开发

' 不用怀疑!Vim 支持FTP/WebDav 方式联接Zope 服务器进行远程开发的!

我们的经验

收集同志们使用Vim 开发Python 的经验,技巧,故事等等

致谢


感谢Zoom.Quiet、Qiangning Hong、Who Bruce的帮助!

没有你们,我可能永远也学不会怎么用VIM::

- Zoom.Quiet reST 整理
- Zoom.Quiet 040719 Moin 整理

-- Zoom.Quiet [DateTime(2004-08-09T23:27:59Z)]

PyIDEguider (last edited 2009-12-25 07:09:07 by localhost)