vim中的python
1. 判断vim支持python
要判断你的vim是否支持python,可以执行下面命令:
1 |
|
如果显示的结果中有 +python 的话,你的vim已经支持python,
如果没有的话,你需要重新编译vim,在windows中可以使用下面的命令行,
1 |
|
2. 为什么需要编译支持python的vim
主要的理由有两个,
- 可以使用python写的vim插件。
- vim 7.4 以后对python的支持进行了增强。
有很多不错的vim 插件,这里给大家推荐一个python-mode, 非常不错。https://github.com/klen/python-mode
vim 7.4 以后对python的支持进行了增强,这个是广大vim注册用户(捐钱的用户)呼声最
高的需求,原话为,
add integration with Python instead of inventing more Vim script
确实现在已经有太多的vim脚本了。vim的主页上的完整需求列表; http://www.vim.org/sponsor/vote_results.php
add IDE features (debugger integration, shell window)
这个是排行老二的需求,不知道什么时侯能实现,期待中…
3. 一些应用举例
3.1 python commands
1 |
|
这个命令比较简单,详细解释如下:
range 是标准的vim的range 熟悉vim替换命令的同学应该都不会陌生。range的作用的是指
定python命令影响哪些行,写法为 [行号,行号],比如 1,2 影响第一行和第二行,1,$
影响整个文件。[] 的意思是这个range是可选的默认将影响整个文件。
py[thon]的意思为,python 是命令的全写,可以简写为py。
{stmt} python 语句
可以写上下面命令,输出 Hello
1 |
|
数学不好的同学可以像我一样使用
1 |
|
将显示结果2 :)
1 |
|
上面是这个命令是第二种用法,可以直接写python,相当爽,写法很象cat 命令
1 |
|
想用vim查询天气的同学可以参考一下,github上的这个脚本 https://raw.github.com/liqunli/vim-plugin-dev/master/dairy.vim
3.2 pydo
这个命令的格式为, :[range]pydo {body}
vim 中有一个定义好的函数,这个命令将利用这个函数做一些事情
1 |
|
pydo 这个命令同样是以行为单位的,range的用法和上面说的一样。 line 是原始的行,
linenr 是 line number (行号)。大家可以猜一下下面命令的意思,
1 |
|
显示结果大致是这样, 直接用这个文件测试了一下,
1 |
|
没有指定range,默认为整个文件,”%4d: %s” % (linenr, line) 这句的意思是,
在每行前加行号,不足4位的数字的用空格补齐
在早些时侯,vim命令要实现这个的效果,需要写一行诡异的命令,
1 |
|
挑战太大,vim 还专门写了一篇wiki http://vim.wikia.com/wiki/Insert_line_numbers
3.3 pyfile
这条命令的格式为,:[range]pyf[ile] {file}
可以直接使用python 文件,不需要一句一句的输入python 语句了。
1 |
|
3.4 python3
命令的格式和python是一样的,不过需要开启 +python3
3.5 vim的python 接口
这个不属于这个小文章的想说的了,写了这成vim的manual了,可以直接参看:
http://vimhelp.appspot.com/if_pyth.txt.html#python-vim
4. 最后
为了避免vim和emacs的圣战,hx 和 lzx等emacs党,可以直接忽视此文 :)