2022年 11月 3日

vim搭建python环境

1、安装vundle

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

打开~/.vimrc

vim ~/.vimrc
  • 1

填写以下配置:

set nocompatible              " required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'

" Add all your plugins here (note older versions of Vundle used Bundle instead of Plugin)
#在此处增加新的插件

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

2、按F5执行python文件

~/vimrc最后加入以下

filetype plugin on
" 按 F5 执行当前 Python 代码"
map <F5> :call PRUN()<CR>
func! PRUN()
    exec "w" 
    if &filetype == 'python'
        exec "!python %"
    endif
endfunc
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

然后在编辑模式下按esc后按下F5即可运行该python文件

3、安装插件

(1) 安装步骤

以下为需要安装的插件
~/.vimrccall vundle#begin()call vundle#end()中间输入

Plugin 'davidhalter/jedi-vim'
Plugin 'Yggdroot/indentLine'
Plugin 'tell-k/vim-autopep8'
Plugin 'ctrlpvim/ctrlp.vim'
Plugin 'nvie/vim-flake8'
Plugin 'jiangmiao/auto-pairs'
Plugin 'kien/rainbow_parentheses.vim'
Plugin 'preservim/nerdcommenter'
Plugin 'heavenshell/vim-pydocstring'
Plugin 'morhetz/gruvbox'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

然后保存退出,在新终端中输入:

vim
#此步骤需要等待会直到出现Done
:PluginInstall
:qall
  • 1
  • 2
  • 3
  • 4

(1) jedi-vim(自动补全插件)

在编辑模式下按下ctrl+space即可出现补全列表

(2) indentLine(显示缩进)

(3) autopep8(根据规范自动规范代码)

#在常规模式下按下F8即可以自动修正
autocmd FileType python noremap <buffer> <F8> :call Autopep8()<CR>
#去除窗口的对比
let g:autopep8_disable_show_diff=1
  • 1
  • 2
  • 3
  • 4

(4)ctrlp(模糊搜索)

按下ctrl+p即可进行模糊搜索

(5)vim-flake8(语法检查)

默认按下F7可以进行语法检查
~/vimrc下添加以下内容使得每次保存时自动检查

autocmd BufWritePost *.py call flake8#Flake8()
  • 1

出现的错误会在quickfix窗口下,quickfix下的窗口指令如下:
在这里插入图片描述

~/.config/flake8(没有就创建)中添加以下信息可以进行更多配置:

[flake8]
max-line-length = 120 #每行最大字符数为120
ignore=E402,E226#忽略这两种报错
  • 1
  • 2
  • 3

(6)auto-pairs(自动补全括号)

(7)rainbow_parentheses(括号匹配颜色)

~/.vimrc中配置官方推荐的颜色:

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

(8)nerdcommenter(快速注释)

参考
<leader>为\,直接在编辑模式下输入即可。
[count]<leader>cu:取消注释从当前行往下数的 count 行,count 可省略,默认值为 1,例如,\cu 表示取消注释光标所在当前行,而 5\cu 则表示取消注释从光标所在当前行往下的连续 5 行。
[count]<leader>ci:切换从当前行往下数的 count 行的注释状态。例如,假设光标所在当前行已经被注释掉,那么在当前行上执行 2\ci 命令,将会取消注释从光标所在当前行往下的连续 2 行;假设光标所在当前行并未被注释,那么在当前行上执行 \cc 命令,将会注释掉光标所在当前行。
<leader>c$:注释掉从当前光标所在位置到行尾的剩下内容,等价于在光标当前所在位置插入注释符 ( c$ 表示 NERDCommenterToEOL 的缩写。
<leader>cA:在光标所在当前行行尾添加注释符号并进入 Vim 的插入模式( cA 是 NERDCommenterAppend 的缩写)。

(9)vim-pydocstring(快速增加函数注释)

克隆该项目,使用make install安装doq,然后在~/.vimrc中添加

let g:pydocstring_doq_path = '~/.local/bin/doq'
  • 1

将光标移动到 def 或 class 关键字所在行,在命令模式中输入 :Pydocstring 并按下回车键, 就可以看到文档字符串模板出现在当前行的下方,会根据已有的代码规则自动识别包含函数名、参数类型、参数以及返回值类型。
~/.vimrc中添加以下指令,将添加注释功能绑定到快捷键F10上:

nmap <silent> <F10> <Plug>(pydocstring)
  • 1

(10)gruvbox(更改主题)

更改主题,在~/vimrc中添加:

colorscheme gruvbox
set background=dark
  • 1
  • 2

4、其他设置

永久显示行号:
~/vimrc最后一行添加

set number 
  • 1

取消ctrl+s锁定屏幕和ctrl+q解锁
~/.bashrc中加入

stty -ixon
  • 1

然后

source ~/.bashrc
  • 1

~/vimrc中加入

imap   <C-S>   <ESC>:w<CR>
map    <C-S>   :w<CR>
imap   <C-Q>   <ESC>:q<CR>
map    <C-Q>   :q<CR>
  • 1
  • 2
  • 3
  • 4

现在按下ctrl+s即可保存文件,按下ctrl+q即可退出