Vim插件之python-mode
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
, pyflakes
和mccabe
,我这里使用的是pyflakes
和pep8
,其中pyflakes负责检查语法错误,pep8检查代码风格,要使用这个必须先在系统上安装相应的包,在Debian上可以在终端执行
$ sudo aptitude install python-flake8 python3-flake8 flake flake8
当然这里也可以使用其他的语法检查引擎,安装相应的包就可以了,特别要注意的一点是不要使用pylint
因为它非常慢。而且发现错误后键入:PymodeLintAuto
会根据PEP8标准自动修复当前buffer中的错误。
Vim插件之python-mode相关推荐
- php python插件安装,小弟我的vim配置和插件 小型 python php IDE
我的vim配置和插件 小型 python php IDE 我的vim配置和插件小型php和python IDE 附件中有我目前使用的完整的vim配置文件.vimrc和插件的打包.直接放到自己的home ...
- 如何用python写html的插件,使用python开发vim插件及心得分享
如何使vim下开发python调试更方便 如何用 Python 给 Vim 写插件 如何使 Vim 下开发 Python 调试更方便 怎么用python调用matlab? 打算用vim写Python ...
- eval() python_如何使用 Python 编写 vim 插件
前言 vim是个伟大的编辑器,不仅在于她特立独行的编辑方式,还在于她强大的扩展能力.然而,vim自身用于写插件的语言vimL功能有很大的局限性,实现功能复杂的插件往往力不从心,而且运行效率也不高.幸好 ...
- linux jedi-vim安装,python学习-vim插件安装
centos7上自带python2.7,我们需要优化一下python环境.一.使用豆瓣源加速软件安装pip install -i flask #使用-i 选项 mkdir ~./pip &a ...
- python中的ideavim有什么作用_Pycharm和Idea支持的vim插件的方法
Ideavim对同时喜欢Vim和Intellij全家桶(Idea, Pycharm等)的人来说是再熟悉不过了,既可以享受Intellij的强大功能,又可以用Vim操作文本,真是双份的快乐.可是你知道I ...
- 【记录】常用的vim插件及配置和使用
2019独角兽企业重金招聘Python工程师标准>>> 所有vim插件都使用Vundle进行安装和管理 vim的git插件 Plugin 'tpope/vim-fugitive' L ...
- 【学员分享】程序员效率神器,最常用VIM插件安装大全
相信大家多次被推荐用vim作为编辑程序,知道vim编辑有很多优点,但是vim初始界面太原始了,安装了之后只能用来编辑,如果要运行就需要退出去运行,麻烦死了.回想用现成的IDE是多么的舒服.但是为了更好 ...
- 经典vim插件功能说明、安装方法和使用方法介绍(已更新)
1 #============================================================================= 2 转载请注明出处: http:// ...
- 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 ...
- ubuntu运行python ide_打造vim中的python IDE
首先先介绍几个常用的插件: 1,ctags和taglist,这个大家估计都很常用,在ubuntu下只要安装exuberant-ctags即可啦,另外tagbar支持面向对象语言的展示 " t ...
最新文章
- sql server备份和还原
- 清除webkit浏览器css设置滚动条
- PHP开发erp账号登陆问题,浪潮ERP软件E系列创建账套时提示“由于登陆不正确、请重新登陆” | 浪潮888博客...
- 【LCT】遥远的国度(P3979)
- ASP.NET页面生命周期概述
- 蓝桥杯 ADV-166 算法提高 聪明的美食家 java版
- 【NOIP2000】【vijos1347】乘积最大
- 无线通信设备安装工程概预算编制_建筑安装工程,预算编制中易遗漏总结分享...
- java上传文件怎么设置成777权限_如何修改文件夹777权限
- java getdate和getday,Date类的getDay()和getDate()方法
- (转)如何应对工作中的冲突?
- 当你对一个聊天机器人敞开了心扉
- Sqoop简介以及使用
- 推荐系统中特征交叉模型之——DeepWide/DeepFM/NFM
- 计算机电源测试电压,快速判断计算机电源好坏方法
- 气象绘图(二)——散点图
- 我的一些杭电计算机考研资料
- Jquery获取一组Radio的选中值
- Unity3D游戏制作(二)——如何渲染3D角色
- 交换机接口模式hybrid运用
热门文章
- 使用bilibili开源的flvjs实现摄像头rtsp视频直播
- 判断语句——switch case
- The Apache Tomcat Native library which allows optimal performance in production environments wasn
- 携程Java后台开发三面面经
- AndroidStudio报错Transform output file D:\android\RfidDemo\app\libs\RFID_lib.jar does not exist.
- 人人都能写游戏系列(三)Unity 3D平衡球游戏
- USB转串口电路之CH340G
- echarts3d城市配置项
- 2021年9款优秀的大数据可视化BI软件
- [芦半山]Android native分析工具ASAN和HWASAN原理解析