原文地址: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:

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

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

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

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

:BundleList

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

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

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

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

Powerline

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

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

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

到你的.vimrc

" The bundles you install will be listed here.

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

:BundleInstall

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

Fugitive

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

Bundle ‘tpope/vim-fugitive'

然后像上面一样使用

:BundleInstall

来进行安装

NerdTree

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

添加

Bundle ‘scrooloose/nerdtree'

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

map <F2> :NERDTreeToggle<CR>

来设置按F2启动NerdTree。

Python Mode

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

Bundle ‘klen/python-mode'

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

" Python-mode
" Activate rope
" Keys: 按键:
" K Show python docs 显示Python文档
" <Ctrl-Space> Rope autocomplete 使用Rope进行自动补全
" <Ctrl-c>g Rope goto definition 跳转到定义处
" <Ctrl-c>d Rope show documentation 显示文档
" <Ctrl-c>f Rope find occurrences 寻找该对象出现的地方
" <Leader>b Set, unset breakpoint (g:pymode_breakpoint enabled) 断点
" [[ Jump on previous class or function (normal, visual, operator modes)
" ]] Jump on next class or function (normal, visual, operator modes)
" 跳转到前一个/后一个类或函数
" [M Jump on previous class or method (normal, visual, operator modes)
" ]M Jump on next class or method (normal, visual, operator modes)
" 跳转到前一个/后一个类或方法
let g:pymode_rope = 1 " Documentation 显示文档
let g:pymode_doc = 1
let g:pymode_doc_key = 'K' “Linting 代码查错,=1为启用
let g:pymode_lint = 1
let g:pymode_lint_checker = "pyflakes,pep8"
" Auto check on save
let g:pymode_lint_write = 1 " Support virtualenv
let g:pymode_virtualenv = 1 " Enable breakpoints plugin
let g:pymode_breakpoint = 1
let g:pymode_breakpoint_bind = '<leader>b' " syntax highlighting 高亮形式
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 " Don't autofold code 禁用自动代码折叠
let g:pymode_folding = 0

Jedi vim

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

let g:pymode_rope = 0

替换刚才添加的

let g:pymode_rope = 1

其他设置 
在vimrc中:

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

这是一些基本的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. python入门-windows下python环境搭建

    1. 下载安装包 选择executable版,根据自己电脑的操作系统选择是32位还是64为. python3.6-64位下载 python3.6-32位下载 2. 安装python 下载之后是这样的 ...

  2. python之统计字符串中字母出现次数

    dic=dict() d={} s=set() s='helloworld' (1)d=dict() for x in s: if x not in d.keys(): d[x]=1 else: d[ ...

  3. Vivado生成及使用edf文件

    前言 EDF文件可以直接导入Vivado,而无需Verilog源文件. 好处: (1)    避免沙雕队友修改源代码,则可以直接提交EDF网表文件. (2)    避免用户剽窃劳动成果. (3)    ...

  4. Qt布局

    常用的布局方法 1. 水平布局类 QHBoxLayout 2. 垂直布局类 QVBoxLayout 3. 网格布局类 QGridLayout QHBoxLayout 对象横向排列开 QVBoxLayo ...

  5. nexus3上传jar包

    1.选择仓库位置 2.填写jar包信息 3.查看上传的jar包信息 上传成功. 4.maven的settings.xml完整配置 <?xml version="1.0" en ...

  6. RMAN恢复数据文件

    实验之前先备份数据库 RMAN>backup database; 在操作系统中删除数据文件 5 SQL> startup ORACLE 例程已经启动. Total System Globa ...

  7. Android和kali的互操作性

    1.手机上讲kali Linux系统安装上面实现小巧方便的移动渗透测试工具 其实我们都知道 Android操作系统是基于linux 开发的,这就为我们将kali linux 系统移植到手机上提供了原理 ...

  8. Deep Module(深模块)

    Deep Module(深模块) 目录 1,模块化设计 2,接口里有什么 3,抽象 4,深模块 5,浅模块 6,Classitis 7,例子 8,结论 正文 类是不是越小越好?最近在读John Ous ...

  9. jade注释

    在jade里面注释是有多种方式的 单行注释,加两个//,跟js里面一样 //h1.title#title imoock jade study => <!--h1.title#title i ...

  10. Codeforces Round 582

    Codeforces Round 582 这次比赛看着是Div.3就打了,没想到还是被虐了,并再次orz各位AK的大神-- A. Chips Moving 签到题.(然而签到题我还调了20min--) ...