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

栏目: IT技术 · 发布时间: 5年前

内容简介:本文介绍在常用的 IDE 编辑器都提供一键执行代码的命令或插件 (如 Visual Studio 的 F5 快捷键,Sublime Text的在

本文介绍在 如何将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 <F5> :call PRUN()<CR>
func! PRUN()
    exec "w" 
    if &filetype == 'python'
        exec "!python %"
    endif
endfunc

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

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

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

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

3. 模糊搜索插件ctrlp

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 行并调整缩进和光标位置。

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

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 插件。

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

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

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

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

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

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

10. Vim内集成Git

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

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

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

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

《女程序员说》

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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

A Philosophy of Software Design

A Philosophy of Software Design

John Ousterhout / Yaknyam Press / 2018-4-6 / GBP 14.21

This book addresses the topic of software design: how to decompose complex software systems into modules (such as classes and methods) that can be implemented relatively independently. The book first ......一起来看看 《A Philosophy of Software Design》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

MD5 加密
MD5 加密

MD5 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具