vim下打造python编辑器

时间:2022-09-04 13:55:50

在前面文章中介绍的关于vim基础插件之上加上一款专门为读写python程序的插件-Python-mode. 顾名思义,就是让vim在python模式下运行。这里介绍这款插件的功能以及如何使用。

本文主要摘录Python-mode的帮助文档中个人觉得用到较多的并且比较有意义的内容。

Introduction

Python-mode: includes libraries such as pylintropepydocpyflakespep8, and mccabe。 Python-mode通过集成了多款插件来实现强大的功能。

Install

用Neobundle在vimrc中加入如下代码,或者直接下载解压.vim/plugin目录下

Bundle 'klen/python-mode'

Function

python-mode的功能和配置非常多,但大多数只需要使用默认配置即可。总结帮助文档(help pymode),可以通过介绍他的配置项可以了解它的功能:

1. Turn on the Plugin:

  let g:pymode = 1 “关闭和打开python-mode插件

2. Choose python version:

  let g:pymode_python = 'python' "or python3, disable. “选择python的版本

3. PEP8-compatible python indent:

  let g:pymode_indent = 1 ”使用缩进的风格为pep8

4. Enable pymode folding:

  let g:pymode_folding = 1 “使能折叠功能

5. Show Document:

  let g:pymode_doc = 1 " 通过命令:PymodeDoc arg查阅文档

  let g:pymode_doc_bind = 'K' "光标移到参数上面按快捷键K

6. Run code:

  let g:pymode_run = 1

  let g:pymode_run_bind = '<leader>r' ”在vim中运行

7. Add breakpoint

  let g:pymode_breakpoint_bind = '<leader>b' “自动加入断点语句

8. Code checking:

  let g:pymode_lint_on_write = 1 "修改后检查

  let g:pymode_lint_checkers = ['pyflakes', 'pep8', 'mccabe']   " choose from pylint, pep8, mccabe, pep257, pyflakes

9. Rope support (建立项目文件的数据库来索引对象):

  let g:pymode_rope_ropefolder='.ropeproject' “项目文件在的目录

  let g:pymode_rope_show_doc_bind = '<C-c>d' ”查阅帮助文档

10. Completion

语法补全命令:<C-P>/<C-N>

11. Others

  let g:pymode_trim_whitespaces = 1 "Trim unused white spaces on save

  let g:pymode_options = 1  "Setup default python options

  let g:pymode_options_max_line_length = 79 "Setup max line length

还有关于代码重铸以及虚拟环境的配置功能,因为没有用到,所以就不介绍了。 虽然配置很多,需要在vimrc中用到的也就一下几项:

423 " For python-mode
424 let g:pymode_rope_goto_definition_bind = "<C-]>"
425 let g:pymode_python = 'python' "or python3, disable
426 "let g:pymode_virtualenv_path = $VIRTUAL_ENV
427 let g:pymode_lint_on_write = 1
428 "let g:pymode_rope_goto_definition_cmd = 'new'"or vnew

最后总结一下命令使用

1).K :查阅对象文档

2).<leader>r: 运行python脚本

3). <leader>b:自动加入断点

4). <C-P>/<C-N>:自动补全

5). <C-]>: 跳转到函数定义