Apr 16
  1. 问题背景

    怎么配置VIM呢? 可能你的回答是在HOME配置_vimrc或者.vimrc.这个一个常见的做法, 而更常见的是把我们的所有相关配置都放到.vimr文件中. 这样子考虑固然是好, 但个人认为有以下缺点:
    1. 导致.vimrc文件太大
    2. 文件太大的时候, 要在文件里面定位一个功能配置, 比较麻烦

    3. 文件大的时候,修改起来比较麻烦
    4. 当觉得一个功能不想加载的时候, 要在初始化文件查找其相关地方,再进行修改
     
  2. 设计思路

    将配置分而治之,相关的配置放到相应的文件,然后在一个主启动脚本中进行加载,避免以上问题的出现,如果出现了问题,只要将出现问题的脚本不要进行加载
  3. 设计图样

    在.vimrc中加载主初始化文件 rc.main.vim, 在rc.main.vim 加载其它的初始化文件脚本控制文件
    .vimrc->rc.main.vim->其它配置文件
    , 这样子可以将我们自己的初始化配置文件和VIM系统的相关性做到最小
      目录结构
    ├─custom    // 自定义的目录
    │  ├─plg.d // 存在插件的目录
    │  └─rc.d  // 存在初始化脚本的目录
    ├─vim72
    └─vimfiles

    在 custom目录
     custom
    │  plg.mgr.vim // 存储插件管理函数
    │  rc.main.vim // 加载其它插件
    ├─plg.d
    └─rc.d

    在.vimrc 中先加载
    plg.mgr.vim和rc.main.vim, 然后在rc.main.vim中加载plg.d和rc.d
    的配置文件或者插件
     
  4. 相关代码

    .vimrc
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 自定义初始化 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" let plg_path_root = "D:/2.soft.green/2.editor.vim/custom" "我的插件存储路径 exec "so ".plg_path_root."/plg.mgr.vim" exec "so ".plg_path_root."/rc.main.vim"
    plg.mgr.vim
    " 防止插件重新加载
    if exists("s:plg_mgr")
       finish
    endif
    let s:plg_mgr = 1
    
    
    " 判断路径是否存在
    if !exists("plg_path_root")
       echo "请先设置插件的根路径:plg_path_root"
       finish
    endif
    
    if !exists("plg_load_info")
       let plg_load_info = 0
    endif
    
    "----------------------------------------
    "名字:	plg_load_path
    "功能:	加载路路径,主要是往rtp环境变量添加路径
    "参数:  
    "返回:
    "历史
    "----------------------------------------
    function PLG_LOAD_PATH( path )
        " 设置路径,此路径要存在	 
        let find = finddir( g:plg_path_root.a:path )
    
        if strlen( find ) == 0 
           return 0
        endif
    
        let &rtp=&rtp.",".find
    endfunction
    
    
    "----------------------------------------
    "名字:	PLG_LOAD_FILE
    "功能:	加载插件的文件,文件名是相对plg_path_root的路径
    "参数:  无
    "返回:	无
    "历史
    "----------------------------------------
    function PLG_LOAD_FILE( path )
        " 设置路径,此路径要存在
        	 
        let file = g:plg_path_root.a:path.".vim"
        if 	!filereadable(file)
           return 0
        endif
    
        if g:plg_load_info
        echo "load    ".file."..."
        endif
        
        exec "so ".file
    endfunction
    
    
    
    
    
    rc.main.vim
    function RC_MAIN(  )
        call PLG_LOAD_FILE("/rc.d/rc.basic")	" 加载基本的初始化 
    endfunction
    
    call RC_MAIN()
    
    rc.basic.vim
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " 配置VIM的功能
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    set nocompatible		"使用VIM
    filetype plugin on 		"开启文件检测
    syntax on  			"开启语法高亮功能
    
    
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " 启动控制
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    if has("gui_running")
        if has("win32")
            autocmd GUIEnter * simalt ~x " 设定 windows 下 gvim 启动时最大化
        endif
    endi
    
    
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " 配置编辑的相关功能键
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    set backspace=indent,eol,start	"设置退格键
    
    
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " 查找相关配置
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    set hlsearch			"设置高亮查找
    set incsearch 			"增值查找
    set ignorecase smartcase	"忽略大小写
    
    
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " gui相关配置
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    set guioptions-=T		"去掉工具
    set guioptions-=r		"把gui的右边的滑动条去掉
    set guioptions-=L		"把gui的左边的滑动条去掉
    set guioptions-=m		"把gui的菜单去掉
    set laststatus=2		"状态栏一直显示
    set cmdheight=1			"设定命令行的行数为 1
    set showcmd 			"设置显示命令执行结果
    set cursorline			"高亮显示行
    set number			"显示行号
    set ruler 			"显示标尺
    winpos 0 0			"窗口启动设定
    
    
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " 编辑的策略配置
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    set nobackup			"不备份文件
    set noswapfile			"不设置交换文件