配置基于python的VIM环境

安装插件管理工具

为防止过多插件管理的麻烦,首先安装vim的插件管理工具Vundle。vundle本身的github软件已经有相关的中文文档,地址如下:

vundle官方中文文档

复制其配置,

set nocompatible              " 去除VI一致性,必须
filetype off " 必须 " 设置包括vundle和初始化相关的runtime path
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" 另一种选择, 指定一个vundle安装插件的路径
"call vundle#begin('~/some/path/here') " 让vundle管理插件版本,必须
Plugin 'VundleVim/Vundle.vim' " 你的所有插件需要在下面这行之前
call vundle#end() " 必须
filetype plugin indent on " 必须 加载vim自带和插件相应的语法和文件类型相关脚本
" 忽视插件改变缩进,可以使用以下替代:
"filetype plugin on

” 将你自己对非插件片段放在这行之后

call vundle#begin()call vundle#end()

加入你要安装的插件

如果是安装github上的插件使用

Plugin '用户名/仓库名'即可

在本地等的插件安装请查看官方文档

在VIMRC中加入语句后,在VIM中运行PluginInstall即可

vimrc的基本配置

缩进

根据PEP 8[1],Python文件中建议用空格代替Tab,且缩进应为四个空格。要自动实现此功能,可加入:

filetype plugin indent on
autocmd FileType python setlocal et sta sw=4 sts=4

与TAB相关的变量表

变量名 缩写 含义
tabstop=X ts 编辑时一个TAB字符占多少个空格的位置。
shiftwidth=X sw 使用每层缩进的空格数。
(no)expandtab (no)et 是否将输入的TAB自动展开成空格。开启后要输入TAB,需要Ctrl-V
softtabstop=X sts 方便在开启了et后使用退格(backspace)键,每次退格将删除X个空格
(no)smarttab (no)sta 开启时,在行首按TAB将加入sw个空格,否则加入ts个空格。

代码折叠

以缩进作为依据对python的代码进行折叠

autocmd FileType python setlocal foldmethod=indent
"默认展开所有代码
set foldlevel=99

安装python相关插件

flake8

flake8是代码错误检查插件Pyflake和检查代码是否符合标PEP8准插件的结合

Flake8的github地址



第12行中插入了flake8的github地址

之后在vim中运行PluginInstall即安装成功

F7运行

使用Bundle安装PEP8后按F7我出现了找不到FLAKE8的错误

我使用pip安装FLAKE8后依然的不到解决

在查找stackoverflow的相关社区后使用包管理安装

sudo pip install python-flake8

问题得到了解决

Pydiction

Pydiction相比YCM的安装编译简单的太多了,YCM我查找了多个资料最终才得以成功。使用Vundle安装Pydiction

在你的.vimrc中加入如下配置

filetype plugin on

let g:pydiction_location = '/home/user/.vim/bundle/pydiction/complete-dict'

请根据你的安装路径修改pydiction的路径

如果要更改补全出现的行数

let g:pydiction_menu_height = 3

保存后打开py文件就有了自动补全功能

YouCompleteMe

YouComPlete的github地址

YouComPlete的安装比较复杂,即使安装之后仍然需要编译

你要安装它之前,确保你已经安装了以下必备软件

build-essential

cmake

python-dev

python3-dev

如果没有请使用包管理进行安装

sudo apt-get install build-essential cmake

sudo apt-get install python-dev python3-dev

由于使用Plugin方式出现了错误,我直接在cd ~/.vim/bundle

后clone了它的仓库

git clone https://github.com/Valloric/YouCompleteMe ~/.vom/bundle/YouComPleteMe

使用git submodule update --init --recursive对插件进行更新

如果不需要对C类语言(C# C++等)的支持,直接使用以下语句

cd ~/.vim/bundle/YouCompleteMe
./install.py

即可

如果还需要对C类语言的支持

cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer

需要已经安装了Clang

之后,还要对YCM进行配置

具体的配置可以参考下面的网址

VIM智能补全插件YCM

配置基于python的VIM环境的更多相关文章

  1. 基于Python的Appium环境搭建合集

    自动化一直是测试圈中的热聊,也是大家追求的技术方向.在测试中,往往回归测试也是测试人员的“痛点”.对于迭代慢.变更少的功能,就能用上自动化来替代人工回归,减轻工作量. 问题 在分享环境搭建之前,先抛出 ...

  2. 代码编辑器[0] -> Vim/gVim[0] -> 基于 Python 的 gVim 环境配置(Windows)

     环境配置 / Environment Setup 基于Python开发的 gVim 环境配置(Windows) 使用方式参考 Vim 的使用. 1 基于vundle进行配置 Vim有多个扩展管理器, ...

  3. 通过nginx搭建基于python的web环境

    前言: 在搭建开始前,我们先来梳理下web服务工作流程,先看下图: 1.用户(PC)向web服务器发起http请求 2.web服务器判断用户请求文件是否为静态文件,是则直接读取静态文件并返回给用户,不 ...

  4. 基于python的scrapy环境搭建

    0.1安装python软件 32位机的电脑安装python-3.6.3.exe 64位机的电脑安装python-3.6.3-amd64.exe 0.1.1 python环境搭建 执行安装程序 选择Ad ...

  5. MAC平台基于Python的Appium环境搭建

    前言 最近笔者要为python+appium课程做准备,mac在2019年重新安装了一次系统,这次重新在mac下搭建appium环境,刚好顺带写个文稿给大家分享分享搭建过程. 一.环境和所需软件概述 ...

  6. centos6.5下Python IDE开发环境搭建

    自由不是想做什么就做什么,而是想不做什么就不做什么.        ---摘抄于2016/11/30晚 之前学习了一段时间的Python,但所有部署都在windows上.正赶上最近在学习liux,以后 ...

  7. 配置基于Vim的Python开发环境

    配置基于Vim的Python开发环境插件 Vundle YouCompleteMe NERDTree Vim-Jinja2-Syntax set nocompatible " be iMpr ...

  8. 【vim环境配置】详细实录

    [写在前面] 以下的所有内容主要参照: https://github.com/yangyangwithgnu/use_vim_as_ide . 原blog作者写的非常用心,建议大家都去看看.(个人觉得 ...

  9. Vim配置及说明——IDE编程环境

    Vim配置及说明——IDE编程环境 Vim配置及说明——IDE编程环境 1.基本及字体 2.插件管理 3.主题风格 4.窗口设置 5.目录树导航 6.标签导航 7.taglist 8.多文档编辑 9. ...

随机推荐

  1. Java时区切换时的需要注意

    前言 Java中的时间操作,也许大家都很熟悉,Date.Calendar.SimpleDateFormat等.但或许我们都只是会调用常见接口方法.今天解决的bug,关于TimeZone,即时区. 经常 ...

  2. WebAPI 生成验证码

    private HttpResponseMessage CreateCheckCodeImage(string checkCode) { HttpResponseMessage result = ne ...

  3. Linux里lftp总结

    lftp的功能比较强大,相比原来用ftp,方便了很多. 1.登陆: lftp ftp://yourname@site pwd:***** 或 open ftp://yourname@site 基本操作 ...

  4. java应用之openfire入门篇

    前言 openfire是一个聊天服务端,好比qq服务端.本质是个socker server. openfire通讯协议是 xmpp  ,什么是xmpp参考百科 https://baike.baidu. ...

  5. Netflix:我们为什么要将GraphQL引入前端架构?

    作者|Artem Shtatnov译者|无明 在这篇文章中,我们将分享 Netflix 在这些应用程序的前端架构中引入 GraphQL 所积累的经验. 在内部,我们把用于管理广告创建和组装的主要应用程 ...

  6. 几种RAID级别的比较

    等级 概要 冗余 盘数 读快 写快 RAID 0 便宜.快速.危险 No N Yes Yes RAID 1 高速度.简单.安全 Yes 2(通常) Yes No RAID 5 安全(速度)成本折中 Y ...

  7. jquery实现左侧菜单 效果

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

  8. php结合Redis实现100万用户投票项目,并实时查看到投票情况的案例

    场景:某网站需要对其项目做一个投票系统,投票项目上线后一小时之内预计有100万用户进行投票,希望用户投票完就能看到实时的投票情况 这个场景可以使用redis+mysql冷热数据交换来解决. 何为冷热数 ...

  9. SQL 左连接

    SQL左链接LEFT JOIN关键字返回左表(表1)中的所有行,即使在右表(表2)中没有匹配.如果在正确的表中没有匹配,结果是NULL. SQL LEFT JOIN 语法 SELECT _column ...

  10. Base64和3DES算法

    Base64加密算法 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息.它的优点是算法效率高,编码出来的结果比较简短,同时也具有不可读性. ...