zoukankan      html  css  js  c++  java
  • 使用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
    ############################ 


    人生短,迷茫路一程又一程。 脚步重,雨雪天踟蹰也踟蹰。 滴水聚,久无成效伊人不见。 该如何,敲击敲击昼夜不停。
  • 相关阅读:
    MSDN2010安装及使用(MSDN Library)[转]
    单元测试那些事
    Nhibernate Profiler安装中的问题
    ztree的动态添加
    事件与委托
    linux ls dir
    学习技术资料的思路
    linux目录结构
    是否需要深入了解java平台
    工作中心的改变
  • 原文地址:https://www.cnblogs.com/DesignerA/p/11625319.html
Copyright © 2011-2022 走看看