Vim配置文件[Windows] 2012-05-01版

" ----------------- Author: Ruchee " ----------------- Email: my@ruchee.com " ----------------- WebSite: http://www.ruchee.com " ----------------- Date: 2012-05-01 " Ctrl + H --光标移当前行行首 " Ctrl + J --光标移下一行行首 " Ctrl + K --光标移上一行行尾 " Ctrl + L --光标移当前行行尾 " Ctrl + C --编译 [支持C/C++、Java、Haskll] " Ctrl + R --运行 [支持C/C++、Java、Haskell、Lua、Perl、Python、Ruby] " Ctrl + ] --转到函数定义 " Ctrl + T --返回调用函数 " Ctrl + E --一步加载语法模板和作者、时间信息 " <C-P> --单词补全 " <C-X><C-L> --整行补全 " Tab键 --插入模式下的全功能语法结构补全 [snipMate插件] " Shift + Insert --向Vim中粘贴从别处复制的内容 " u [小写] --单步复原 [非插入模式] " U [大写] --整行复原 [非插入模式] " jj --保存文件并留在插入模式 [插入模式] " kk --返回Normal模式 [插入模式] " nt --打开NERDTree [非插入模式] " tl --打开TagList [非插入模式] " za --打开或关闭当前折叠 " zM --关闭所有折叠 " zR --打开所有折叠 " :set syntax=cpp --手动选择语法高亮 [或 :set filetype=cpp] " :%!xxd --转储二进制文件,以十六进制形式显示 " :%!xxd -r --还原二进制文件 " ---------- 主要插件详细用法说明 --------------------- " :Tlist --呼出变量和函数列表 [TagList插件] " :LoadTemplate --呼出语法模板 [Load_Template插件] " :AuthorInfoDetect --添加作者、时间等信息 [NERD_commenter && authorinfo插件] " ---------- a.vim [自动切换C/C++同名头文件] ---------- " " :A --切换同名头文件并独占整个屏幕 " :AS --切换同名头文件并垂直分屏,头文件在上 " :AV --切换同名头文件并水平分割,头文件在左 " ---------- mark.vim [追踪高亮指定关键字] ------------ " " \m --normal模式下,在想要高亮的单词上面敲击\m即可高亮或取消高亮该单词 " :Mark --取消所有高亮 " :Mark abc --指定高亮单词 abc 或取消高亮 abc " ---------- NERDTree [智能文件浏览器] ---------------- " " :NERDTree --启动NERDTree插件 " o [小写] --切换当前文件或目录的打开、关闭状态 " u --打开上层目录 " p [小写] --返回上层目录 " P [大写] --返回根目录 " K --转到当前目录第一个节点 " J --转到当前目录最后的节点 " m --显示文件系统菜单 [增、删、移] " ? --弹出帮助菜单 " q --退出该插件 " 将所有以.html结尾的文档以Django Template语法进行渲染 " 本配置语句必须放在所有配置的最前面 au BufNewFile,BufRead *.html setf htmldjango colorscheme blackboard " 着色模式:蓝色背景 set guifont=Monaco:h10 " 字体 && 字号 set tabstop=4 " 设置tab键的宽度 set shiftwidth=4 " 换行时行间交错使用4个空格 set autoindent " 自动对齐 set backspace=2 " 设置退格键可用 set cindent shiftwidth=4 " 自动缩进4空格 set smartindent " 智能自动缩进 set ai! " 设置自动缩进 set nu! " 显示行号 "set showmatch " 显示括号配对情况 set mouse=a " 启用鼠标 set ruler " 右下角显示光标位置的状态行 set incsearch " 查找book时,当输入/b时会自动找到 set hlsearch " 开启高亮显示结果 set incsearch " 开启实时搜索功能 set nowrapscan " 搜索到文件两端时不重新搜索 set nocompatible " 关闭兼容模式 set vb t_vb= " 关闭提示音 "set cursorline " 突出显示当前行 set hidden " 允许在有未保存的修改时切换缓冲区 set list " 显示Tab符,使用一高亮竖线代替 set listchars=tab:\|\ , syntax enable " 打开语法高亮 syntax on " 开启文件类型侦测 filetype indent on " 针对不同的文件类型采用不同的缩进格式 filetype plugin on " 针对不同的文件类型加载对应的插件 filetype plugin indent on " 启用自动补全 if has("gui_running") au GUIEnter * simalt ~x " 窗口启动时自动最大化 "winpos 20 20 " 指定窗口出现的位置,坐标原点在屏幕左上角 "set lines=20 columns=90 " 指定窗口大小,lines为高度,columns为宽度 "set guioptions-=m " 隐藏菜单栏 "set guioptions-=T " 隐藏工具栏 "set guioptions-=L " 隐藏左侧滚动条 "set guioptions-=r " 隐藏右侧滚动条 "set guioptions-=b " 隐藏底部滚动条 "set showtabline=0 " 隐藏Tab栏 endif set writebackup " 设置无备份文件 set nobackup set autochdir " 设定文件浏览器目录为当前目录 "set nowrap " 设置不自动换行 set foldmethod=syntax " 选择代码折叠类型 set foldlevel=100 " 禁止自动折叠 set laststatus=2 " 开启状态栏信息 set cmdheight=2 " 命令行的高度,默认为1,这里设为2 " 每行超过80个的字符用下划线标示 au BufRead,BufNewFile *.s,*.asm,*.h,*.c,*.cpp,*.cc,*.java,*.cs,*.erl,*.hs,*.sh,*.lua,*.pl,*.pm,*.php,*.py,*.rb,*.erb,*.vim,*.js,*.css,*.xml,*.html,*.xhtml 2match Underlined /.\%81v/ " 设置编码 set fenc=utf-8 set encoding=utf-8 set fileencodings=utf-8,gbk,cp936,latin-1 " 解决菜单乱码 source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim " 解决consle输出乱码 language messages zh_CN.utf-8 " For Haskell :let hs_highlight_delimiters=1 " 高亮定界符 :let hs_highlight_boolean=1 " 把True和False识别为关键字 :let hs_highlight_types=1 " 把基本类型的名字识别为关键字 :let hs_highlight_more_types=1 " 把更多常用类型识别为关键字 :let hs_highlight_debug=1 " 高亮调试函数的名字 :let hs_allow_hash_operator=1 " 阻止把#高亮为错误 " ======= 引号 && 括号自动匹配 ======= " :inoremap ( ()<ESC>i :inoremap ) <c-r>=ClosePair(')')<CR> :inoremap { {}<ESC>i :inoremap } <c-r>=ClosePair('}')<CR> :inoremap [ []<ESC>i :inoremap ] <c-r>=ClosePair(']')<CR> ":inoremap < <><ESC>i ":inoremap > <c-r>=ClosePair('>')<CR> :inoremap " ""<ESC>i :inoremap ' ''<ESC>i :inoremap ` ``<ESC>i function ClosePair(char) if getline('.')[col('.') - 1] == a:char return "\<Right>" else return a:char endif endf " MiniBufExplorer 多个文件切换 可使用鼠标双击相应文件名进行切换 let g:miniBufExplMapWindowNavVim=1 let g:miniBufExplMapWindowNavArrows=1 let g:miniBufExplMapCTabSwitchBufs=1 let g:miniBufExplModSelTarget=1 " :Tlist 调用TagList let Tlist_Show_One_File=1 " 只显示当前文件的tags let Tlist_Exit_OnlyWindow=1 " 如果Taglist窗口是最后一个窗口则退出Vim let Tlist_Use_Right_Window=1 " 在右侧窗口中显示 let Tlist_File_Fold_Auto_Close=1 " 自动折叠 " TxtBrowser 高亮TXT文本文件 au BufRead,BufNewFile *.txt setlocal ft=txt " :LoadTemplate 根据文件后缀自动加载模板 let g:template_path='D:/Apps/Gvim/vimfiles/template/' " :AuthorInfoDetect 自动添加作者、时间等信息,本质是NERD_commenter && authorinfo的结合 let g:vimrc_author='Ruchee' let g:vimrc_email='my@ruchee.com' let g:vimrc_homepage='http://www.ruchee.com' " Ctrl + H 将光标移到当前行的行首 imap <c-h> <ESC>I " Ctrl + J 将光标移到下一行的行首 imap <c-j> <ESC>jI " Ctrl + K 将光标移到上一行的末尾 imap <c-k> <ESC>kA " Ctrl + L 将光标移到当前行的行尾 imap <c-l> <ESC>A " Ctrl + E 一步加载语法模板和作者、时间信息 map <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Gi imap <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Gi vmap <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Gi " jj 保存文件并留在插入模式 [插入模式] imap jj <ESC>:w<CR>li " kk 返回Normal模式 [插入模式] imap kk <ESC>l " nt 打开NERDTree [非插入模式] map nt :NERDTree<CR> " tl 打开Taglist [非插入模式] map tl :Tlist<CR><c-l> " ======= 编译 && 运行 ======= " " 编译源文件 func! CompileCode() exec "w" if &filetype == "c" exec "!gcc -Wall -std=c99 %<.c -o %<" elseif &filetype == "cpp" exec "!g++ -Wall -std=c++98 %<.cpp -o %<" elseif &filetype == "java" exec "!javac %<.java" elseif &filetype == "haskell" exec "!ghc --make %<.hs -o %<" elseif &filetype == "lua" exec "!lua %<.lua" elseif &filetype == "perl" exec "!perl %<.pl" elseif &filetype == "python" exec "!python %<.py" elseif &filetype == "ruby" exec "!ruby %<.rb" endif endfunc " 运行可执行文件 func! RunCode() exec "w" if &filetype == "c" || &filetype == "cpp" || &filetype == "haskell" exec "! %<.exe" elseif &filetype == "java" exec "!java %<" elseif &filetype == "lua" exec "!lua %<.lua" elseif &filetype == "perl" exec "!perl %<.pl" elseif &filetype == "python" exec "!python %<.py" elseif &filetype == "ruby" exec "!ruby %<.rb" endif endfunc " Ctrl + C 一键保存、编译 map <c-c> :call CompileCode()<CR> imap <c-c> <ESC>:call CompileCode()<CR> vmap <c-c> <ESC>:call CompileCode()<CR> " Ctrl + R 一键保存、运行 map <c-r> :call RunCode()<CR> imap <c-r> <ESC>:call RunCode()<CR> vmap <c-r> <ESC>:call RunCode()<CR>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值