##language:zh ''' - 作者: 刘鑫 - 发源地: ''' [[http://python.cn/|Python中文社区]] <> * [[http://www.czug.org/docs/zwiki/X_e4_b8_ad_e6_96_87Python_e5_bc_80_e5_8f_91_e5_b7_a5_e5_85_b7_e4_bd_bf_e7_94_a8_e5_90_91_e5_af_bc|CZUG版本]] .. 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程序、运行时文件、安装包、扩充脚本等等。 这里,我们需要一个最新版的VIM二进制程序(也可以直接下载安装包,不过,对Windows用户我有别的建议:))。 ==== Vim脚本 ==== 然后请在这个网站上按“Python”关键字搜索与Python有关的脚本,这里我们需要 - 一个“RunScript.vim”(http://vim.sourceforge.net/scripts/script.php?script_id=127), - 一个“Python_fold.vim”(http://vim.sourceforge.net/scripts/script.php?script_id=515), - 一个“pyCallTips.py”(http://vim.sourceforge.net/scripts/script.php?script_id=1074), 你也可以根据喜好和需要多下载一些。 另外,在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这样的一个文件做为模板: --- Xie Yanbo {{{ 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 的经验,技巧,故事等等''' * [[VimPython]] -- [[xyb]]的文章 * [[VimPythonTDD]] -- [[xyb]]的贡献 == 致谢 == ---------------------- 感谢Zoom.Quiet、Qiangning Hong、Who Bruce的帮助! 没有你们,我可能永远也学不会怎么用VIM:: 刘鑫 liux@gdcn.com  2004-04-16 {{{ - Zoom.Quiet reST 整理 - Zoom.Quiet 040719 Moin 整理 }}} -- Zoom.Quiet [<>]