原文链接: https://spacevim.org/cn/use-vim-as-a-python-ide/

SpaceVim 是一个模块化的 Vim IDE,针对 Python 这一语言的支持主要依靠 lang#python 模块以及与之相关的其它模块。的这篇文章主要介绍如何使用 SpaceVim 搭建 Python 的开发环境,侧重介绍跟 Python 开发相关使用技巧。在阅读这篇文章之前,可以先阅读《使用 Vim 搭建基础的开发环境》,对语言相关以外的功能有一个大致的了解。

安装模块

SpaceVim 初次安装时默认并未启用相关语言模块。首先需要启用

lang#python 模块,通过快捷键 SPC f v d 打开配置文件,添加:

[[layers]]
name = "lang#python"

启用 lang#python 模块后,在打开 Python 文件是,就可以使用语言专属快捷键,这些快捷键都是以 SPC l 为前缀的。

代码自动补全

autocomplete 模块为 SpaceVim 提供了自动补全功能,该模块会根据当前环境自动在多种补全引擎之间选择合适的,默认的补全引擎有:deoplete、neocomplete、ycm、asyncomplete 以及 neocomplcache。几种自动补全引擎当中,要数 deoplete 的体验效果最好。

语法检查

checkers 模块为 SpaceVim 提供了语法检查的功能,该模块默认已经载入。该模块默认使用 neomake

这一异步语法检查工具。对于 Python 的支持,是通过异步调用 flake8 命令,因此需安装,可通过 pip 命令来完成:

pip install --user flake8

导入模块

在编辑 Python 文件时,可以自动导入包、自动删除无用的包、排序格式化导包;需要安装 isort,可通过以下命令安装:

pip install --user isort

工程文件跳转

SpaceVim 自带工程管理插件,可以识别项目根目录,自动跳转 alternate 文件。

快速运行

在编辑 Python 文件时,可以快速运行当前文件,这个功能有点类似于 vscode 的 code runner 插件,默认的快捷键是 SPC l r。按下后,

会在屏幕下方打开一个插件窗口,运行的结果会被展示在窗口内。于此同时,光标并不会跳到该插件窗口,避免影响编辑。在这里需要说明下,

这一功能是根据当前文件的路径调用相对应的 Python 命令。因此,在执行这个快捷键之前,应当先保存一下该文件。

代码格式化

Python 代码格式化,主要依赖 format 模块,同时需要安装相关的后台命令 yapf:

[[layers]]
name = "format"

安装 yapf:

pip install --user yapf

交互式编程

在编辑 Python 代码时,经常需要执行代码中的某一行,或者某一段代码。这时候,就可以使用 SpaceVim 的交互式编程框架。首先需要启用一个后台进程,

可以是 python 命令,也可以是 ipython 命令,快捷键为 SPC l s i。 启动后效果图如下:

之后,可以通过 SPC l s l 进行逐行发送,也可以选中区域后按 SPC l s s 发送选中的区域:

断点调试

首先,需要载入 debug 模块:

[[layers]]
name = "debug"

该模块提供了一套基本的调试快捷键,比如添加断点、单步执行等,更多的快捷键,可以参考 debug 模块文档。

使用 Vim 搭建 Python 开发环境的更多相关文章

  1. Ubuntu下利用vim搭建python开发环境

    1. 安装vim $ sudo apt-get install vim 2. 安装ctags,ctags用于支持taglist,必需! $ sudo apt-get install ctags 3. ...

  2. Windows搭建python开发环境,python入门到精通[一]

    从大学开始玩python到现在参加工作,已经有5年了,现在的公司是一家.net的公司用到python的比较少,最近公司有新项目需要用到python,领导希望我来跟其他同事training,就有了这篇博 ...

  3. [转]在Eclipse中搭建Python开发环境

    在Eclipse中搭建Python开发环境 来自: http://hi.baidu.com/hqwfreefly/blog/item/2543181d0afd9604314e150e.html 前言 ...

  4. Windows搭建python开发环境

    python你不去认识它,可能没什么,一旦你认识了它,你就会爱上它 基本概念Python(英语发音:/ˈpaɪθən/), 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum ...

  5. 在Eclipse中搭建Python开发环境

    在Eclipse中搭建Python开发环境 来自: http://hi.baidu.com/hqwfreefly/blog/item/2543181d0afd9604314e150e.html 前言 ...

  6. 【转】使用Eclipse搭建Python开发环境

    因为要进行自动化测试,所以要搭建Python开发环境.这里将使用Eclipse+pyDev进行搭建,在此作为笔记记录下来. 需要的组件: 1.Eclipse SDK 3.7(这里将不再叙述Eclips ...

  7. visual studio 2015 搭建python开发环境,python入门到精通[三]

    在上一篇博客Windows搭建python开发环境,python入门到精通[一]很多园友提到希望使用visual studio 2013/visual studio 2015 python做demo, ...

  8. vim配置python开发环境

    vim配置python开发环境 一.安装vim sudo apt-get install vim 二.vim基础配置 #Centos6.5 /usr/share/vim/vim72 vi /etc/v ...

  9. Ubuntu系统下搭建Python开发环境

    之前演示了在Windows中安装Pycharm,很简单.下面介绍一下如何在Ubuntu中安装Pycharm 1.更新Python至3.5.1,执行以下命令: sudo add-apt-reposito ...

随机推荐

  1. hystrix源码之AbstractCommand

    AbstractCommand HystrixCommand和HystrixObservableCommand的父类.每个command对应一个HystrixCommandKey.HystrixThr ...

  2. Flutter学习六之实现一个带筛选的列表页面

    上期实现了一个网络轮播图的效果,自定义了一个轮播图组件,继承自StatefulWidget,我们知道Flutter中并没有像Android中activity的概念.页面见的跳转是通过路由从一个全屏组件 ...

  3. 【Unity 插件】Lean Pool 使用

    2020-09-11 Lean Pool 是一个轻量级的游戏对象池库,它可以轻松的帮助你的游戏提高性能.当然,Lean Pool也可以工作于普通的C#类. 目录: 1.Lean Pool使用 2.Le ...

  4. Java随谈(三)如何创建好一个对象?

    本文推荐阅读时间30分钟 大家都知道,在编写Java程序里,一般就是处理各种各样的对象,那么,你知道一共有多少种创建对象的方式吗? 希望大家能稍微思考一下再往下翻. 答案是4种 new 一个对象 反射 ...

  5. 吴恩达Machine Learning学习笔记(三)--逻辑回归+正则化

    分类任务 原始方法:通过将线性回归的输出映射到0-1,设定阈值来实现分类任务 改进方法:原始方法的效果在实际应用中表现不好,因为分类任务通常不是线性函数,因此提出了逻辑回归 逻辑回归 假设表示--引入 ...

  6. 网络端口及nmap扫描

    端口: 计算机与外界交流的出口,在渗透测试当中常用的端口号: 21号端口FTP:文件传输协议 23号端口Telent :远程登录接口 53号端口 DNS: 域名端口 80号端口HTTP:超文本传输协议 ...

  7. JVM内存模型不再是秘密

    前言 上篇文章我们一起了解了jvm虚拟机类的加载机制,而且是以一种纯大白话进行的一场闲聊,相信小伙伴们应该印象深刻,感兴趣的小伙伴可以重温一下上一篇文章大白话谈JVM的类加载机制. 当jvm加载了类后 ...

  8. Centos-强制将内存中数据写入磁盘-sync

    sync 强制将内存中数据写入磁盘,以免数据丢失.在linux系统中,修改过的操作并不会立即写入磁盘,而是先写到内存中,通过buffer队列当达到指定时间或者指定大小再一次性写入磁盘,提高IO效率,正 ...

  9. 一种统计ListView滚动距离的方法

    注:本文同步发布于微信公众号:stringwu的互联网杂谈 一种统计ListView滚动距离的方法 ListView做为Android中最常使用的列表控件,主要用来显示同一类的数据,如应用列表,商品列 ...

  10. PageRank算法(网页排名)

    Google用它来体现网页的相关性和重要性