vimrc
1 vimrc
这里是我自己使用 VIM 常用的一些配置。
" vim 官方配置
" 1.设置<TAB> 的格式.
set shiftwidth=4
set softtabstop=4
" 2. 设置补全方式
set wildmode=longest,list
" 3. 保留命令的历史长度.
set history=2000
" 4. map 映射键
cnoremap <C-p> <Up>
cnoremap <C-n> <Down>
" 5.设置不兼容模式
set nocompatible " be iMproved, required
" 6.打开自动文件高亮
filetype on " required
" 7. 设置缓存区的是否能够被隐藏.
"
set hidden
" 8. 设置打开文件时的快捷路径
cnoremap <expr> %% getcmdtype( ) == ':' ? expand('%:h').'/' : '%%'
" 9.跳转增强插件
runtime macros/matchit.vim
" 10.设置常用shell
set shell=/bin/bash
" Vbundle 插件 Plugin 管理插件
" :h Vundle
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
call vundle#end() " required
filetype plugin indent on " required
Plugin 'VundleVim/Vundle.vim'
" 待研究的插件
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
Plugin 'git://git.wincent.com/command-t.git'
" Git 命令管理插件 :h fugitive
Plugin 'tpope/vim-fugitive'
" markdown 生产tags 供 tagbar 插件生成大纲.
" : 这个没有帮助文件只有个py
" 文件进行转换
Plugin 'jszakmeister/markdown2ctags'
" markdown 语法插件 和 折叠插件
Plugin 'tamlok/vim-markdown'
" 配色插件
Plugin 'tamlok/detorte'
" 1. 配色方案
let g:detorte_theme_mode = 'dark'
let g:markdown_enable_spell_checking = 0
" NERDTree 资源管理器配置
" :h NERDTree
Plugin 'scrooloose/nerdtree'
Plugin 'jistr/vim-nerdtree-tabs'
" 1. 当NERDTree为剩下的唯一窗口时自动关闭
"autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
let g:nerdtree_tabs_autoclose = 1
" 2.修改树的显示图标
let g:NERDTreeDirArrowExpandable = '►'
let g:NERDTreeDirArrowCollapsible = '▼'
let NERDTreeAutoCenter=1
" 3.显示行号
let NERDTreeShowLineNumbers=1
" 4.是否显示隐藏文件
let NERDTreeShowHidden=1
" 5.设置宽度
let NERDTreeWinSize=25
" 6.在终端启动vim时,共享NERDTree
let g:nerdtree_tabs_open_on_console_startup=1
" 7.忽略一下文件的显示
let NERDTreeIgnore=['\.pyc','\~sql \n \r \n```"
let g:surround_115 = "```console \n \r \n```"
let g:surround_105 = "::: alert-info \n \r \n:::"
let g:surround_100 = "::: alert-danger \n \r \n:::"
let g:surround_119 = "::: alert-warning \n \r \n:::"
let g:surround_114 = ">>> \n \r \n>>>"
" markdown 预览插件
"
"Plugin 'iamcco/markdown-preview.vim'
"Plugin 'iamcco/mathjax-support-for-mkdp'
"let g:mkdp_path_to_chrome="chrome"
"let g:mkdp_auto_close=0
"nmap <F7> <Plug>MarkdownPreview
"nmap <F8> <Plug>StopMarkdownPreview
```,'\.swp']
" 8. 自然数排序
let NERDTreeNaturalSort=1
" 9.显示书签列表
let NERDTreeShowBookmarks=1
" 10.关闭NERDTree快捷键
map <silent> <F11> :NERDTreeToggle<CR>
" 11.vimdiff 时不打开 NERDTREE
let g:nerdtree_tabs_no_startup_for_diff = 1
" 12. vim 打开时智能聚焦
let g:nerdtree_tabs_smart_startup_focus = 2
" 13. 打开新选项卡时打开新的NERDTree
let g:nerdtree_tabs_open_on_new_tab = 1
" 14.当 切换到另个标签页上时,关注点始终为缓冲区.
let g:nerdtree_tabs_meaningful_tab_names = 1
" git 目录下显示文件状态插件.
" :脚本执行无需帮助文件.
Plugin 'Xuyuanp/nerdtree-git-plugin'
" 1. git 版本标记
let g:NERDTreeIndicatorMapCustom = {
\ "Modified" : "✹",
\ "Staged" : "✚",
\ "Untracked" : "✭",
\ "Renamed" : "➜",
\ "Unmerged" : "═",
\ "Deleted" : "✖",
\ "Dirty" : "✗",
\ "Clean" : "✔︎",
\ 'Ignored' : '☒',
\ "Unknown" : "?"
\ }
" 表格自动格式化插件
Plugin 'godlygeek/tabular'
" tagbar 函数视图配置 插件
Plugin 'majutsushi/tagbar'
" 1. 设置快捷键
nnoremap <silent> <F12> :TagbarToggle<CR>
" 2.设置tagbar 宽度
let g:tagbar_width = 30
" 3.自动跳到
let g:tagbar_autofocus = 0
" 4.缩进空格.
let g:tagbar_indent = 1
let g:tagbar_expand = 1
" 5.自动打开tagbar
autocmd VimEnter * nested :TagbarOpen
" 6. 折叠级数.
let g:tagbar_foldlevel = 2
" 6.增加 markdown 文件支持 in tagbar.
let g:tagbar_type_markdown = {
\ 'ctagstype': 'markdown',
\ 'ctagsbin' : '~/.vim/bundle/markdown2ctags/markdown2ctags.py',
\ 'ctagsargs' : '-f - --sort=yes --sro=»',
\ 'kinds' : [
\ 's:sections',
\ 'i:images'
\ ],
\ 'sro' : '»',
\ 'kind2scope' : {
\ 's' : 'section',
\ },
\ 'sort': 0,
\ }
" plantuml 预览插件
Plugin 'scrooloose/vim-slumlord'
" plantuml 语法插件
Plugin 'aklt/plantuml-syntax'
" 快捷键插件
Plugin 'tpope/vim-unimpaired'
" find 的增强插件
Plugin 'tpope/vim-rails'
" 成对出现的符号添加\删除插件
Plugin 'tpope/vim-surround'
" sql code surround
let g:surround_113 = "```sql \n \r \n{{CODE_BLOCK_1}}console \n \r \n{{CODE_BLOCK_2}}