使用 VIM 打造自己的 python3 IDE

一、快速安装常用插件和插件管理器

要想让 vim 更强大,就需要给它安装相应的插件,要安装和管理这些插件,首先需要安装一个插件管理器。 这里选择的是 Vundle

快速安装相关插件:

从 ftp 中下载已经打包好的软件包到本地(FTP 的路径 /var/ftp/python/bundle.tar.gz),并解压到用户家目录下的 .vim 目录中

mkdir  ~/.vim
tar bundle.tar.gz  -C  ~/.vim/

安装必要的 python 模块

# 此文件假如有,则先删除
rm -rf /usr/local/bin/pip

# 安装 epel 源
yum install epel-release

# 为python2 安装 pip 工具
yum install python2-pip

# 重新加载环境变量,让系统能正确识别到刚安装好的 pip
source /etc/profile

# 升级 pip
pip install --upgrade pip

# 安装需要的模块
pip  install jedi autopep8  flake8

二、完整的 .vimrc

将下面的内容保存到用户家目录下的 .vimrc 文件中
注意:使用 vi 编译 .vimrc 文件

syntax on

set nocompatible              " 必须
set backspace=indent,eol,start
filetype off                  " 关闭自动文件类型检查,必须

" 设置运行时包含 Vundle 的路径和 初始化,必须
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()  " 开始调用  Vundle 进行插件的管理

" 首先必须加载 Vundle 插件
Plugin 'VundleVim/Vundle.vim'

" 在下面编写自己需要用的的插件
"""""""""""""""""""""""""""""""

" Python 代码自动补全提示
Plugin 'davidhalter/jedi-vim'

" 缩进标识
Plugin 'Yggdroot/indentLine'
let g:indentLine_color_term = 239
"let g:indentLine_char='🍉'
"let g:indentLine_concealcursor = 'inc'
"let g:indentLine_conceallevel = 2

Plugin 'MarcWeber/vim-addon-mw-utils'

" 文件名模糊匹配
Plugin 'tomtom/tlib_vim'

Plugin 'garbas/vim-snipmate'

" Optional:
Plugin 'honza/vim-snippets'

" Python 代码规范
Plugin 'tell-k/vim-autopep8'
Plugin 'nvie/vim-flake8'

" 自动括号匹配
Plugin 'jiangmiao/auto-pairs'

" 不同括号显示不同颜色
Plugin 'kien/rainbow_parentheses.vim'
let g:rbpt_colorpairs = [
    \ ['brown',       'RoyalBlue3'],
    \ ['Darkblue',    'SeaGreen3'],
    \ ['darkgray',    'DarkOrchid3'],
    \ ['darkgreen',   'firebrick3'],
    \ ['darkcyan',    'RoyalBlue3'],
    \ ['darkred',     'SeaGreen3'],
    \ ['darkmagenta', 'DarkOrchid3'],
    \ ['brown',       'firebrick3'],
    \ ['gray',        'RoyalBlue3'],
    \ ['darkmagenta', 'DarkOrchid3'],
    \ ['Darkblue',    'firebrick3'],
    \ ['darkgreen',   'RoyalBlue3'],
    \ ['darkcyan',    'SeaGreen3'],
    \ ['darkred',     'DarkOrchid3'],
    \ ['red',         'firebrick3'],
    \ ]
" 最多多少个
let g:rbpt_max = 16
let g:rbpt_loadcmd_toggle = 0

" 打开Vim后自动启用rainbow_parenthsis插件
au VimEnter * RainbowParenthesesToggle

" 同时开启对以下 3 种扩号的多彩色高亮显示
au Syntax * RainbowParenthesesLoadRound " ()
au Syntax * RainbowParenthesesLoadSquare " []
au Syntax * RainbowParenthesesLoadBraces " {}

" 快速注释
Plugin 'preservim/nerdcommenter'

" 所有要使用的插件,必须在下面一行之前
call vundle#end()            " 必须的
filetype plugin indent on    " 打开文件类型检查,必须的


" 下面是帮助信息
" :PluginList       - 列出已经安装且配置好的插件
" :PluginInstall    - 安装插件
" :PluginUpdate     - 更新现有的插件
" :PluginClean      - 清空没有在 .vimrc 文件中配置的插件
""""""""""""""""""""""""""""""""""""

" 把你的非插件的其他设置放在这行后面

" 保存 .vimrc 文件后,配置立刻生效
autocmd! bufwritepost $HOME/.vimrc source %

" 开启自动匹配
set showmatch

"设置按下 Tab 键,实际输入的是空格
set expandtab

"设置 expandtab 后,设置一下按一次 Tab 键输入  4 个空格
set tabstop=4

"set smartindent

" F9 关闭自动缩进
set pastetoggle=<F9>

"自动缩进时候,缩进 4 个空格
set shiftwidth=4

"总是显示状态栏
set laststatus=2
"显示光标当前位置
set ruler

"表示如果当前文件在 Vim 外被修改且未在 Vim 里面重新载入的话,则自动重新读取。
set autoread

"设置 Vim 窗口标题。
set title

"关闭错误提示的响铃
set noerrorbells

" 基于缩进进行代码折叠
set foldmethod=indent

" 启动 Vim 时关闭折叠
set nofoldenable
" Vim打开文件后,重复使用操作命令 za 可打开或关闭当前折叠;
" zM 用于关闭所有折叠,zR 则用来打开所有折叠。


"设置新建文件时候,自动向文件中添加内容
autocmd BufNewFile *.sh,*.py,*.go exec ":call AutoSetFileHead()"
function! AutoSetFileHead()
    "对于 shell 脚本文件 "
    if &filetype == 'sh'
        call setline(1, "#!/bin/bash")
    endif

    "对于 python3 文件 "
    if &filetype == 'python'
        call setline(1, "#!/usr/bin/env python3")
        call append(1, "# Author: 西瓜甜🍉")
        call append(2, "# Email: shark@126.com")
    endif

    "对于 golang 文件 "
    if &filetype == 'go'
        call setline(1, "#!/usr/bin/env go")
        call append(1, "# Author: 西瓜甜🍉")
        call append(2, "# Email: shark@126.com")
        call append(3, "")
        call append(4, "package main")
    endif

    "自动将光标定位到文件末尾"
    normal G

    " 新建一行
    normal o
    normal o
endfunc


""""""""""""""""""""""
    "Quickly Run
""""""""""""""""""""""
map <F5> :call RunNow()<CR>
func! RunNow()
    exec "w"
    if &filetype == 'c'
        exec "!g++ % -o %<"
        exec "!time ./%<"
    elseif &filetype == 'java'
        exec "!javac %"
        exec "!time java %<"
    elseif &filetype == 'sh'
        :!time bash %
    elseif &filetype == 'python'
        exec "!time python3 %"
    elseif &filetype == 'html'
        exec "!firefox % &"
    elseif &filetype == 'go'
    "   exec "!go build %<"
        exec "!time go run %"
    endif
endfunc

三、各种插件含义和用法

1 安装 Vundle

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

2 设置 Vundle

在用户家目录下的 .vimrc 文件的开头,添加如下内容

切记使用 vi 命令打开并编辑

set nocompatible              " 必须
filetype off                  " 关闭自动文件类型检查,必须

" 设置运行时包含 Vundle 的路径和 初始化,必须
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()  " 开始调用  Vundle 进行插件的管理

" 首先必须加载 Vundle 插件
Plugin 'VundleVim/Vundle.vim'

" 在下面编写自己需要用的的插件

" 所有要使用的插件,必须在下面一行之前
call vundle#end()            " 必须的
filetype plugin indent on    " 打开文件类型检查,必须的


" 下面是帮助信息
" :PluginList       - 列出已经安装且配置好的插件
" :PluginInstall    - 安装插件
" :PluginUpdate  - 更新现有的插件
" :PluginClean      - 清空没有在 .vimrc 文件中配置的插件
"
" 把你的非插件的其他设置放在这行后面

设置好配置文件后,可通过下述两种方法安装插件:

(1) 在Vim命令行模式下运行命令:PluginInstall

(2) 在终端命令行下通过命令vim +PluginInstall +qall直接安装

接着,退出 vi 并在命令行中执行如下命令安装Vundle插件

vim +PluginInstall +qall

四、安装自动代码提示补全插件 jedi-vim

在这里插入图片描述

  • Completion
  • Goto assignment g (typical goto function)
  • Goto definition d (follow identifier as far as possible, includes imports and statements)
  • Goto (typing) stub s
  • Show Documentation/Pydoc K (shows a popup with assignments)
  • Renaming r
  • Usages n (shows all the usages of a name)
  • Open module, e.g. :Pyimport os (opens the os module)

.vimrc 文件中添加下面的配置

Plugin 'davidhalter/jedi-vim'

接下来安装安装此插件,在 vim 命令行模式中输入如下命令

:PluginInstall

在 vim 的编辑模式中使用 . 可以激活自动提示功能
使用 Ctrl+n 也可以激活自动提示功能,并且还可以进行自动补全

四、显示缩进线的插件 indentLine

indentLine 插件在 Vim 界面中显示出来的缩进指示线,使用了 Vim 提供的 conceal 功能。

image.png

1 先决条件

vim 需要是 7.3 及其以上, Centos7的 vim 都是 7.4 的,所以应该都支持此功能。

2 安装和配置

如果使用vundle安装indentLine,只需要在Vim配置文件 ~/.vimrc 中增加如下内容
Plugin 'Yggdroot/indentLine'

并使用 :PluginInstall 进行安装即可。

3 使用

在Vim命令行模式下可以使用 :IndentLinesToggle 命令打开或者关闭显示缩进指示线。

默认情况下,当有二级缩进的时候,就会显示缩进标识了,默认的缩进标识是 ¦
image.png

  1. 定制缩进标识

可以在 .vimrc 中使用下面的配置设置自定义的缩进标识

let g:indentLine_char='🍉'

image.png

提示:显然这些缩进标识都不会真正的保存在你的文件中。

五、 代码自动格式化插件 autopep8

vim-autopep8是一个将Python源代码自动格式化为满足PEP8规范的Vim插件。

安装后在 Vim 普通模式下执行 :Autopep8 命令就可以按照 PEP8 标准规范自动格式化 Python 源代码

  1. 插件安装和配置

vim-autopep8插件依赖于Python工具autopep8,所以在使用vim-autopep8插件前必须先安装autopep8

pip3 install --upgrade autopep8

接着在 .vimrc中配置并安装

Plugin 'tell-k/vim-autopep8'

:PluginInstall

2 使用

在 vim 中格式化代码

:Autopep8

指定行范围进行格式化

:Autopep8 --range 1 5

自定义快捷键, 按下 F8 进行格式化代码

autocmd FileType python noremap <buffer> <F8> :call Autopep8()<CR>

六 语法检测插件vim-flake8

vim-flake8 是一款在 Vim 内集成 flake8 (由 Python 官方发布的一款辅助检测 Python 代码是否规范的工具,整合了 PyFlakes 和 PEP 8 两个代码检查软件的功能) 的代码检测功能的 Vim 插件,可用于对 Vim 打开的当前 Python 代码进行静态的语法检查和格式检测。该插件依赖 flake8 (Python官方发布的一款辅助检测 Python 代码是否规范和正确的工具) 工具,可通过 pip3 install flake8 命令进行安装。

1 插件安装和配置

在 Vim 配置文件 ~/.vimrc中增加 Plugin 'nvie/vim-flake8' 并使用 :PluginInstall 进行安装即可。

2 使用 F7

或者执行 flake8 /path/to/file.py

若果希望在每次保存文件的时候执行检查,可以在 ~/.vimrc 中配置如下内容

autocmd BufWritePost *.py call flake8#Flake8()

七、括号/引号自动补齐插件 auto-pairs

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

1 插件安装和配置

在 Vim 配置文件 ~/.vimrc 的合适位置添加 Plugin 'jiangmiao/auto-pairs' 后再在 Vim 的命令行模式下执行 :PluginInstall 命令即可完成插件的安装。

2 使用

Insert in pair

input: [
output: [|]

八、多括号显示不同颜色的插件 rainbow_parenthsis

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

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

1 安装和配置

~/.vimrc 中添加 Plug 'kien/rainbow_parentheses.vim' 后执行 :PlugInstall命令进行安装

let g:rbpt_colorpairs = [
    \ ['brown',       'RoyalBlue3'],
    \ ['Darkblue',    'SeaGreen3'],
    \ ['darkgray',    'DarkOrchid3'],
    \ ['darkgreen',   'firebrick3'],
    \ ['darkcyan',    'RoyalBlue3'],
    \ ['darkred',     'SeaGreen3'],
    \ ['darkmagenta', 'DarkOrchid3'],
    \ ['brown',       'firebrick3'],
    \ ['gray',        'RoyalBlue3'],
    \ ['darkmagenta', 'DarkOrchid3'],
    \ ['Darkblue',    'firebrick3'],
    \ ['darkgreen',   'RoyalBlue3'],
    \ ['darkcyan',    'SeaGreen3'],
    \ ['darkred',     'DarkOrchid3'],
    \ ['red',         'firebrick3'],
    \ ]

let g:rbpt_max = 16
let g:rbpt_loadcmd_toggle = 0
au VimEnter * RainbowParenthesesToggle
au Syntax * RainbowParenthesesLoadRound
au Syntax * RainbowParenthesesLoadSquare
au Syntax * RainbowParenthesesLoadBraces

九、快速代码注释插件 nerdcommenter

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

nerdcommenter 插件,需要打开 Vim 加载文件类型插件的功能
请保证在 ~/.vimrc 文件中正确添加了如下配置项

set  filetype plugin indent on

1 安装和配置

Vim 的配置文件中添加 Plugin 'preservim/nerdcommenter',再通过在 Vim 的命令行模式下执行 :BundleInstall 命令完成插件的安装。

2 使用

以下操作需要在 vim 的默认模式下执行
默认模式就是 按下 Esc 键后的模式

  • 注释光标所在行
    \cc

  • 注释向下连续 3 行,从光标所在行开始,也就是总共注释 3 行
    3\cc

  • 取消光标所在行的注释
    \cu

  • 取消向下连续 3 行的注释,从光标所在行开始,总共取消注释 3 行
    3\cu

  • 切换行的注释状态 ,就是注释了,就取消注释,没有注释,就添加注释🌟🌟🌟
    \ci 当前行
    3\ci 3 行

是不是感觉被骗了😄,这个才是终极办法啊。

  • 注释掉从当前光标所在位置到行尾的剩下内容 🌟🌟
    \c$

  • 在行尾添加注释,并进入 vim 的编辑模式 🌟🌟
    \cA

二、源码安装 vim

假如需要更新使用最新版本的 vim 请编译安装

1 下载源码包

git clone https://github.com/vim/vim.git

2 配置支持 Python2 和 python3

需要保证系统中编译安装了 python3

cd vim
./configure  --enable-python3interp=yes --with-python3-config-dir=/usr/local/lib/python3.8/config-3.8-x86_64-linux-gnu/


3 编译并安装

make && make install

4 验证

安装完成后,在命令行终端输入如下命令使当前 shell 使用新的 vim

source    /etc/profile

接下来在命令行终端继续输入如下命令,验证是否支持 python3

vim --version|grep python

+python3/dyn 表示支持

image.png

最后附上友情链接VIM 教程网, 博主是个萌妹子😍,一般人儿我不告诉他。在此表示感谢!🌹

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
回答: 在安装vim时,可以通过执行一系列命令来启用Python支持。首先进入vim/src目录,然后执行以下三个命令进行编译和安装: ``` \[root@iswbm ~\]# ./configure --prefix=/usr/local/vim \ --enable-pythoninterp=yes \ --enable-python3interp=yes \ --with-python-command=python \ --with-python3-command=python3 \[root@iswbm ~\]# make && make install ``` 这样就可以启用Python支持并安装vim了。\[1\] 另外,如果你想使用vim-plug这个插件管理工具,可以使用以下命令来安装它: ``` curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim ``` 这样就可以安装vim-plug插件管理工具了。\[2\] 对于Python开发者来说,Vim提供了很好的对Python的支持。但如果你也写Go代码的话,可能需要安装更多的插件才能获得良好的编码体验。如果你对此感兴趣,我可以给你提供一篇关于Vim for Go的文章的地址。请在评论区告诉我,我会发送给你。\[3\] #### 引用[.reference_title] - *1* *2* *3* [保姆级教程!将 Vim 打造一个 IDEPython 篇)](https://blog.csdn.net/weixin_36338224/article/details/120985361)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shark_西瓜甜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值