原文地址:https://blog.csdn.net/alanzjl/article/details/49383943

Vim as a python IDE

** 

最近一直在写Python,但一直没有像样的配置一下Vim,没有代码提示、没有Highlight导致写代码效率低下,于是辗转找到了英国的一篇配置Vim for Python的文章,抽空翻译了一下。

时间不多,前言部分就不翻译了,直接开始正文。

首先,在开始为python配置之前,你需要安装vim和Vundle。Vundle是一种vim插件包安装工具(类似于python的pip、ubuntu的apt-get),可以大大加快你实用vim、添加vim插件的效率。它从github获取资源,可以从其github repo的README获取更多信息。使用如下命令安装Vundle:

  1. git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

然后在你的.vimrc文件中添加下面几行:

  1. set nocompatible
  2. syntax on
  3. filetype off
  4. set rtp+=~/.vim/bundle/vundle/
  5. call vundle#rc()
  6. " let Vundle manage Vundle
  7. " required!
  8. 启用Vundle
  9. Bundle 'gmarik/vundle'
  10. " The bundles you install will be listed here
  11. “ 你所安装的包将被列在这里
  12. filetype plugin indent on
  13. " The rest of your config follows here
  14. 你的其他配置代码

然后运行vim,在Normal模式下运行下面命令:

  1. :BundleList

一个新的窗口应该就显现了,即Vundle,会列出你安装的所有包(bundle),这就意味着你的安装成功了。在本文下面你会安装不同的包,你只需分别将他们添加到.vimrc中即可,下面将详细叙述。

限制高亮超长行宽度 
你可能会想要限制python文件的行宽。我喜欢限制在120个字符,标准情况下是80个,但是在现在的高清显示器下显示更多效果更好,你也可以自己调整到自己喜欢的数值。想要启用这个功能,在.vimrc中加入下面代码:

  1. augroup vimrc_autocmds
  2. autocmd!
  3. " highlight characters past column 120
  4. autocmd FileType python highlight Excess ctermbg=DarkGrey guibg=Black
  5. autocmd FileType python match Excess /\%120v.*/
  6. autocmd FileType python set nowrap
  7. augroup END

所有超过这个行宽的代码都会被黑色高亮,你也可以修改高亮颜色以适配你的vim主题。

Powerline

下面我们安装Powerline插件,使得vim运行时显示如下信息:

它会显示当前在Git中的分支、你正在编辑的文件名以及其他一些有用的信息。 
只需添加:

  1. Bundle 'Lokaltog/powerline', {'rtp': powerline/bindings/vim/‘}

到你的.vimrc

  1. " The bundles you install will be listed here.

的下面即可。 
然后重启vim,再次输入:BundleList,显示出你所有添加的插件,然后输入

  1. :BundleInstall

来安装这些插件中尚未安装的部分。Powerline还有一些别的可选配置,你可以登录它的github repo看详细说明 
https://github.com/Lokaltog/powerline-fonts

Fugitive

Fugitive是一个Git插件,使得你可以在Vim里面调用Git命令。在vim中实用git命令时要在原本命令前面加上’G’,如”Gcommit”等等。安装Fugitive,在.vimrc中添加

  1. Bundle tpope/vim-fugitive'

然后像上面一样使用

  1. :BundleInstall

来进行安装

NerdTree

NerdTree是一个在vim中新窗口显示的文件浏览器,效果如下:

添加

  1. Bundle scrooloose/nerdtree'

.vimrc,安装之后,再在.vimrc最后添加

  1. map <F2> :NERDTreeToggle<CR>
  2. 来设置按F2启动NerdTree

Python Mode

重头戏,这个插件基本上添加了你想在vim中实用的关于python的所有功能,比如语法检查、代码补全、显示代码文档、类间跳跃等等工具,详细的可以到repo中查看: 
https://github.com/klen/python-mode 
添加

  1. Bundle klen/python-mode'

.vimrc中进行安装。在vim中你也可以用:help python-mode来查看python mode的实用说明。下面对pythonmode进行配置,下面是我喜欢的一些配置:

  1. " Python-mode
  2. " Activate rope
  3. " Keys: 按键:
  4. " K Show python docs 显示Python文档
  5. " <Ctrl-Space> Rope autocomplete 使用Rope进行自动补全
  6. " <Ctrl-c>g Rope goto definition 跳转到定义处
  7. " <Ctrl-c>d Rope show documentation 显示文档
  8. " <Ctrl-c>f Rope find occurrences 寻找该对象出现的地方
  9. " <Leader>b Set, unset breakpoint (g:pymode_breakpoint enabled) 断点
  10. " [[ Jump on previous class or function (normal, visual, operator modes)
  11. " ]] Jump on next class or function (normal, visual, operator modes)
  12. " 跳转到前一个/后一个类或函数
  13. " [M Jump on previous class or method (normal, visual, operator modes)
  14. " ]M Jump on next class or method (normal, visual, operator modes)
  15. " 跳转到前一个/后一个类或方法
  16. let g:pymode_rope = 1
  17. " Documentation 显示文档
  18. let g:pymode_doc = 1
  19. let g:pymode_doc_key = 'K'
  20. Linting 代码查错,=1为启用
  21. let g:pymode_lint = 1
  22. let g:pymode_lint_checker = "pyflakes,pep8"
  23. " Auto check on save
  24. let g:pymode_lint_write = 1
  25. " Support virtualenv
  26. let g:pymode_virtualenv = 1
  27. " Enable breakpoints plugin
  28. let g:pymode_breakpoint = 1
  29. let g:pymode_breakpoint_bind = '<leader>b'
  30. " syntax highlighting 高亮形式
  31. let g:pymode_syntax = 1
  32. let g:pymode_syntax_all = 1
  33. let g:pymode_syntax_indent_errors = g:pymode_syntax_all
  34. let g:pymode_syntax_space_errors = g:pymode_syntax_all
  35. " Don't autofold code 禁用自动代码折叠
  36. let g:pymode_folding = 0

Jedi vim

Jedi vim可能是一种更好的python代码补全插件,可以到 
https://github.com/davidhalter/jedi-vim 
查看使用说明。安装之后,需要先禁用Rope,用

  1. let g:pymode_rope = 0

替换刚才添加的

  1. let g:pymode_rope = 1

其他设置 
在vimrc中:

  1. " Use <leader>l to toggle display of whitespace
  2. nmap <leader>l :set list!<CR>
  3. " automatically change window's cwd to file's dir
  4. set autochdir
  5. " I'm prefer spaces to tabs
  6. set tabstop=4
  7. set shiftwidth=4
  8. set expandtab
  9. " more subtle popup colors
  10. if has ('gui_running')
  11. highlight Pmenu guibg=#cccccc gui=bold
  12. endif
  13. 比较常用,就不解释每一条具体含义了。 

这是一些基本的Vim for Python配置,其他的功能可以去Vundle页面查看使用其方法,或者找其他的插件使用。

为Python配置Vim编辑器(GUI/非GUI皆可)的更多相关文章

  1. Linux 配置vim编辑器

    最终效果 步骤1.下载NERDTree插件安装包(vim目录插件) https://www.vim.org/scripts/script.php?script_id=1658 步骤2.在家目录创建 . ...

  2. 《centos系列》配置vim编辑器

    直接wget到~/目录下: wget  http://files.cnblogs.com/ma6174/vimrc.zip 然后进行解压: unzip  -f  vimrc.zip  -d  ~/ 参 ...

  3. Jmeter(一)非GUI模式压测(NON-GUI模式)结果解析TPS

    非GUI模式压测(NON-GUI模式)结果解析TPS 准备工作 从脚本已录制成功之后开始进行压测 安装Jmeter拓展插件 查看 Transactions per Second https://jme ...

  4. Jmeter:非 GUI 命令行执行脚本文件

    介绍 进行性能测试时,Jmeter 官方文档声明是不建议在 GUI 执行的,此时需要用到命令行. 第一步:环境配置 把 Jmeter安装目录\bin 添加到 系统环境变量path 第二步:命令参数 - ...

  5. Jmeter 中使用非GUI启动进行压力测试

    使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资源.使用命令jmeter -n -t <testplan filename> -l <list ...

  6. 使用非 GUI 模式运行 JMeter 压力测试

    使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资源.使用命令jmeter -n -t <testplan filename> -l <list ...

  7. Jmeter非GUI模式运行

    非GUI模式,即命令行模式,运行 JMeter 测试脚本能够大大缩减所需要的系统资源. 使用的命令: jmeter  -n  -t  脚本文件路径   -l   结果输出文件路径   -j   日志文 ...

  8. Jmeter笔记(Ⅲ) Jmeter的非GUI操作

    在启动Jmeter时,我们会看到这样一句提示: 不要使用GUI模式(界面模式)进行负载测试,GUI模式只能用于创建测试和调试.进行负载测试时,需要时用非GUI模式. 那么为什么进行负载测试时一定要用非 ...

  9. jmeter入门非GUI(三)

    配置见https://www.cnblogs.com/wish5714/p/9722193.html 该篇介绍非GUI模式的测试方法,及结果报告分析 简介 使用非 GUI 模式,即命令行模式运行 JM ...

随机推荐

  1. PDA无线移动开单智能新生活,省时、省心、省力

    纯手工4个小时 VS移动PDA开单10分钟 无论你是营业办公还是需要上门接货,开单都是一件重要且繁琐的事情.我们了解到传统物流业务运营都是通过手抄单.表格.补录运单来重复操作每一笔业务,手动填写纸质单 ...

  2. vue组件中的data与methods

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> ...

  3. Json:Restful

    JArray & JObject JArray与JObject在json的应用:无需定义相应的类对象,直接解析 JArray jarr = JArray.Parse(jsonStr); //数 ...

  4. android开机启动流程说明

    android开机启动流程说明 第一步:启动linux 1.Bootloader 2.Kernel 第二步android系统启动:入口为init.rc(system\core\rootdir) 1./ ...

  5. HTTP 协议部分常识简介

    1.状态码 具体的状态码可以百度查找,但是对于状态码的大致分类有一个清楚的了解 1XX   ----信息状态码------接受的请求正在处理 2XX ------成功状态码 ------请求正常处理完 ...

  6. git命令——git status、git diff

    前言 当对项目做了更改时,我们通常需要知道具体改了哪些文件,哪些文件更改了没有暂存,哪些文件改了并且已加入到暂存区等待下次commit.上述任务使用git status都可以帮我们解决.但是想要知道文 ...

  7. visual studio调试exe程序

    标题:How to debug and profile any EXE with Visual Studio 文章:https://devblogs.microsoft.com/visualstudi ...

  8. Python笔记(30)-----logger

    转自: https://www.jb51.net/article/139080.htm logging模块介绍 Python的logging模块提供了通用的日志系统,熟练使用logging模块可以方便 ...

  9. [原创]extjs htmleditor增加截图快速粘贴功能 插件

    因客户需求,需要QQ截图后,能直接粘贴到htmleditor编辑器中,不要保存本地文件再上传,再插入到编辑器,太过麻烦. 常规做法:QQ截图-->选择保存路径-->确定保存文件--> ...

  10. P2002 消息扩散[SCC缩点]

    题目描述 有n个城市,中间有单向道路连接,消息会沿着道路扩散,现在给出n个城市及其之间的道路,问至少需要在几个城市发布消息才能让这所有n个城市都得到消息. 输入格式 第一行两个整数n,m表示n个城市, ...