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

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

内容简介:本文介绍在常用的 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最新)

《女程序员说》

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


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

查看所有标签

猜你喜欢:

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

新媒体十讲

新媒体十讲

范卫锋 / 中信出版社 / 2015-8 / 38.00元

“新媒体参谋长”范卫锋解答:媒体人如何转型?怎么创业?如何看准新媒体项目进行投资? 作为“新媒体的参谋长”,本书作者范卫锋将十余年从业亲历的经验教训、行业内幕串联成册,从定位、突破、扩张、商业模式、价值几个方面剖析新媒体策略,解密国内媒体圈转型、创业、投资的实操法则。案例信手拈来,观点鞭辟入里,打造出国内第一本由专业新媒体投资人撰写的新媒体实战兵法,涉及媒体人转型、新媒体实操、媒体公关营销、......一起来看看 《新媒体十讲》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具