为Python配置Vim编辑器(GUI/非GUI皆可)
原文地址: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皆可)的更多相关文章
- Linux 配置vim编辑器
最终效果 步骤1.下载NERDTree插件安装包(vim目录插件) https://www.vim.org/scripts/script.php?script_id=1658 步骤2.在家目录创建 . ...
- 《centos系列》配置vim编辑器
直接wget到~/目录下: wget http://files.cnblogs.com/ma6174/vimrc.zip 然后进行解压: unzip -f vimrc.zip -d ~/ 参 ...
- Jmeter(一)非GUI模式压测(NON-GUI模式)结果解析TPS
非GUI模式压测(NON-GUI模式)结果解析TPS 准备工作 从脚本已录制成功之后开始进行压测 安装Jmeter拓展插件 查看 Transactions per Second https://jme ...
- Jmeter:非 GUI 命令行执行脚本文件
介绍 进行性能测试时,Jmeter 官方文档声明是不建议在 GUI 执行的,此时需要用到命令行. 第一步:环境配置 把 Jmeter安装目录\bin 添加到 系统环境变量path 第二步:命令参数 - ...
- Jmeter 中使用非GUI启动进行压力测试
使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资源.使用命令jmeter -n -t <testplan filename> -l <list ...
- 使用非 GUI 模式运行 JMeter 压力测试
使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资源.使用命令jmeter -n -t <testplan filename> -l <list ...
- Jmeter非GUI模式运行
非GUI模式,即命令行模式,运行 JMeter 测试脚本能够大大缩减所需要的系统资源. 使用的命令: jmeter -n -t 脚本文件路径 -l 结果输出文件路径 -j 日志文 ...
- Jmeter笔记(Ⅲ) Jmeter的非GUI操作
在启动Jmeter时,我们会看到这样一句提示: 不要使用GUI模式(界面模式)进行负载测试,GUI模式只能用于创建测试和调试.进行负载测试时,需要时用非GUI模式. 那么为什么进行负载测试时一定要用非 ...
- jmeter入门非GUI(三)
配置见https://www.cnblogs.com/wish5714/p/9722193.html 该篇介绍非GUI模式的测试方法,及结果报告分析 简介 使用非 GUI 模式,即命令行模式运行 JM ...
随机推荐
- 错误 4 error C2039: “Sleep”: 不是“boost::this_thread”的成员
检查是否是在x64下运行的. #include <pcl/io/openni2_grabber.h> #include <pcl/visualization/cloud_viewer ...
- java使用AES-256-ECB(PKCS7Padding)解密——微信支付退款通知接口指定解密方式
1.场景 在做微信支付退款通知接口时,微信对通知的内容做了加密,并且指定用 AES256 解密,官方指定的解密方式如下: 2.导包 <!-- https://mvnrepository.com/ ...
- JS的DOM和BOM
* JavaScript分三个部分: ECMAScript标准:JS的基本的语法 DOM:Document Object Model --->文档对象模型----操作页面的元素 BOM:Brow ...
- [转]全网最!详!细!tarjan算法讲解
转发地址:https://blog.csdn.net/qq_34374664/article/details/77488976 原版的地址好像挂了..... 看到别人总结的很好,自己就偷个懒吧..以下 ...
- dnmp安装
centos7.2.box下载地址 链接: https://pan.baidu.com/s/1ny20PN2x7YuA6dwYA-P0yQ 提取码: wrdk 1 下载centos.box 新建dnm ...
- Computer Vision_33_SIFT:TILDE: A Temporally Invariant Learned DEtector——2014
此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...
- TLS1.3 握手过程特性的整理
1.密码协商 TLS协议中,密码协商的过程中Client在ClientHello中提供四种option 第一:client 支持的加密套件列表,密码套件里面中能出现Client支持的AEAD算法或者H ...
- 【问题】root账号的UID和GID永远是0吗?
参考:Does the root account always have UID/GID 0? 这实际上是2个问题 Does the superuser account always have uid ...
- 【OF框架】在部署中使用 Windows身份认证
准备 了解Windows身份认证相关知识及原理 框架开发项目完成,并完成发布包,完成在IIS中部署. 框架支持对Windows身份认证的实现,仅需要通过配置节进行配置即可切换,可以在部署的时候配置即可 ...
- php各种框架的区别
一.CI框架 CI框架是一个简单快速的PHP MVC轻量级框架,它执行效率高,快速简洁,代码量少,适合中小型项目开发,也可以做大型项目,但扩展能力不是很好,Ci支持的url模式默认为pathinfo形 ...