vim配置python开发环境搭建_如何将Vim配置成适用于Python开发的IDE环境(2020最新)

本文介绍在 如何将Vim打造成IDE编辑器 一文的基础上,当前使用的 Vim 已经具备了 IDE 开发环境的基本功能,主要包括:语法高亮、代码自动补齐、函数跳转、目录树形展示、全局搜索、代码折叠等。新增一些适用于 Python 开发的 Vim 插件和配置,助力 Vim 成为 Python 开发工程师们的良配。

1. Vim内一键执行Python代码

常用的 IDE 编辑器都提供一键执行代码的命令或插件 (如 Visual Studio 的 F5 快捷键,Sublime Text的 command + b 组合键)。不退出 Vim 而直接执行 Vim 当前打开的 Python 文件是一个非常高效的操作方式。

在 ~/.vimrc 配置文件 中添加如下配置就可以实现在 Vim 的普通模式下按 F5 一键执行 Python 代码。

filetype plugin on

" 按 F5 执行当前 Python 代码"

map :call PRUN()

func! PRUN()

exec "w"

if &filetype == 'python'

exec "!python %"

endif

endfunc

注:上述配置使用了 Vim 加载文件类型插件功能 (即 filetype plugin on ),当检测到当前打开的文件类型是 Python 时,则会执行 !python % 命令,该命令的含义请参考《Vim内部执行shell命令》一文。

2. Python语言自动补齐插件jedi-vim

自动补齐几乎是任何一个 IDE 环境都需要支持的功能,Vim下 最常用也最知名的 自动补齐插件是YouCompleteMe 。但是,对于 Python 开发来说,Vim教程网(https://vimjc.com)更倾向于推荐jedi-vim插件。

jedi-vim 是 jedi 作者开源的一个基于 jedi 库实现的 Vim 插件,提供了在 Vim 下对 Python 语言的优秀的自动补全能力,几乎支持了Python的所有语法特性。( 注 :YouCompleteMe 插件实际上也是使用 jedi-vim 来实现 Python 代码的自动补全)。

默认设置下,Vim 插入模式下按 就可以触发 jedi-vim 插件的自动补齐功能,输入 . 时也会自动触发自动补齐提醒。除此之外,该插件还支持:跳转到函数定义、显示 Python 文档 (Pydoc)、打开某个引用的模块等强大的功能,建议大家安装试用。

3. 模糊搜索插件ctrlp

模糊搜索某个目录下文件名为 xxx 的文件是日常开发工作中经常遇到的场景 (例如,基于记忆中的部分关键词快速打开某个 Python 函数或类的定义文件)。

Vim教程网 (https://vimjc.com)推荐使用ctrlp插件在 Vim 内直接完成这种模糊操作并在 Vim 内打开要搜索的目标文件。

ctrlp 插件使用纯 vimscript 语言实现,依赖少且配置简单,是一款功能强大且非常流行的 Vim 插件。正如插件名,Vim 普通模式下按 就可以使用该插件进行模糊搜索。

除了搜索文件,ctrlp 插件还可以模糊搜索Vim缓冲区内容、Vim标签等内容。推荐阅读《Vim模糊搜索插件ctrlp》一文查看该插件的详细功能介绍和使用方法。

4. Python代码缩进指示插件indentLine

Python 是一门对缩进非常敏感的语言,而缩进又是一个在 Vim 编辑器下对人眼很不友好的展示方式,因此Vim教程网(https://vimjc.com)推荐使用indentLine 插件来通过指示线的方式显式地显示 Python 代码缩进。

indentLine 插件实现的功能虽然比较单一,但是提供了较为灵活的配置功能,包括:自定义缩进指示线的颜色、修改缩进指示线的符号等。

在Vim命令行模式下可以使用 :IndentLinesToggle 命令打开或者关闭显示缩进指示线,当需要复制当前 Vim 窗口中的部分 Python 代码时,该命令非常实用 (毕竟复制代码时并不希望复制额外显式的缩进指示线)。

注:低于 7.3 版本的 Vim 或编译时未开启 conceal 功能的 Vim 均无法使用 indentLine 插件提供的功能。

5. Python代码自动格式化插件autopep8

个人觉得,对于一名有基本技术追求的 程序员 来说,满足 PEP8 规范的 Python 代码是日常编码的基本原则。

vim-autopep8是一款自动格式化代码的Vim插件,安装后在 Vim 普通模式下执行 :Autopep8 命令就可以按照 PEP8 标准规范自动格式化 Python 源代码,省去了大量的手工调整代码格式的时间。

6. Python语法检测插件vim-flake8

Vim 默认配置下对 Python 的语法支持有限,如果需要在编写代码时及时得到变量拼写错误等提示,可使用 syntastic 插件。但 syntastic 是针对所有编程语言的语法检查,可以安装 vim-flake8 插件来实现单独针对 Python 语言的语言检测。

vim-flake8 插件其实整合了 pyflakes 插件与 autopep8 插件,该插件依赖 flake8 (Python官方发布的一款辅助检测 Python 代码是否规范和正确的工具) 工具,可通过 pip3 install flake8 命令进行安装。

7. 括号/引号自动补齐插件auto-pairs

auto-pairs插件的主要功能是针对各种括号和引号提供自动补全、自动删除等,能有效提供 Vim 插入模式下的输入效率。

例如,使用 auto-pairs 插件,可以在 Vim 插入模式下,输入左大括号后自动补全右大括号;在一对括号之间按回车键,将自动分为 3 行并调整缩进和光标位置。

auto-pairs 插件的功能类似于Vim教程网(https://vimjc.com)介绍的另外一款Vim插件delimitMate,大家可根据自己的喜好决定安装哪一个。

8. 多色彩括号显示插件rainbow_parenthsis

使用 Vim 编写 Python 代码时经常会出现一行代码中有多重括号嵌套的场景,这使得阅读和分析这种连续嵌套的多重括号变得较为困难。

rainbow_parenthsis 是一个对不同层次的括号 (包括 () 、 [] 、 {} 、 <> ) 使用不同彩色进行高亮匹配显示的 Vim 插件,虽然功能较为简单,但是却十分实用。

Vim 命令行模式下使用 :RainbowParenthesesToggle 命令可打开 rainbow_parenthsis 插件的多色彩括号匹配功能,也可以通过Vim 的 autocmd 命令设置在打开 Vim 后自动启用 rainbow_parenthsis 插件。

9. 高效率代码注释插件nerdcommenter

快速注释或取消注释多行代码是编程中经常遇到的一种场景,Vim教程网(https://vimjc.com)之前有文章介绍过三种 Vim下快速注释/取消注释多行的方法 。

出于效率和可用性考虑,这里推荐 nerdcommenter 插件。nerdcommenter 插件与NERDTree 插件的作者是同一个人 (插件名都相似),支持 C、C++、 Java 、Python 等多种语言的代码注释功能 (使用了 Vim 的 commentstring 选项),为了保证 nerdcommenter 插件能识别出当前源码文件的类型,需要打开Vim 加载文件类型插件的功能。

在 Vim 的普通模式和可视化模式下,nerdcommenter 插件可以实现快速注释连续的多行代码,也可以注释掉从当前光标所在位置到行尾的剩下内容,还可以注释掉从当前光标所在位置到行尾的剩下内容。在 ~/.vimrc 文件中添加设置 map ci 可以实现按 F4 键快速注释和反注释当前行。

10. Vim内集成Git

不退出 Vim 而直接执行基本的 Git 命令是一个非常便利的设置。vim-fugitive 是一个非常优秀的、集成了各种 Git 操作的 Vim 插件。

例如,Vim 命令行模式下使用 :Gstatus 命令可以查看当前工作目录和暂存区的状态,等价于在 Shell 终端执行 git status 命令;在当前Vim窗口执行 :Gwrite 命令会将当前文件添加到 git 工作区,等价于 git add 操作;在当前窗口执行 :Gread 命令会重新检出当前文件,相当于对当前文件执行 git checkout 等。

《女程序员说》

原创不易,希望能给小女子的公众号加个关注~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值