zoukankan      html  css  js  c++  java
  • 简单将vim改造成IDE

      公司服务器上的vim用的异常痛苦,自己写几个小脚本又不想用IDE,于是简单改造下vim,尝试了一次以后发现公司的机器装的是vim6x,很多插件不支持,于是干脆重装成7.x

     

    1.安装vim


      先去下载vim安装包,然后解压,执行安装命令,一般有

    ./configure
    --prefix=/usr/local/  安装目录
    --enable-perlinterp  perl集成
    --enable-pythoninter  ppython集成
    --enable-cscope  csope支持
    --enable-multibyte  双字节支持,支持中文的要选这个
    --enable-fontset                                            
    --with-features=huge  最大特性

    然后,完成安装

     

    make
    make install

     

     

     

     

     

     

    2.定制个人的vim配置


      未定制之前用的是全局配置,现在定制自己的vim配置,主要是用户目录下的.vim目录和.vimrc配置文件  

      在vim里运行

    set runtimepath?

          查看vim的目录,我这里显示为

     runtimepath=~/.vim,/usr/share/vim/current/vimfiles,/usr/share/vim/current,/usr/share/vim/current/vimfiles/after,~/.vim/after

      一般全局文件是放在/usr/share/vim/current/vimfiles下面,将这个文件夹下面的东西拷贝到.vim下面

      查看syntax下面的python.vim是否存在,然后配置开启syntax

     

     

     

    3.Ctags和插件Tasklist

      利用Ctags和插件Tasklist可以在vim中实现项目视图的功能
     
      下载ctags,然后安装 
    tar -xzvf ctags-5.6.tar.gz
    cd ctags-5.6
    make
    make install   // 需要root权限
      执行ctags -R可以看下是否安装好以及是否有tags文件生成,再在vim中运行类似命令,填入对应的tags路径用以绑定对应tags,然后就可以使用函数跳转等功能:
     
      :set tags=/xx/xxx/xx

     

      安装targlist更容易,解压出来是个plugin目录,然后把它放入plugin目录下,最后使用命令:TlistToggle打开taglist窗口
    cp taglist.vim ~/.vim/plugin/
     
     
    4.自动补全pydiction

     
      pydiction主要用于代码补全,按tab就能自动补全,但感觉上还是比ide弱一点
      下载安装包,解压后包括三个文件:

        python_pydiction.vim #vim插件

        complete-dict #python关键字和模块列表,

        pydiction.py  #python脚本,可以添加更多的模块

      创建目录,然后将对应文件移到对应目录·,

    mkdir  -p  ~/.vim/after/ftplugin/pydiction
      复制 python_pydiction.vim 文件到Vim安装路径 
      
    cp -p python_pydiction.vim  ~/.vim/after/ftplugin/

     

      复制 complete-dict 和 pydiction.py 到 ~/.vim/after/ftplugin/pydiction目录。(这两个文件可以放在任何目录,对应于 pydiction_location 变量)

      修改 ~/.vimrc文件,若没有则创建,在该文件中添加下面两行:

     

    filetype plugin on
    
    let g:pydiction_location='~/.vim/after/ftplugin/pydiction/complete-dict'

     

    5.文件浏览器nerdtree


     

    旧版Nerdtree:
    解压出来时个plugin目录,然后把它放入plugin目录下
    cp taglist.vim ~/.vim/plugin/

    在vim中运行:NERDTreeToggle就可以打开

     
    新版nerdtree
    1. 把zip包中的doc、nerdtree_plugin、plugin三个目录解压到$VIM/vimfiles目录下。
    2. 将doc、plugin目录下的文件copy到~/.vim/下面对应的目录,nerdtree_plugin copy到~/.vim/plugin
    3. 在vimrc下面增加
      "NERDTree plugin  
      let NERDTreeWinPos = "right" "where NERD tree window is placed on the screen  
      "let NERDTreeWinSize = 31 "size of the NERD tree  

       

       
     
    6.vimrc文件

    将几个插件改造成快捷方式打开/关闭,tab和语法常规优化了下,主要用来写写python脚本

    " 设置字符集
    set encoding=utf-8
    set fencs=utf-8,gbk
    " 设置python格式
    set filetype=python
    au BufNewFile,BufRead *.py,*.pyw setf python
    " 侦测文件类型 
    filetype on 
    " 载入文件类型插件 
    filetype plugin on 
    " 为特定文件类型载入相关缩进文件 
    let g:pydiction_location='~/.vim/after/ftplugin/pydiction/complete-dict'
    let g:pydiction_menu_height = 20
    filetype indent on 
    
    " 设置缩进
    set autoindent " same level indent
    set smartindent " next level indent
    set expandtab
    set tabstop=4
    set shiftwidth=4
    set softtabstop=4
    " 语法高亮
    syntax on 
    set nu
    
    " 高亮显示匹配的括号 
    set showmatch 
    
    " 匹配括号高亮的时间(单位是十分之一秒) 
    set matchtime=5 
    "设置ctags
    let Tlist_Show_Menu = 1  
    "TlistUpdate可以更新tags  
    map <F2> :!ctags -R * <CR> "生成tags  
    map <F3> :silent! Tlist<CR>  "按下F3就可以呼出Taglist  
    let Tlist_Ctags_Cmd='ctags' "因为我们放在环境变量里,所以可以直接执行
    let Tlist_Ctags_Cmd='/usr/local/bin/ctags'
    let Tlist_Use_Right_Window=0 "让窗口显示在右边,0的话就是显示在左边  
    let Tlist_Show_One_File=1 "让taglist可以同时展示多个文件的函数列表,如果想只有1个,设置为1  
    let Tlist_File_Fold_Auto_Close=1 "非当前文件,函数列表折叠隐藏  
    let Tlist_Exit_OnlyWindow=1 "当taglist是最后一个分割窗口时,自动退出vim  
    let Tlist_Process_File_Always=0 "是否一直处理tags.1:处理;0:不处理  
    
    "NERDTree plugin  
     let NERDTreeWinPos = "right" "where NERD tree window is placed on the screen  
    "let NERDTreeWinSize = 31 "size of the NERD tree  
    map <F4> :NERDTreeMirror<CR>
    map <F4> :NERDTreeToggle<CR>
    "运行python
    nmap <F5> :!python %  

     

     
     
  • 相关阅读:
    Post请求的两种编码格式:application/x-www-form-urlencoded和multipart/form-data传参方式
    工作中常用的JavaScript函数片段
    解决导入导出Excel表格文字乱码问题
    清空antd-design时间选择组件 RangePicker的值
    react.js Hooks路由跳转
    linux跳板机服务器搭建
    docker及docker-compose学习
    Android Jenkins+Git+Gradle持续集成
    Windows Server 2008 R2常规安全设置及基本安全策略
    ubuntu lnmp安装及php扩展
  • 原文地址:https://www.cnblogs.com/opama/p/4055589.html
Copyright © 2011-2022 走看看