使用vim打造python开发环境
1.查看VIM的版本
vim --version | grep VIM
#升级vim7到vim8
rpm -Uvh http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm rpm --import http://mirror.ghettoforge.org/distributions/gf/RPM-GPG-KEY-gf.el7 yum -y remove vim-minimal vim-common vim-enhanced sudo yum -y --enablerepo=gf-plus install vim-enhanced sudo
2.查看VIM是否支持python
vim --version | grep python
#如果看到的python前面是减号,表示不支持
#在debian/ubuntu源中,安装的最新的vim8后,默认不支持python,解决办法:
支持python3:
apt-get install vim-nox
支持python2:
apt-get install vim-nox-py2
#在vim原版、nox版、nox-py2版之间来回切换的命令:
update-alternatives --config vim
3.基本配置
vim ~/.vimrc set nocompatible "Turn off compatibility mode with Vi set number "Show Line Numbers set nowrap "No automatic folding set showmatch "Display matching parentheses set encoding=utf-8 set fenc=utf-8 set mouse=a "To enable the mouse set hlsearch "Search highlight syntax enable "Syntax highlighting set tabstop=4 "TAB equivalent space length set softtabstop=4 set expandtab set autoindent "Automatic indentation
4.安装插件管理器vim bundle
mkdir -p ~/.vim/bundle/ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
5.配置vim支持bundle插件管理器
#将下面内容放到基本配置的下方:
vim ~/.vimrc set nocompatible filetype off set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'VundleVim/Vundle.vim' call vundle#end() filetype plugin indent on
6.安装支持python语法自动补全的插件jedi-vim
#首先将要安装的插件位置写到.vimrc的call vundle#end()这行的前一行:
Plugin 'davidhalter/jedi-vim'
#然后在.vimrc中执行:PluginInstall 命令,自动从GitHub等源上自动下载并安装。
:PluginInstall
#出现Processing 'davidhalter/jedi-vim'表示正在安装
#出现Done!表示安装成功
此时,你可以去尝试编辑一个python文件,当你敲点号的时候,就会自动出现很多可选的属性。
7.安装支持python语法错误检测的插件ale
要求vim版本为vim8
#首先将要安装的插件位置写到.vimrc的call vundle#end()这行的前一行:
Plugin 'w0rp/ale'
#然后在.vimrc中执行:PluginInstall 命令,自动从GitHub等源上自动下载并安装。
:PluginInstall
#出现Processing 'davidhalter/jedi-vim'表示正在安装
#出现Done!表示安装成功
8.安装支持shell文件路径等加强版自动补全的插件neocomplete.vim
#首先将要安装的插件位置写到.vimrc的call vundle#end()这行的前一行:
Plugin 'Shougo/neocomplete.vim'
#然后在.vimrc中执行:PluginInstall 命令,自动从GitHub等源上自动下载并安装。
:PluginInstall
#安装成功后,将下面的配置添加到.vimrc文件的末尾:
let g:neocomplete#enable_at_startup = 1
http://ju.outofmemory.cn/entry/251861
9.安装目录树插件nerdtree
#首先将要安装的插件位置写到.vimrc的call vundle#end()这行的前一行:
Plugin 'scrooloose/nerdtree'
#然后在.vimrc中执行:PluginInstall 命令,自动从GitHub等源上自动下载并安装。
:PluginInstall
10.安装目录树支持tab键的插件vim-nerdtree-tabs
#首先将要安装的插件位置写到.vimrc的call vundle#end()这行的前一行:
Plugin 'jistr/vim-nerdtree-tabs'
#然后在.vimrc中执行:PluginInstall 命令,自动从GitHub等源上自动下载并安装。
:PluginInstall
11.安装自动补全括号和引号等的插件auto-pairs
#首先将要安装的插件位置写到.vimrc的call vundle#end()这行的前一行:
Plugin 'jiangmiao/auto-pairs'
#然后在.vimrc中执行:PluginInstall 命令,自动从GitHub等源上自动下载并安装。
:PluginInstall
目录树使用方法:
使用vim+项目目录,打开后,可以使用上下+回车找到要编辑的文件。
使用:NERDTree,回车,进入当前打开的目录的树形界面,然后可以使用多次按ctrl+w,光标自动在左右侧窗口切换。
折叠的使用方法:
zc 折叠
zo 展开折叠
[z 到当前打开的折叠的开始处
]z 到当前打开的折叠的末尾处
https://blog.csdn.net/Michael_Zheng_Tech/article/details/84935061
https://www.cnblogs.com/linxiyue/p/7834817.html
------------------------------------------------------------------------------------------------------此为分界线------------------------------------------------------------
卸载VIM
1.ubuntu/debian上卸载VIM的方法
列出已安装的VIM相关的包:apt list --installed | grep vim
apt-get -y remove vim vim-common vim-runtime vim-tiny
安装python3.7
1.下载源码安装包
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
2.安装依赖包
apt-get install zlibc zlib1g-dev libffi-dev
3.解压,编译和安装
tar -zxvf Python-3.7.0.tgz
cd Python-3.7.0
./configure --prefix=/usr/local/python37
make && make install
安装python2.7
1.下载源码安装包
wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
2.安装依赖包
apt-get install zlibc zlib1g-dev libffi-dev
3.解压,编译和安装
tar -zxvf Python-2.7.9.tgz
cd Python-2.7.9
./configure --prefix=/usr/local/python27
make && make install
安装VIM
1.下载VIM源码安装包
git clone https://github.com/vim/vim.git
2.安装依赖包
apt-get install libncurses5-dev libncursesw5-dev
3.预编译
建议只开启 python3,或只开启 python2,如果同时开启 python3 和 python2 会产生很多冲突。
只开启python3
./configure --with-features=huge --enable-multibyte --enable-gui=gtk2 --enable-cscope --prefix=/usr --enable-python3interp=yes --with-python3-command=/usr/local/python37/bin/python3
只开启python2
./configure --with-features=huge --enable-multibyte --enable-gui=gtk2 --enable-cscope --prefix=/usr --enable-pythoninterp=yes --with-python-command=/usr/local/python27/bin/python
4.编译和安装
make
make install
5.检测
vim --version | grep python
VIM配置
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
vim ~/.vimrc
set nocompatible
set backspace=indent,eol,start
set number
set nowrap
set showmatch
set encoding=utf-8
set fenc=utf-8
set hlsearch
syntax enable
set tabstop=4
set softtabstop=4
set expandtab
set autoindent
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'davidhalter/jedi-vim'
Plugin 'w0rp/ale'
Plugin 'Shougo/neocomplete.vim'
Plugin 'scrooloose/nerdtree'
Plugin 'jistr/vim-nerdtree-tabs'
Plugin 'jiangmiao/auto-pairs'
call vundle#end()
filetype plugin indent on
:PluginInstall
VIM使用
注意,因为我安装VIM时,使用我自己安装的Python,所以以后使用VIM来编辑python文件时,就需要在自己安装的Python环境中使用它,否则VIM会报错。也就是说,你需要使用virtualenv创建虚拟环境,然后激活它即可。
这个报错的根本原因,我估计是因为我安装的Python版本是2.7.9,而系统中的Python版本是2.7.15,不一致导致。
VIM自动保存
进入https://www.vim.org/scripts/script.php?script_id=4521网址下载vim-auto-save-0.1.12.tar.gz
目前最新版本:
wget https://www.vim.org/scripts/download_script.php?src_id=26426 -O vim-auto-save-0.1.12.tar.gz
解压到VIM插件目录:
mkdir ~/.vim/plugin/
mkdir ~/.vim/doc/
mkdir ./vim-auto-save
tar -xzvf vim-auto-save-0.1.12.tar.gz -C ./vim-auto-save
cd ./vim-auto-save
cp plugin/AutoSave.vim ~/.vim/plugin/
cp doc/auto-save.txt ~/.vim/doc/
cp doc/tags ~/.vim/doc/
在vimrc中添加配置:
vim ~/.vimrc
let g:auto_save = 1
let g:auto_save_events = ["InsertLeave", "TextChanged", "TextChangedI", "CursorHoldI", "CompleteDone"]
https://www.cnblogs.com/awakenedy/p/9722361.html
https://blog.csdn.net/sjin_1314/article/details/85041335
VIM自动为新建的python文件添加头部信息
1.创建头部信息模板
mkdir -p ~/.vim/vim_template vim ~/.vim/vim_template/vim_pyhton2_header #!/usr/bin/python #-*- coding:utf-8 -*- ############################ #File Name: #Author: DesignerA #Mail: DesignerA@gmail.com #Created Time: ############################
或
mkdir -p ~/.vim/vim_template vim ~/.vim/vim_template/vim_pyhton3_header #!/usr/bin/python3 #encoding: utf-8 ############################ #File Name: #Author: DesignerA #Mail: DesignerA@gmail.com #Created Time: ############################
2.在.vimrc中调用这个头部信息模板,并根据新建的文件名和新建文件的时间为头部信息模板中预留的两个空值参数设置正确的值
vim ~/.vimrc autocmd BufNewFile *.py 0r ~/.vim/vim_template/vim_pyhton2_header autocmd BufNewFile *.py ks|call FileName()|'s autocmd BufNewFile *.py ks|call CreatedTime()|'s fun FileName() if line("$") > 10 let lc = 10 else let lc = line("$") endif exe "1," . lc . "g/File Name:.*/s/File Name:.*/File Name: " .expand("%") endfun fun CreatedTime() if line("$") > 10 let lc = 10 else let lc = line("$") endif exe "1," . lc . "g/Created Time:.*/s/Created Time:.*/Created Time: " .strftime("%Y-%m-%d %T") endfun
或
vim ~/.vimrc autocmd BufNewFile *.py 0r ~/.vim/vim_template/vim_pyhton3_header autocmd BufNewFile *.py ks|call FileName()|'s autocmd BufNewFile *.py ks|call CreatedTime()|'s fun FileName() if line("$") > 10 let lc = 10 else let lc = line("$") endif exe "1," . lc . "g/File Name:.*/s/File Name:.*/File Name: " .expand("%") endfun fun CreatedTime() if line("$") > 10 let lc = 10 else let lc = line("$") endif exe "1," . lc . "g/Created Time:.*/s/Created Time:.*/Created Time: " .strftime("%Y-%m-%d %T") endfun
3.测试结果良好
(venv) root@pythonops:~# vim test.py (venv) root@pythonops:~# cat test.py #!/usr/bin/python #-*- coding:utf-8 -*- ############################ #File Name: test.py #Author: DesignerA #Mail: DesignerA@gmail.com #Created Time: 2019-10-23 14:10:16 ############################
(venv) root@pythonops:~# rm -rf test.py (venv) root@pythonops:~# vim test.py (venv) root@pythonops:~# cat test.py #!/usr/bin/python3 #encoding: utf-8 ############################ #File Name: test.py #Author: DesignerA #Mail: DesignerA@gmail.com #Created Time: 2019-10-23 14:26:07 ############################