Vim及其用于Python的自动补全功能

 更新时间:2023年09月28日 11:01:56   作者:迹忆客  
Vim是一款功能强大的文本编辑器,常被作为Python开发环境的首选,这篇文章主要介绍了用于 Python 的 Vim 自动完成,需要的朋友可以参考下

Vim(Vi Improved的缩写)是一款功能强大的文本编辑器,常被作为Python开发环境的首选。本文将探讨Vim及其用于Python的自动补全功能。

Vim和Python

Vim在全球开发者中一直存在,并以其持续不断的技术进步而闻名。Vim遵循一种关于功能的特定思想,最好用"键盘的效率"来解释。

这意味着Vim的设计理念是,就像一个用笔和纸的作家一样,软件开发者应该能够高效地编写代码,而不被其他琐事干扰,比如滚动或查找选项等。对于开发者来说,键盘就是他们的笔。

Vim采用结构化的命令语言,最初在其中操作可能会令人生畏。在真正掌握在像Vim这样的无干扰环境中进行编程的艺术之前,确实需要熟悉许多键盘命令。

然而,这些命令存在于一个逻辑且易于理解的堆栈中,这使得我们更快地适应它们。

Vim的特点

Vim和Python组合起来是一个强大的工具,是许多软件开发者的首选。

Vim易于设置为一个集成开发环境(IDE),提供了许多插件。这些插件可以帮助软件开发者定制Vim,并创建最适合其开发需求的环境。

尽管本文无法涵盖所有可用功能来充分利用Vim作为IDE的功能,但我们可以列出一些最受欢迎的功能:

  • 分割布局: 我们可以使用命令 sp <文件名>在当前文件下方打开一个新文件。
  • 代码折叠: 我们可以折叠那些在当前阶段不需要完整查看的类或方法。
  • 缓冲区: Vim通过缓冲区方便我们访问最近打开的文件。只需使用b <缓冲区名称或编号>打开文件,使用ls列出所有缓冲区。
  • UTF-8支持: 我们可以通过设置UTF-8编码来确保Vim使用UTF-8。可以使用以下脚本进行设置:set encoding=utf-8。
  • 标记不必要的空格: 在使用类似Vim这样的编辑器时,开发过程中可能会出现额外的空格。我们可以让Vim标记这些空格,以便轻松发现并删除它们。
au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/

自动缩进: 在使用Python作为开发语言时,缩进是开发阶段的关键部分。自动缩进功能帮助开发者不必过多担心由于额外或无缩进而导致的错误。

有时,当方法的定义超过一行时,自动缩进可能不起作用。我们可以通过设置indentpython.vim来解决这个问题:

Plugin 'vim-scripts/indentpython.vim'

语法检查: 任何现代IDE的一个标志就是它能够保持对任何开发语言的语法检查。我们可以通过添加语法插件和flake8插件来为Vim设置语法检查,以添加pep8功能。

Syntactic插件:

```bash Plugin 'vim-syntastic/syntastic' ```

Flake8插件:

```bash Plugin 'nvie/vim-flake8' #添加pep8 ``` 1. PEP8: 我们可以设置Vim的pep8检查,以保持编码标准的审查。

Vim的Python自动补全

实现Python自动补全的最佳插件是YouCompleteMe。虽然YouCompleteMe使用了其他各种自动补全库(如Jedi),但它是目前最适合最新Python版本的插件。

我们可以使用Vundle在我们的环境中安装和设置YouCompleteMe,如下所示:

Bundle 'Valloric/YouCompleteMe'

关于所有操作系统类型的完整安装说明可以在详尽的文档中找到。

下面是在64位Linux系统上进行设置的步骤:

首先,运行以下命令安装所有的自动补全包。下面的命令将通过Vundle安装YCM插件,CMake、Vim和Python。如果您已经安装了这些包,它们将不会被重新安装。

apt install build-essential cmake vim-nox python3-dev

接下来,使用以下命令安装mono-complete、go、node、java和npm:

apt install mono-complete golang nodejs default-jdk npm

现在,我们只需编译YCM,方法如下:

cd ~/.vim/bundle/YouCompleteMe
python3 install.py --all

安装过程非常简单,但我们可以进行自定义配置,如下所示:

let g:ycm_autoclose_preview_window_after_completion=1
map <leader>g  :YcmCompleter GoToDefinitionElseDeclaration<CR>

这个脚本确保一旦完成自动补全,窗口就会关闭,并在脚本的第二行创建一个GoTo定义的快捷方式。

到此这篇关于用于 Python 的 Vim 自动完成的文章就介绍到这了,更多相关Python Vim 自动完成内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • jupyter修改文件名方式(TensorFlow)

    jupyter修改文件名方式(TensorFlow)

    这篇文章主要介绍了jupyter修改文件名方式(TensorFlow),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比

    python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比

    这篇文章主要给大家介绍了关于python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • python实现登陆知乎获得个人收藏并保存为word文件

    python实现登陆知乎获得个人收藏并保存为word文件

    这篇文章主要介绍了python实现登陆知乎获得个人收藏并保存为word文件,本文直接给出实现代码,需要的朋友可以参考下
    2015-03-03
  • 用代码帮你了解Python基础(2)

    用代码帮你了解Python基础(2)

    这篇文章主要用代码帮你了解Python基础,使用列表,元组和条件判断的示例代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Python 转义字符详细介绍

    Python 转义字符详细介绍

    这篇文章主要介绍了Python 转义字符详细介绍的相关资料,需要的朋友可以参考下
    2017-03-03
  • Python使用python-docx库复制Word文档样式的实现方法

    Python使用python-docx库复制Word文档样式的实现方法

    在日常办公中,我们经常需要处理Word文档的格式调整、内容更新等任务,本文将介绍如何使用python-docx库来复制一个Word文档的内容及样式,并展示如何利用此方法进行文档内容的自动化处理,需要的朋友可以参考下
    2025-05-05
  • Python内建函数之raw_input()与input()代码解析

    Python内建函数之raw_input()与input()代码解析

    这篇文章主要介绍了Python内建函数之raw_input()与input()代码解析,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • Python GUI编程 文本弹窗的实例

    Python GUI编程 文本弹窗的实例

    今天小编就为大家分享一篇Python GUI编程 文本弹窗的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python namedtuple命名元组实现过程解析

    Python namedtuple命名元组实现过程解析

    这篇文章主要介绍了Python namedtuple命名元组实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • python实现删除列表中某个元素的3种方法

    python实现删除列表中某个元素的3种方法

    这篇文章主要介绍了python实现删除列表中某个元素的3种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01

最新评论