个人vimrc配置--(个人存档)

"============================================================================
" A more concise, clear and complete vim config for me.
"============================================================================
"    Platform:  Linux
" vim: set sw=4 ts=4 sts=4 et tw=78 foldmarker={
   ,} foldlevel=0 foldmethod=marker :

" 初始化设置 {
   
"
    " 不兼容vi
    set nocompatible
    " 使用默认shell
    set shell=/bin/sh

" }

" 加载插件相关配置 {
   
"
    if has("multi_byte")
        " 设置本地通用编码 utf-8
        set encoding=utf-8
        " 设置通用文件编码格式 utf-8
        setglobal fileencoding=utf-8
        " 设置文件可用的编码格式
        set fileencodings=ucs-bom,utf-8,utf-16le,cp1252,iso-8859-15
    endif
    "
    " 使用Bundle 管理插件
    " 关闭文件类型识别,并确保 vundle 能够工作
    filetype off
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#rc()

""""""""""""""""""""""""""""" Bundles """"""""""""""""""""""""""""
    " Vundle 管理 Vundle
    Plugin 'gmarik/Vundle.vim'
    " Vim 中文帮助文档
    Plugin 'yianwillis/vimcdoc'
    " 代码片段功能
    " snipmate lib
    Plugin 'MarcWeber/vim-addon-mw-utils'
    " snipmate lib
    Plugin 'tomtom/tlib_vim'
    Plugin 'garbas/vim-snipmate'
    " 该插件中包含了各种语言的代码片段,增强snipmate功能
    Plugin 'honza/vim-snippets'

    Bundle 'vim-scripts/sessionman.vim'
    " 显示当前路径目录树
    Bundle 'scrooloose/nerdtree'
    " solarized 颜色主题
    Bundle 'altercation/vim-colors-solarized'
    " 对于环境中的 大小括号,引号,XML标签等进行成对映射处理(删除或添加)
    Bundle 'tpope/vim-surround'
    " 用于协助解决冲突的工具
    " 高亮有冲突标记的位置,跳转到有冲突标记的位置,
    " 跳转到冲突块中:开始,分隔符,末尾
    Bundle 'rhysd/conflict-marker.vim'
    " 成对插入/删除大小括号,引号
    Bundle 'jiangmiao/auto-pairs'
    " Vim中使用%实现括号间的跳转,该插件可以设置任意想要跳转的标记
    Bundle 'matchit.zip'
    "仅使用顶端显示 buffer smart tab line功能
    Bundle 'vim-airline/vim-airline'
    Bundle 'vim-airline/vim-airline-themes'
    " 显示命令栏中缓冲区的列表
    Bundle 'bling/vim-bufferline'
    " 整合vim中的 nerdtree 和 tabs
    Bundle 'jistr/vim-nerdtree-tabs'
    " 撤销操作树
    Bundle 'mbbill/undotree'
    " 用于在重新启动vim后自动恢复一个文件的光标位置和折叠信息。
    Bundle 'vim-scripts/restore_view.vim'
    " 使用Vim的符号列显示diff,在符号栏显示 ! 等标志修改等部分。
    Bundle 'mhinz/vim-signify'
    " 方便搜索,替换和单词等缩写多个变体
    Bundle 'tpope/vim-abolish.git'
    " 使用替换时有预览
    Bundle 'osyo-manga/vim-over'
    " 创建自己的文本对象
    Bundle 'kana/vim-textobj-user'
    " 用于缩进线条的文本对象
    Bundle 'kana/vim-textobj-indent'

    " 语法检查
    Bundle 'scrooloose/syntastic'
    " web 的一些 api 插件接口
    " 当前支持的协议:
    " Basic HTTP,OAuth,Atompub,SOAP (in progress),XMLRPC,MetaWeblog API
    " 包含的库:
    " XML Parser,HTML Parser(Hack Way),JSON Parser,BASE64 Hash Algorithm,
    " SHA1 Hash Algorithm,HMAC HASH Algorithm,Bit Operation Library,Converter for "UTF-8 to Unicode"
    Bundle 'mattn/webapi-vim'
    " 快速注释
    Bundle 'scrooloose/nerdcommenter'
    " 也是注释用插件,默认使用 /* ... */ 注释的方式,所以 Python shell 不支持该
    " 的注释。
    " gcc: 注释当前行(普通模式); gc: 可视模式下注释选中部分;
    " gcu: 撤销上次注释的部分; gcgc: 撤销注释当前行和临近的上下两行。
    Bundle 'tpope/vim-commentary'
    " 文本过滤和对齐,格式化工具
    Bundle 'godlygeek/tabular'
    " 通过不同的颜色展示不同层次的括号
    Bundle 'luochen1990/rainbow'
    if executable('ctags')
        " 在窗口中显示标签,按范围排序
        Bundle 'majutsushi/tagbar'
    endif

    """"""""" 自动补全
    " 根据当前文档,缓存文档等智能自动补全
    Bundle 'Shougo/neocomplete.vim.git'
    Bundle 'Shougo/neosnippet'
    Bundle 'Shougo/neosnippet-snippets'

    """"""""" Python
    " python-mode 插件,可以帮助使用者通过使用包括
    " pylint,rope,pydoc,pyflakes,pep8 和 mccabe 在内的库来快速创建
    " python 代码,用于静态分析,重构,折叠,补全,文档等功能。
    "Bundle 'python-mode/python-mode'
    " 方便编写 Python 脚本的插件,有以下功能:
    " 选择一组具有相同缩进的行;
    " 选择一个方法,一个类;
    " 到达上一个/下一个类/方法;
    " 跳转到块的开始或结尾;
    " 注释/取消注释的选择;
    " 使用相同的缩进跳转到最后/下一行;
    " 移动一个块(左/右);
    " 创建便于导航的类或方法的列表
    Bundle 'yssource/python.vim'
    " 该插件重新定义了%的动作,以便它能够循环通过 if/elif/else,
    " try/except/catch, for/continue/breakwhile/continue/break 结构。
    " 另外两个动作,[%]% 分别到达当前块的开始和结束。
    Bundle 'python_match.vim'
    " Pythond 的一些补全功能。
    Bundle 'pythoncomplete'
    Bundle 'vim-scripts/indentpython.vim'
    Bundle 'nvie/vim-flake8'

    """"""""" HTML
    " 使 vim 支持 css3 的语法
    Bundle 'hail2u/vim-css3-syntax'
    " 用于在键入颜色的编码后显示对应的颜色背景(如,#fF0000)
    Bundle 'gorodinskiy/vim-coloresque'
    " 该项目包含与Vim一起提供的Haml,Sass和SCSS的运行时文件。
    Bundle 'tpope/vim-haml'
    " 提供类似扩展缩写的支持
    Bundle 'mattn/emmet-vim'
    " Tmux
    Bundle 'christoomey/vim-tmux-navigator'
""""""""""""""""""""""""""""" Bundles """"""""""""""""""""""""""""

" }

" 通用设置 {
   
"
    " 暗色背景
    set background=dark
    " 背景转换触发方法
    function! TransformBG()
        let s:tbg = &background
        " 转换逻辑
        if s:tbg == "dark"
            set background=light
        else
            set background=dark
        endif
    endfunction
    " 触发方法
    noremap <leader>bg :call TransformBG()<CR>

    " 执行了3个动作 filetype on-> filetype plugin on -> filetype indent on
    " 开启文件类型检测-> 自动加载相应插件 -> 启用相关缩进插件
    filetype plugin indent on
    " 语法高亮
    syntax on
    " 自动使用鼠标,如果使用鼠标复制 粘贴,需要禁用该设置
    " 使用Vim时建议尽量少用鼠标
    set mouse=a
    " 打字时隐藏鼠标光标
    set mousehide
    " 脚本编码格式 utf-8
    scriptencoding utf-8
    " Linux 系统一般具有粘贴版:
    " unnamed 选择粘贴版,vim 映射到 * 寄存器
    " unnamedplus 系统粘贴版,和其其他平台的Ctrl+C,Ctrl+V功能相同,vim映射到 + 寄存器
    " 以下设置可以跨平台使用,:reg 查看寄存器详情
    if has('clipboard') && has("unnamedplus")
        set clipboard=unnamed,unnamedplus
    endif

    " universal-ctags 替换 exuberant-ctags 并配置
    set tags=tags
    " 自动切换当前目录为当前编辑文件所在的目录
    set autochdir
    " 切换到新的文件(新Buffer)后,目录自动切换到当前编辑文件(Buffer)的路径
    autocmd BufEnter * if bufname("") !~ "^\[A-Za-z0-9\]*://" | lcd %:p:h | endif

    " 启动vim时不显示乌干达的信息
    set shortmess=alI
    " 虚拟编辑,允许光标定位达到每行最后一个字符之后
    set virtualedit=onemore
    " 保存更多的编辑历史
    set history=1000
    " 拼写检查
    "set spell
    " 允许在不保存的情况下切换编辑buffer
    set hidden
    " _,@,#,$,-连接的字符作为一个整体,选择、换行不分割
    set iskeyword+=_,@,#,$,-

    " 编辑 git commit 信息时,编辑光标定位最开始
    au FileType gitcommit au! BufEnter COMMIT_EDITMSG call setpos('.', [0, 1, 1, 0])

    " 再次打开文件光标恢复到最后编辑的位置
    function! ResCur()
        if line("'\'") <= line("$")
            silent! normal! g`"
            return 1
        endif
    endfunction

    augroup resCur
        autocmd!
        autocmd BufWinEnter * call ResCur()
    augroup END
    "

    " 设置备份
    set backup

    " 持久的保存当前文件的编辑历史,用于可持久性的撤销操作
    " 防止再次打开编辑过的文件无法进行之前操作的撤销动作
    if has('persistent_undo')
        " 激活撤销
        set undofile
        " 最大撤销的行数
        set undolevels=1000
        " 重新加载buffer时能够保存的最大撤销行数
        set undoreload=10000
    endif

    " 初始化 vimbackup
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值