VIM初始化脚本设计
找路的人
posted @ 2010年4月16日 06:31
in 1.editor.vim
, 1387 阅读
-
问题背景
怎么配置VIM呢? 可能你的回答是在HOME配置_vimrc或者.vimrc.这个一个常见的做法, 而更常见的是把我们的所有相关配置都放到.vimr文件中. 这样子考虑固然是好, 但个人认为有以下缺点:
1. 导致.vimrc文件太大
2. 文件太大的时候, 要在文件里面定位一个功能配置, 比较麻烦
3. 文件大的时候,修改起来比较麻烦
4. 当觉得一个功能不想加载的时候, 要在初始化文件查找其相关地方,再进行修改
-
设计思路
将配置分而治之,相关的配置放到相应的文件,然后在一个主启动脚本中进行加载,避免以上问题的出现,如果出现了问题,只要将出现问题的脚本不要进行加载 -
设计图样
在.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
的配置文件或者插件
-
相关代码
.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 "不设置交换文件