python-mode这款插件应该是Vim上写Python最佳辅助型插件了,集成了语法高亮,文档查阅,语法检查,自动修正错误和重构等功能,相关的设置和快捷键也异常丰富繁多,这里从项目的文档中选取了大部分实用的设置并进行适当修改,如果你想要更详细地了解相关内容建议阅读文档,也建议阅读或者浏览一下文档

"python-mode
"开启警告
let g:pymode_warnings = 0
"保存文件时自动删除无用空格
let g:pymode_trim_whitespaces = 1
let g:pymode_options = 1
"显示允许的最大长度的列
let g:pymode_options_colorcolumn = 1
"设置QuickFix窗口的最大,最小高度
let g:pymode_quickfix_minheight = 3
let g:pymode_quickfix_maxheight = 10
"使用python3
let g:pymode_python = 'python3'
"使用PEP8风格的缩进
let g:pymode_indent = 1
"取消代码折叠
let g:pymode_folding = 0
"开启python-mode定义的移动方式
let g:pymode_motion = 1
"启用python-mode内置的python文档,使用K进行查找
let g:pymode_doc = 1
let g:pymode_doc_bind = 'K'
"自动检测并启用virtualenv
let g:pymode_virtualenv = 1
"不使用python-mode运行python代码
let g:pymode_run = 0
"let g:pymode_run_bind = '<Leader>r'
"不使用python-mode设置断点
let g:pymode_breakpoint = 0
"let g:pymode_breakpoint_bind = '<leader>b'
"启用python语法检查
let g:pymode_lint = 1
"修改后保存时进行检查
let g:pymode_lint_on_write = 0
"编辑时进行检查
let g:pymode_lint_on_fly = 0
let g:pymode_lint_checkers = ['pyflakes', 'pep8']
"发现错误时不自动打开QuickFix窗口
let g:pymode_lint_cwindow = 0
"侧边栏不显示python-mode相关的标志
let g:pymode_lint_signs = 0
"let g:pymode_lint_todo_symbol = 'WW'
"let g:pymode_lint_comment_symbol = 'CC'
"let g:pymode_lint_visual_symbol = 'RR'
"let g:pymode_lint_error_symbol = 'EE'
"let g:pymode_lint_info_symbol = 'II'
"let g:pymode_lint_pyflakes_symbol = 'FF'
"启用重构
let g:pymode_rope = 1
"不在父目录下查找.ropeproject,能提升响应速度
let g:pymode_rope_lookup_project = 0
"光标下单词查阅文档
let g:pymode_rope_show_doc_bind = '<C-c>d'
"项目修改后重新生成缓存
let g:pymode_rope_regenerate_on_write = 1
"开启补全,并设置<C-Tab>为默认快捷键
let g:pymode_rope_completion = 1
let g:pymode_rope_complete_on_dot = 1
let g:pymode_rope_completion_bind = '<C-Tab>'
"<C-c>g跳转到定义处,同时新建竖直窗口打开
let g:pymode_rope_goto_definition_bind = '<C-c>g'
let g:pymode_rope_goto_definition_cmd = 'vnew'
"重命名光标下的函数,方法,变量及类名
let g:pymode_rope_rename_bind = '<C-c>rr'
"重命名光标下的模块或包
let g:pymode_rope_rename_module_bind = '<C-c>r1r'
"开启python所有的语法高亮
let g:pymode_syntax = 1
let g:pymode_syntax_all = 1
"高亮缩进错误
let g:pymode_syntax_indent_errors = g:pymode_syntax_all
"高亮空格错误
let g:pymode_syntax_space_errors = g:pymode_syntax_all

下面是对上面设置的部分说明,

let g:pymode_options = 1

也就是说启用了

setlocal complete+=t
setlocal formatoptions-=t
if v:version > 702 && !&relativenumbersetlocal number
endif
setlocal nowrap
setlocal textwidth=79
setlocal commentstring=#%s
setlocal define=^\s*\\(def\\\\|class\\)

上面启用了python-mode定义的Vim移动方式,也就是这句

"开启python-mode定义的移动方式
let g:pymode_motion = 1

开启以后就可以使用下面的动作方便地跳转到函数,类和方法等

按键 功能
[[ Jump to previous class or function (normal, visual, operator modes)
]] Jump to next class or function (normal, visual, operator modes)
[M Jump to previous class or method (normal, visual, operator modes)
]M Jump to next class or method (normal, visual, operator modes)
aC Select a class. Ex: vaC, daC, yaC, caC (normal, operator modes)
iC Select inner class. Ex: viC, diC, yiC, ciC (normal, operator modes)
aM Select a function or method. Ex: vaM, daM, yaM, caM (normal, operator modes)
iM Select inner function or method. Ex: viM, diM, yiM, ciM (normal, operator modes)

这里没有使用python-mode设置的快捷键运行Python是因为我在设置里已经绑定了F9运行Python代码,具体看这里,如果你想启用python-mode设置的python代码运行方式修改上面相关的设置即可,原始设置

"不使用python-mode运行python代码
let g:pymode_run = 0
"let g:pymode_run_bind = '<Leader>r'

这里同样没有使用python-mode设置的debug方式,因为我用Vebuggerdebug,支持的语言比较多,语言切换不需要记其他的debug模式快捷键,如果你不用Vebugger,可以修改下面的设置启用python-mode的debug

"不使用python-mode设置断点
let g:pymode_breakpoint = 0
"let g:pymode_breakpoint_bind = '<leader>b'

语法检查这一块,因为我用ale,它能在编辑时实时显示错误信息,也会有相关的标志提示,所以我取消了python-mode在这一块的设置,如果你想使用python-mode在这一块的设置,修改下面的设置

"启用python语法检查
let g:pymode_lint = 1
"修改后保存时进行检查
let g:pymode_lint_on_write = 0
"编辑时进行检查
let g:pymode_lint_on_fly = 0
let g:pymode_lint_checkers = ['pyflakes', 'pep8']
"发现错误时不自动打开QuickFix窗口
let g:pymode_lint_cwindow = 0
"侧边栏不显示python-mode相关的标志
let g:pymode_lint_signs = 0
"let g:pymode_lint_todo_symbol = 'WW'
"let g:pymode_lint_comment_symbol = 'CC'
"let g:pymode_lint_visual_symbol = 'RR'
"let g:pymode_lint_error_symbol = 'EE'
"let g:pymode_lint_info_symbol = 'II'
"let g:pymode_lint_pyflakes_symbol = 'FF'

语法检查的引擎支持pylint, pep257, pep8, pyflakesmccabe ,我这里使用的是pyflakespep8,其中pyflakes负责检查语法错误,pep8检查代码风格,要使用这个必须先在系统上安装相应的包,在Debian上可以在终端执行

$ sudo aptitude install python-flake8 python3-flake8 flake flake8

当然这里也可以使用其他的语法检查引擎,安装相应的包就可以了,特别要注意的一点是不要使用pylint因为它非常慢。而且发现错误后键入:PymodeLintAuto会根据PEP8标准自动修复当前buffer中的错误。

Vim插件之python-mode相关推荐

  1. php python插件安装,小弟我的vim配置和插件 小型 python php IDE

    我的vim配置和插件 小型 python php IDE 我的vim配置和插件小型php和python IDE 附件中有我目前使用的完整的vim配置文件.vimrc和插件的打包.直接放到自己的home ...

  2. 如何用python写html的插件,使用python开发vim插件及心得分享

    如何使vim下开发python调试更方便 如何用 Python 给 Vim 写插件 如何使 Vim 下开发 Python 调试更方便 怎么用python调用matlab? 打算用vim写Python ...

  3. eval() python_如何使用 Python 编写 vim 插件

    前言 vim是个伟大的编辑器,不仅在于她特立独行的编辑方式,还在于她强大的扩展能力.然而,vim自身用于写插件的语言vimL功能有很大的局限性,实现功能复杂的插件往往力不从心,而且运行效率也不高.幸好 ...

  4. linux jedi-vim安装,python学习-vim插件安装

    centos7上自带python2.7,我们需要优化一下python环境.一.使用豆瓣源加速软件安装pip install -i   flask    #使用-i 选项 mkdir ~./pip &a ...

  5. python中的ideavim有什么作用_Pycharm和Idea支持的vim插件的方法

    Ideavim对同时喜欢Vim和Intellij全家桶(Idea, Pycharm等)的人来说是再熟悉不过了,既可以享受Intellij的强大功能,又可以用Vim操作文本,真是双份的快乐.可是你知道I ...

  6. 【记录】常用的vim插件及配置和使用

    2019独角兽企业重金招聘Python工程师标准>>> 所有vim插件都使用Vundle进行安装和管理 vim的git插件 Plugin 'tpope/vim-fugitive' L ...

  7. 【学员分享】程序员效率神器,最常用VIM插件安装大全

    相信大家多次被推荐用vim作为编辑程序,知道vim编辑有很多优点,但是vim初始界面太原始了,安装了之后只能用来编辑,如果要运行就需要退出去运行,麻烦死了.回想用现成的IDE是多么的舒服.但是为了更好 ...

  8. 经典vim插件功能说明、安装方法和使用方法介绍(已更新)

    1 #=============================================================================  2 转载请注明出处: http:// ...

  9. Use Vim as a Python IDE

    Use Vim as a Python IDE I love vim and often use it to write Python code. Here are some useful plugi ...

  10. ubuntu运行python ide_打造vim中的python IDE

    首先先介绍几个常用的插件: 1,ctags和taglist,这个大家估计都很常用,在ubuntu下只要安装exuberant-ctags即可啦,另外tagbar支持面向对象语言的展示 " t ...

最新文章

  1. sql server备份和还原
  2. 清除webkit浏览器css设置滚动条
  3. PHP开发erp账号登陆问题,浪潮ERP软件E系列创建账套时提示“由于登陆不正确、请重新登陆” | 浪潮888博客...
  4. 【LCT】遥远的国度(P3979)
  5. ASP.NET页面生命周期概述
  6. 蓝桥杯 ADV-166 算法提高 聪明的美食家 java版
  7. 【NOIP2000】【vijos1347】乘积最大
  8. 无线通信设备安装工程概预算编制_建筑安装工程,预算编制中易遗漏总结分享...
  9. java上传文件怎么设置成777权限_如何修改文件夹777权限
  10. java getdate和getday,Date类的getDay()和getDate()方法
  11. (转)如何应对工作中的冲突?
  12. 当你对一个聊天机器人敞开了心扉
  13. Sqoop简介以及使用
  14. 推荐系统中特征交叉模型之——DeepWide/DeepFM/NFM
  15. 计算机电源测试电压,快速判断计算机电源好坏方法
  16. 气象绘图(二)——散点图
  17. 我的一些杭电计算机考研资料
  18. Jquery获取一组Radio的选中值
  19. Unity3D游戏制作(二)——如何渲染3D角色
  20. 交换机接口模式hybrid运用

热门文章

  1. 使用bilibili开源的flvjs实现摄像头rtsp视频直播
  2. 判断语句——switch case
  3. The Apache Tomcat Native library which allows optimal performance in production environments wasn
  4. 携程Java后台开发三面面经
  5. AndroidStudio报错Transform output file D:\android\RfidDemo\app\libs\RFID_lib.jar does not exist.
  6. 人人都能写游戏系列(三)Unity 3D平衡球游戏
  7. USB转串口电路之CH340G
  8. echarts3d城市配置项
  9. 2021年9款优秀的大数据可视化BI软件
  10. [芦半山]Android native分析工具ASAN和HWASAN原理解析