vim 常用设置
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