Python脚本在VIM环节中的系统介绍

开发 后端
Python脚本在很多环境之中都会有所应用。下面我们就向大家介绍在VIM中的具体应用,下面我们就看看具体的情况是什么样的。

Python脚本在使用的时候有不适的知识需要学习。在VIM中就有很广泛的Python脚本应用。在当前实现原理很简单,在VIM中执行JPython()这个VIM函数,然后函数负责去调用python(当然这里需要把常用版本的python放到环境变量中去)。

调用的命令是"python -c ...",即直接执行后面的字符串,字符串中有完整的执行脚本。脚本中,首先打开一个文件,用fp.readlines()读出所有行放入一个列表中(g_text),然后使用execfile()去调用JPython()传入的脚本名和全局变量g:JPYTHON_PATH。这样一来Python脚本中就无需关心文件IO和路径的问题,直接去使用g_text变量即可。当python把内容用print或者sys.stdout输出后会被VIM替换掉原始的内容。代码如下。

 

 

  1. function! JPython(py_fname)  
  2. let w:fname = g:JPYTHON_PATH . '/' . a:py_fname  
  3. echo bufname(".")  
  4. let w:cmd = 'fp = open(r"' . bufname(".") . '", "rb");'  
  5. let w:cmd .'g_text = fp.readlines();' 
  6. let w:cmd .'fp.close(); del fp;' 
  7. let w:cmd .'execfile("' . w:fname . '");'  
  8. exec '%!python -c "' . escape(w:cmd, "'\"") . '"'  
  9. " 发现输出后会有^M,进行替换用  
  10. if has('windows')  
  11. try  
  12. exec '%s/\r//g'  
  13. catch  
  14. endtry  
  15. endif  
  16. endfunction  
  17. let g:JPYTHON_PATH = "D:/scripts/vim" 

 

把这个函数复制到vimrc中,然后配置g:PYTHON_PATH到指定位置即可。

这只是设想的一个简略实现,实际环境中可能会有更好的方式去操作,也应该还有更好的方式达到VIM和Python交互的目的。有朋友可能问为什么不直接用VIM的脚本,主要原因是本人对VIM脚本仅限于实现这种简单功能的水平,相信为了使用VIM而研究VIM脚本的人也不多,更谈不上复杂的应用,python相对大众化,而且日常都在使用,写与改相对熟练。

 

大家有什么好的想法或者建议请给我留言,也欢迎提出更好的方案。

【编辑推荐】

  1. Python socket服务如何进行配置详解
  2. Python数组实践中具体问题分析
  3. 对python开源技术开发的相关了解
  4. Python数据类型在常见集合中的语法
  5. Python列表与C#语言的相似度介绍
责任编辑:张浩 来源: 互联网
相关推荐

2010-03-23 14:34:44

Python vim检

2010-09-10 13:25:22

2010-03-19 09:26:52

Python编程

2010-03-26 16:35:29

Python open

2010-03-23 13:50:24

python教程

2010-03-17 17:06:10

python脚本语言

2010-03-08 19:03:23

Python脚本

2010-03-15 14:24:09

Python字典

2010-03-23 10:07:05

2010-02-02 16:40:34

Python 脚本

2009-12-22 16:29:10

Fedora Core

2010-02-23 10:32:20

Python 脚本

2010-03-24 09:46:16

Python 2.6

2010-03-26 15:28:05

Python编写

2010-03-15 09:11:25

Python编程版面

2010-03-19 12:49:20

Python编程

2014-11-10 10:05:58

综合布线

2020-07-29 07:40:19

Linux系统Vim

2011-06-15 15:16:54

Session

2010-03-25 10:13:03

Python代码
点赞
收藏

51CTO技术栈公众号