• 我的Shell + VIM配置


    1. 安装powerline-shell

    下载powerline-shell

    # cd /opt/
    # git clone https://github.com/milkbikis/powerline-shell

    复制config.py.dist为config.py,根据需要修改该配置文件,然后运行install.py,将会生成powerline-shell.py

    # cd powerline-shell/
    # cp config.py.dist config.py
    # ./install.py

    添加以下内容到~/.bashrc

    # vi ~/.bashrc

    # powerline-shell
    function _update_ps1() {
        PS1="$(/opt/powerline-shell/powerline-shell.py --cwd-mode dironly $? 2> /dev/null)"
    }
    
    if [ "$TERM" != "linux" ]; then
        PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
    fi

    使powerline-shell立即生效

    # source ~/.bashrc

    安装ctags(vim下方便代码阅读的工具)

    # yum install ctags

    安装ag(比ack更快的的搜索工具)

    # yum install the_silver_searcher

    我的vim配置文件

    地址: https://github.com/guanwei/dotfiles/blob/master/.vimrc

    下载.vimrc 到~/.vimrc

    # curl https://github.com/guanwei/dotfiles/blob/master/.vimrc -L -o ~/.vimrc

    设置alias

    # vi ~/.bashrc

    alias vi='vim'

    手动编译VIM和使用spf13-vim来快速配置vim

    • 手动编译安装VIM

    因为neocomplete插件需要vim支持lua,centos7自带的vim不支持lua,需要重新编译安装vim

    首先,检测vim是否支持python,python3,ruby,perl,lua

    # vim --version | grep -Eo '+(python|python3|ruby|perl|lua)'

    如果前面是减号就是不支持该语言,加号是支持。

    编译安装vim,参考http://www.cnblogs.com/edward2013/p/5300459.html

    • 安装spf13-vim

    # curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh
    • 为spf13-vim添加个性化配置

    # vim ~/.vimrc.before.local

    let g:airline_powerline_fonts = 1
    let g:airline_theme = 'bubblegum'
    let g:spf13_bundle_groups=['general', 'neocomplete', 'programming', 'php', 'python', 'javascript', 'html', 'misc',]

    # vim ~/.vimrc.bundles.local

    UnBundle 'nathanaelkane/vim-indent-guides'
    Bundle 'Yggdroot/indentLine'
    Bundle 'bronson/vim-trailing-whitespace'
    Bundle 'nvie/vim-togglemouse'
    Bundle 'thinca/vim-quickrun'
    Bundle 'dantezhu/authorinfo'
    Bundle 'IndexedSearch'
    Bundle 'christoomey/vim-tmux-navigator'
    Bundle 'edkolev/tmuxline.vim'

    vim ~/.vimrc.local

    let g:vimrc_author='guanwei'
    let g:vimrc_email='285006386@qq.com'
    let g:vimrc_homepage='http://edward2013.cnblogs.com/'
    nmap <F4> :AuthorInfoDetect<CR>
    
    if &term == 'xterm' || &term == 'screen'
        color molokai
    else
        color delek
    endif
    
    set nospell
    set listchars=tab:› ,extends:#,nbsp:·
    let g:NERDSpaceDelims = 1
    set pastetoggle=<F11>
    nnoremap <leader>f :CtrlPMRU<CR>
    map <leader><space> :FixWhitespace<CR>
    noremap <F5> :QuickRun<CR>
    inoremap <F5> <Esc>:QuickRun<CR>a
    
    autocmd BufNewFile *.py,*.sh exec ":call SetFileHead()"
    function! SetFileHead()
        if &filetype == 'sh'
            call setline(1, "#!/bin/bash")
        elseif &filetype == 'python'
            call setline(1, "#!/usr/bin/env python")
            call append(1, "# encoding: utf-8")
        endif
        normal G
        normal o
        normal o
    endfunc
    • 更新插件

    # vim +BundleInstall! +BundleClean +qall
    • 如果使用YouCompleteMe代码补全插件,按照下面的步骤安装

    安装Mono(.Net开发环境)

    # rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
    # yum install yum-utils
    # yum-config-manager --add-repo http://download.mono-project.com/repo/centos/
    # yum install mono-complete

    安装golang(Go开发环境)

    yum install golang

    安装NodeJS

    安装Node.js的版本管理软件
    # curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash
    # source ~/.bash_profile
    
    列出所有可安装的版本
    # nvm list-remote
    
    安装相应的版本
    # nvm install 5.9
    
    查看已经安装的版本
    # nvm ls
    
    切换版本
    # nvm use 5.9
    
    设置默认版本
    # nvm alias default 5.9
    
    显示Node.js版本
    # node –v
    
    显示npm版本
    # npm -v

    安装TypeScript SDK

    # npm install -g typescript

    安装Rust

    # curl -sSf https://static.rust-lang.org/rustup.sh | sh

    安装YouCompleteMe

    # yum install automake gcc gcc-c++ kernel-devel cmake python-devel
    cd ~/.vim/bundle/YouCompleteMe
    ./install.py --all
    
    参数:
    --omnisharp-completer   C#支持
    --gocode-completer      Go支持
    --tern-completer        JavaScript支持
    --racer-completer       Rust支持
    --all                   支持所有语言

    VIM常用插件列表

    Plugin 'VundleVim/Vundle.vim'                  " VIM插件管理工具
    Plugin 'scrooloose/nerdcommenter'             " 代码注释插件
    Plugin 'scrooloose/nerdtree'                       " 树形文件浏览器插件
    Plugin 'kien/ctrlp.vim'                               " 模糊文件,缓存,Tag查找插件
    Plugin 'tomasr/molokai'                             " Molokai皮肤
    Plugin 'lilydjwg/colorizer'                           " 文本颜色插件
    Plugin 'plasticboy/vim-markdown'               " Markdown语法高亮插件
    Plugin 'vim-scripts/matchit.zip'                   " 扩展%匹配字符范围插件 
    Plugin 'tpope/vim-surround'                       " 快速切换括号/引号或者标签插件
    Plugin 'tpope/vim-repeat'                           " 扩展surround.vim重复命令 (.)插件
    Plugin 'tpope/vim-fugitive'                         " Git命令封装插件
    Plugin 'airblade/vim-gitgutter'                    " 实时显示Git更改插件
    Plugin 'Lokaltog/vim-powerline'                   " 状态栏增强插件
    Plugin 'bling/vim-airline'                             " 轻量级状态栏增强插件
    Plugin 'mattn/emmet-vim'                          " Emmet插件,快速生成html代码
    Plugin 'vim-scripts/xptemplate'                   " 快速生成代码片段插件

    if v:version > 703 || (v:version == 703 && has('patch584')) 
        Plugin 'Valloric/YouCompleteMe'               " 自动补全插件,clang级别的补全以及cache补全
    endif

    Plugin 'mileszs/ack.vim'                              " 工程全局搜索插件
    Plugin 'mattn/gist-vim'                               " gists创建管理插件
    Plugin 'altercation/vim-colors-solarized'         " Solarized皮肤
    Plugin 'dyng/ctrlsf.vim'                               " 全局搜索插件,以ag或者ack作为后端
    Plugin 'sjl/gundo.vim'                                 " 撤销树插件
    Plugin 'scrooloose/syntastic'                         " 语法检查插件
    Plugin 'Lokaltog/vim-easymotion'                 " 快速跳转插件
    Plugin 'skammer/vim-css-color'                    " css颜色高亮插件
    Plugin 'pangloss/vim-javascript'                   " javascript语法高亮,智能缩进插件
    Plugin 'maksimr/vim-jsbeautify'                   " 快速格式化javascript插件
    Plugin 'elzr/vim-json'                                  " JSON语法高亮插件
    Plugin 'SirVer/ultisnips'                               " 快速插入代码片段插件
    Plugin 'honza/vim-snippets'                         " 代码片段模板插件
    Plugin 'godlygeek/tabular'                           " 文本自动对齐插件
    Plugin 'junegunn/vim-easy-align'                 " 按分隔符文本对齐插件
    Plugin 'othree/xml.vim'                               " xml格式化插件
    Plugin 'vim-scripts/Greplace.vim'                 " 全局查找替换插件
    Plugin 'evanmiller/nginx-vim-syntax'            " Nginx语法高亮插件
    Plugin 'kien/rainbow_parentheses.vim'          " 括号美观匹配高亮插件
    Plugin 'majutsushi/tagbar'                           " 代码结构浏览器插件
    Plugin 'vim-scripts/TaskList.vim'                  " 任务列表插件
    Plugin 'Raimondi/delimitMate'                      " 补全括号和引号插件
    Plugin 'jiangmiao/auto-pairs'                       " 补全括号和引号插件
    Plugin 'Yggdroot/indentLine'                        " 显示缩进对齐线插件
    Plugin 'terryma/vim-expand-region'              " 扩展选择内容插件
    Plugin 'terryma/vim-multiple-cursors'           " 多光标选择插件
    Plugin 'YankRing.vim'                                  " 剪贴板增强插件
    Plugin 'fs111/pydoc.vim'                             " python文档查看插件
    Plugin 'hdima/python-syntax'                       " Python语法插件
    Plugin 'pyflakes.vim'                                   " Python代码检查插件
    Plugin 'python.vim'                                     " Python语法高亮,智能缩进插件
    Plugin 'klen/python-mode'                           " Python集成开发插件,整合了pylintropepydocpyflakespep8, and mccabe
    Plugin 'jabapyth/vim-debug'                        " Python,PHP debug插件
    Plugin 'rkulla/pydiction'                               " Python自动补全插件
    Plugin 'vim-scripts/Conque-Shell'                 " Vim buffer中运行交互程序插件
    Plugin 'ivanov/vim-ipython'                          " IPython支持插件

    if has("lua") 
        Plugin 'Shougo/neocomplete'                   " 代码补全插件 
    else
        Plugin 'Shougo/neocomplcache'                " 代码补全插件
    endif

    Plugin 'Shougo/neosnippet'                          " 代码片段插件
    Plugin 'Shougo/neosnippet-snippets'             " neosnippet的基础代码片段库插件
    Plugin 'Shougo/vimshell.vim'                       " shell命令显示插件
    Plugin 'Shougo/vimproc.vim'                        " 交互式命令执行插件
    Plugin 'Shougo/neomru.vim'                         " MRU补丁,支持unite.vim插件
    Plugin 'Shougo/unite.vim'                            " 全局查找显示插件
    Plugin 'Shougo/unite-outline'                       " unite增强插件
    Plugin 'Shougo/unite-help'                           " unite帮助插件
    Plugin 'Rykka/riv.vim'                                  " reStructuredText扩展插件
    Plugin 'vim-scripts/DrawIt'                           " 画图插件
    Plugin 'wesleyche/Trinity'                             " taglist, NERDtree and SrcExpl 整合插件
    Plugin 'wesleyche/SrcExpl'                           " 源代码浏览器插件
    Plugin 'vim-scripts/taglist.vim'                      " 源码结构列表插件
    Plugin 'vim-scripts/winmanager'                   " windows样式文件浏览器插件
    Plugin 'jlanzarotta/bufexplorer'                     " BufExplorer插件
    Plugin 'vim-commentary'                             " 代码注释插件
    Plugin 'tomtom/tcomment_vim'                   " 代码注释插件
    Plugin 'davidhalter/jedi-vim'                        " Jedi库Python代码补全插件
    Plugin 'fatih/vim-go'                                    " Go开发支持插件
    Plugin 'tpope/vim-speeddating'                    " 日期生成插件
    Plugin 'mattn/calendar-vim'                         " 日历生成插件
    Plugin 'dhruvasagar/vim-table-mode'            " 表格生成插件
    Plugin 'vim-scripts/a.vim'                            " .h和.c之间切换插件
    Plugin 'mbbill/echofunc'                              " 显示C/C++函数声明提示插件
    Plugin 'xuhdev/SingleCompile'                     " 简单编译运行源文件插件
    Plugin 'vim-scripts/TagHighlight'                  " 给类/结构体/枚举等数据类型添加语法高亮显示插件
    Plugin 'vim-scripts/FuzzyFinder'                   " 很强大的文件查找工具,需要依赖L9
    Plugin 'vim-scripts/fencview.vim'                  " 自动检测文件编码,也可以手动选择文件编码
    Plugin 'vimwiki/vimwiki'                              " 用vim来打造个人wiki
    Plugin 'vim-scripts/AuthorInfo'                     " 自动生成/更新文件的作者信息(vimer.cn博主编写)
    Plugin 'vim-scripts/DoxygenToolkit.vim'        " 添加doxygen注释
    Plugin 'sjas/csExplorer'                                " 提供列出配色列表的功能,就不用一个个手工去敲配色名字了
    Plugin 'vim-scripts/VisIncr'                          " 提供生成数列的功能

     

    一些资源:

    All things Vim and Neovim!

    https://github.com/mhinz/vim-galore

    The ultimate vim distribution

    https://github.com/spf13/spf13-vim

    Maple's vim config files

    https://github.com/humiaozuzu/dot-vimrc

    The ultimate Vim configuration: vimrc

    https://github.com/amix/vimrc

    my vim configuration (lot of python, autocompletition, fuzzy finder, debugger, ...)

    https://github.com/fisadev/fisa-vim-config

  • 相关阅读:
    php 函数strpos()
    uploadfy api中文文档
    thinkphp + 美图秀秀api 实现图片裁切上传,带数据库
    mysql 操作用户权限
    window.location 小结)
    turn.js 图书翻页效果
    thinkphp 内置标签volist 控制换行
    js 数据类型转换
    quartz 2.2.1
    Mysql测试链接
  • 原文地址:https://www.cnblogs.com/edward2013/p/5295004.html
Copyright © 2020-2023  润新知