http://blog.csdn.net/jondynet/archive/2006/11/24/1409632.aspx
使用脚本编写 Vim 编辑器
http://www.ibm.com/developerworks/cn/linux/l-vim-script-1/
手把手教你把Vim改装成一个IDE编程环境
http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx
vim技巧
http://www.enet.com.cn/article/2007/0910/A20070910816746.shtml
vim中复制
如果只是想使用系统粘贴板的话直接在输入模式按Shift+Inset就可以了,下面讲一下vim的粘贴板的基础知识,有兴趣的可以看看,应该会有所收获的。 vim帮助文档里与粘贴板有关的内容如下: 1. vim有12个粘贴板,分别是0、1、2、...、9、a、“、+;用:reg命令可以查看各个粘贴板里的内容。在vim中简单用y只是复制到“(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容; 2. 要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按"Ny完成复制,其中N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按y),例如要把内容复制到粘贴板a,选中内容后按"ay就可以了,有两点需要说明一下: * “号粘贴板(临时粘贴板)比较特殊,直接按y就复制到这个粘贴板中了,直接按p就粘贴这个粘贴板中的内容; * +号粘贴板是系统粘贴板,用"+y将内容复制到该粘贴板后可以使用Ctrl+V将其粘贴到其他文档(如firefox、gedit)中,同理,要把在其他地方用Ctrl+C或右键复制的内容复制到vim中,需要在正常模式下按"+p; 3. 要将vim某个粘贴板里的内容粘贴进来,需要退出编辑模式,在正常模式按"Np,其中N为粘贴板号,如上所述,可以按"5p将5号粘贴板里的内容粘贴进来,也可以按"+p将系统全局粘贴板里的内容粘贴进来。 注意:在我这里,只有vim.gtk或vim.gnome才能使用系统全局粘贴板,默认的vim.basic看不到+号寄存器。可以: sudo apt-get install vim-gnome
我的.vimrc 配置
"F5 for comment vmap <F5> :s=^/(///)*=//=g<cr>:noh<cr> nmap <F5> :s=^/(///)*=//=g<cr>:noh<cr> imap <F5> <ESC>:s=^/(///)*=//=g<cr>:noh<cr> "F6 for uncomment vmap <F6> :s=^/(///)*==g<cr>:noh<cr> nmap <F6> :s=^/(///)*==g<cr>:noh<cr> imap <F6> <ESC>:s=^/(///)*==g<cr>:noh<cr>
"set mapleader let mapleader = "," let g:mapleader = "," "设置不兼容 set nocp "设置backspace set backspace=indent,eol,start "设置状态栏 set ru "设置末行移动 set whichwrap=b,s,<,>,[,] "设置选字 set keymodel=startsel,stopsel "选择包含光标 set selection=inclusive "断行设置 set lbr set fo+=mB "显示行号 "set nu " ""打开语法高亮 syntax on set softtabstop=4 set shiftwidth=4 "关闭自动备份 set nobackup " ""自动缩进设置 set cindent set smartindent set incsearch set autoindent "Show matching bracets set showmatch " ""Get out of VI's compatible mode set nocompatible "Have the mouse enabled all the time set mouse=a " ""Set to auto read when a file is changed from the outside set autoread "Enable filetype plugin filetype plugin on filetype indent on " ""设置配色方案为torte colo torte "设置支持的文件编码类项,目前设置为utf-8和gbk两种类型 set fileencodings=utf-8,chinese " ""设置搜索结果高亮显示 set hlsearch " ""设置记录的历史操作列表 set history=50 "设置折叠 set foldcolumn=2 set foldmethod=indent set foldlevel=3 " ""AutoCommand "新建.c,.h,.sh,.java文件,自动插入文件头 autocmd BufNewFile *.[ch],*.sh,*.java exec ":call SetTitle()" ""新建文件后,自动定位到文件末尾 autocmd BufNewFile * normal G "设置Java代码的自动补全 "au FileType java setlocal omnifunc=javacomplete#Complete " ""绑定自动补全的快捷键<C-X><C-O>到<leader>; imap <leader>; <C-X><C-O> "设定开关Taglist插件的快捷键为F4,可以在VIM的左侧栏列出函数列表等 "map <F4> :Tlist<CR> " ""设置程序的运行和调试的快捷键F5和Ctrl-F5 map <F5> :call CompileRun()<CR> map <C-F5> :call Debug()<CR> "设置tab操作的快捷键,绑定:tabnew到<leader>t,绑定:tabn, :tabp到<leader>n, ""<leader>p map <leader>t :tabnew<CR> map <leader>n :tabn<CR> map <leader>p :tabp<CR> "用cscope支持 set csprg=/usr/bin/cscope let Tlist_Ctags_Cmd='/usr/bin/ctags' let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 let Tlist_Use_Right_Window=1 ""默认打开Taglist "let Tlist_Auto_Open=1 " ""使用<leader>e打开当前文件同目录中的文件 if has("unix") map ,e :e <C-R>=expand("%:p:h") . "/" <CR> else map ,e :e <C-R>=expand("%:p:h") . "/" <CR> endif "定义CompileRun函数,用来调用进行编译和运行 func CompileRun() "exec "w" ""C程序 if &filetype == 'c' exec "!gcc % -g -o %<" exec "!./%<" "Java程序 "elseif &filetype == 'java' "exec "!javac %" "exec "!java %<" endif endfunc ""结束定义CompileRun "定义Debug函数,用来调试程序 func Debug() exec "w" ""C程序 if &filetype == 'c' exec "!gcc % -g -o %<" exec "!gdb %<" "Java程序 "elseif &filetype == 'java' "exec "!javac %" "exec "!jdb %<" endif endfunc ""结束定义Debug "定义函数SetTitle,自动插入文件头 func SetTitle() ""如果文件类型为.sh文件 if &filetype == 'sh' call setline(1, "/#########################################################################") call append(line("."), "/# Author: Gaolin.Ding") call append(line(".")+1, "/# Created Time: ".strftime("%c")) call append(line(".")+2, "/# File Name: ".expand("%")) call append(line(".")+3, "/# Description: ") call append(line(".")+4, "/#########################################################################") call append(line(".")+5, "/#!/bin/bash") call append(line(".")+6, "") else call setline(1, "/*************************************************************************") call append(line("."), " Author: Gaolin.Ding") call append(line(".")+1, " Created Time: ".strftime("%c")) call append(line(".")+2, " File Name: ".expand("%")) call append(line(".")+3, " Description: ") call append(line(".")+4, " ************************************************************************/") call append(line(".")+5, "") endif endfunc