国内某.vimrc

  1 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  2 " 显示相关  
  3 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
  4 set shortmess=atI   " 启动的时候不显示那个援助乌干达儿童的提示  
  5 set go=             " 不要图形按钮  
  6 "color asmanian2     " 设置背景主题  
  7 "set guifont=Courier_New:h10:cANSI   " 设置字体  
  8 autocmd InsertLeave * se nocul  " 用浅色高亮当前行  
  9 autocmd InsertEnter * se cul    " 用浅色高亮当前行  
 10 set ruler           " 显示标尺  
 11 set showcmd         " 输入的命令显示出来,看的清楚些  
 12 "set whichwrap+=<,>,h,l   " 允许backspace和光标键跨越行边界(不建议)  
 13 set scrolloff=3     " 光标移动到buffer的顶部和底部时保持3行距离  
 14 set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}   "状态行显示的内容  
 15 set laststatus=2    " 启动显示状态行(1),总是显示状态行(2)  
 16 "set foldenable      " 允许折叠  
 17 set foldmethod=manual   " 手动折叠  
 18 set nocompatible  "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限  
 19 " 显示中文帮助
 20 if version >= 603
 21     set helplang=cn
 22     set encoding=utf-8
 23 endif
 24 " 自动缩进
 25 set autoindent
 26 set cindent
 27 " Tab键的宽度
 28 set tabstop=4
 29 " 统一缩进为4
 30 set softtabstop=4
 31 set shiftwidth=4
 32 " 不要用空格代替制表符
 33 set noexpandtab
 34 " 在行和段开始处使用制表符
 35 set smarttab
 36 " 显示行号
 37 set number
 38 " 历史记录数
 39 set history=1000
 40 "搜索逐字符高亮
 41 set hlsearch
 42 set incsearch
 43 "语言设置
 44 set langmenu=zh_CN.UTF-8
 45 set helplang=cn
 46 " 总是显示状态行
 47 set cmdheight=2
 48 " 侦测文件类型
 49 filetype on
 50 " 载入文件类型插件
 51 filetype plugin on
 52 " 为特定文件类型载入相关缩进文件
 53 filetype indent on
 54 " 保存全局变量
 55 set viminfo+=!
 56 " 带有如下符号的单词不要被换行分割
 57 set iskeyword+=_,$,@,%,#,-
 58 " 字符间插入的像素行数目
 59 
 60 "markdown配置
 61 au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn}   set filetype=mkd
 62 "rkdown to HTML  
 63 nmap md :!~/.vim/markdown.pl % > %.html <CR><CR>
 64 nmap fi :!firefox %.html & <CR><CR>
 65 
 66 
 67 
 68 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 69 """""新文件标题
 70 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 71 "新建.c,.h,.sh,.java文件,自动插入文件头 
 72 autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java,*.py,*.md exec ":call SetTitle()" 
 73 ""定义函数SetTitle,自动插入文件头 
 74 func SetTitle() 
 75     "如果文件类型为.sh文件 
 76     if &filetype == 'sh' 
 77         call setline(1,"\#########################################################################") 
 78         call append(line("."), "\# File Name: ".expand("%")) 
 79         call append(line(".")+1, "\# Author: ma6174") 
 80         call append(line(".")+2, "\# mail: ma6174@163.com") 
 81         call append(line(".")+3, "\# Created Time: ".strftime("%c")) 
 82         call append(line(".")+4, "\#########################################################################") 
 83         call append(line(".")+5, "\#!/bin/bash") 
 84         call append(line(".")+6, "") 
 85     elseif &filetype == 'python'
 86         call setline(1,"#!/usr/bin/env python")
 87         call append(line("."),"#coding=utf-8")
 88         call append(line(".")+1, "") 
 89     elseif &filetype == 'mkd'
 90         call setline(1,"<head><meta charset=\"UTF-8\"></head>")
 91     else 
 92         call setline(1, "/*************************************************************************") 
 93         call append(line("."), "    > File Name: ".expand("%")) 
 94         call append(line(".")+1, "    > Author: ma6174") 
 95         call append(line(".")+2, "    > Mail: ma6174@163.com ") 
 96         call append(line(".")+3, "    > Created Time: ".strftime("%c")) 
 97         call append(line(".")+4, " ************************************************************************/") 
 98         call append(line(".")+5, "")
 99     endif
100     if &filetype == 'cpp'
101         call append(line(".")+6, "#include<iostream>")
102         call append(line(".")+7, "using namespace std;")
103         call append(line(".")+8, "")
104     endif
105     if &filetype == 'c'
106         call append(line(".")+6, "#include<stdio.h>")
107         call append(line(".")+7, "")
108     endif
109 "    if &filetype == 'java'
110 "        call append(line(".")+6,"public class ".expand("%"))
111 "        call append(line(".")+7,"")
112 "    endif
113     "新建文件后,自动定位到文件末尾
114     autocmd BufNewFile * normal G
115 endfunc 
116 
117 
118 
119 
120 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
121 "键盘命令
122 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
123 :nmap <silent> <F9> <ESC>:Tlist<RETURN>
124 map <C-A> ggVGY
125 map! <C-A> <Esc>ggVGY
126 map <F12> gg=G
127 " 选中状态下 Ctrl+c 复制
128 vmap <C-c> "+y
129 "去空行  
130 nnoremap <F2> :g/^\s*$/d<CR> 
131 "比较文件  
132 nnoremap <C-F2> :vert diffsplit 
133 "列出当前目录文件  
134 map <F3> :tabnew .<CR>  
135 "打开树状文件目录  
136 map <C-F3> \be  
137 "C,C++ 按F5编译运行
138 map <F5> :call CompileRunGcc()<CR>
139 func! CompileRunGcc()
140     exec "w"
141     if &filetype == 'c'
142         exec "!g++ % -o %<"
143         exec "! ./%<"
144     elseif &filetype == 'cpp'
145         exec "!g++ % -o %<"
146         exec "! ./%<"
147     elseif &filetype == 'java' 
148         exec "!javac %" 
149         exec "!java %<"
150     elseif &filetype == 'sh'
151         :!./%
152     elseif &filetype == 'python'
153         exec "!python %"
154     elseif &filetype == 'mkd'
155 "        exec "!touch ~/temp.html"
156 "        exec "!perl ~/.vim/markdown.pl % > /tmp/temp.html<"<CR>
157 "        exec "!markdown % > /tmp/temp.html<"<CR>
158 "        exec "md"
159         exec "!firefox /tmp/markdown.html &"
160     endif
161 endfunc
162 "C,C++的调试
163 map <F8> :call Rungdb()<CR>
164 func! Rungdb()
165     exec "w"
166     exec "!g++ % -g -o %<"
167     exec "!gdb ./%<"
168 endfunc
169 
170 
171 
172 
173 
174 
175 
176 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
177 ""实用设置
178 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
179 if has("autocmd")
180       autocmd BufReadPost *
181           \ if line("'\"") > 0 && line("'\"") <= line("$") |
182           \   exe "normal g`\"" |
183           \ endif
184 endif
185 
186 " 设置当文件被改动时自动载入
187 set autoread
188 " quickfix模式
189 autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>
190 "代码补全 
191 set completeopt=preview,menu 
192 "允许插件  
193 filetype plugin on
194 "共享剪贴板  
195 "set clipboard+=unnamed 
196 "自动保存
197 set autowrite
198 set ruler                   " 打开状态栏标尺
199 set cursorline              " 突出显示当前行
200 set magic                   " 设置魔术
201 set guioptions-=T           " 隐藏工具栏
202 set guioptions-=m           " 隐藏菜单栏
203 set foldcolumn=0
204 set foldmethod=indent 
205 set foldlevel=3 
206 " 不要使用vi的键盘模式,而是vim自己的
207 set nocompatible
208 " 去掉输入错误的提示声音
209 set noeb
210 " 在处理未保存或只读文件的时候,弹出确认
211 set confirm
212 "禁止生成临时文件
213 set nobackup
214 set noswapfile
215 "搜索忽略大小写
216 set ignorecase
217 
218 
219 
220 
221 set linespace=0
222 " 增强模式中的命令行自动完成操作
223 set wildmenu
224 " 使回格键(backspace)正常处理indent, eol, start等
225 set backspace=2
226 " 允许backspace和光标键跨越行边界
227 set whichwrap+=<,>,h,l
228 " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
229 set mouse=a
230 set selection=exclusive
231 set selectmode=mouse,key
232 " 通过使用: commands命令,告诉我们文件的哪一行被改变过
233 set report=0
234 " 在被分割的窗口间显示空白,便于阅读
235 set fillchars=vert:\ ,stl:\ ,stlnc:\
236 " 高亮显示匹配的括号
237 set showmatch
238 " 匹配括号高亮的时间(单位是十分之一秒)
239 set matchtime=1
240 " 光标移动到buffer的顶部和底部时保持3行距离
241 set scrolloff=3
242 " 为C程序提供自动缩进
243 set smartindent
244 " 高亮显示普通txt文件(需要txt.vim脚本)
245 au BufRead,BufNewFile *  setfiletype txt
246 "自动补全
247 :inoremap ( ()<ESC>i
248 :inoremap ) <c-r>=ClosePair(')')<CR>
249 ":inoremap { {<CR>}<ESC>O
250 ":inoremap } <c-r>=ClosePair('}')<CR>
251 :inoremap [ []<ESC>i
252 :inoremap ] <c-r>=ClosePair(']')<CR>
253 :inoremap " ""<ESC>i
254 :inoremap ' ''<ESC>i
255 function! ClosePair(char)
256     if getline('.')[col('.') - 1] == a:char
257         return "\<Right>"
258     else
259         return a:char
260     endif
261 endfunction
262 filetype plugin indent on 
263 "打开文件类型检测, 加了这句才可以用智能补全
264 set completeopt=longest,menu
265 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
266 " CTags的设定  
267 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
268 let Tlist_Sort_Type = "name"    " 按照名称排序  
269 let Tlist_Use_Right_Window = 1  " 在右侧显示窗口  
270 let Tlist_Compart_Format = 1    " 压缩方式  
271 let Tlist_Exist_OnlyWindow = 1  " 如果只有一个buffer,kill窗口也kill掉buffer  
272 let Tlist_File_Fold_Auto_Close = 0  " 不要关闭其他文件的tags  
273 let Tlist_Enable_Fold_Column = 0    " 不要显示折叠树  
274 "let Tlist_Show_One_File=1            "不同时显示多个文件的tag,只显示当前文件的
275 "设置tags  
276 "set tags=tags  
277 "set autochdir 
278 
279 
280 
281 
282 
283 
284 
285 
286 
287 
288 
289 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
290 "其他东东
291 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
292 "默认打开Taglist 
293 let Tlist_Auto_Open=1 
294 """""""""""""""""""""""""""""" 
295 " Tag list (ctags) 
296 """""""""""""""""""""""""""""""" 
297 let Tlist_Ctags_Cmd = '/usr/local/bin/ctags' 
298 let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的 
299 let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim 
300 let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口
301 " minibufexpl插件的一般设置
302 let g:miniBufExplMapWindowNavVim = 1
303 let g:miniBufExplMapWindowNavArrows = 1
304 let g:miniBufExplMapCTabSwitchBufs = 1
305 let g:miniBufExplModSelTarget = 1  
306 
307 
308 
309 
310 
311 
312 
313 
314 
315 
316 
317 
318 "输入法
319 :let g:vimim_map='c-/'
320 :let g:vimim_cloud='qq' " QQ云输入
321 :let g:vimim_punctuation=0    " 不用中文标点
322 :set pastetoggle=<C-H>
323 
324 
325 "python补全
326 let g:pydiction_location = '~/.vim/after/complete-dict'
327 let g:pydiction_menu_height = 20
328 let Tlist_Ctags_Cmd='/usr/local/bin/ctags'
329 let g:miniBufExplMapWindowNavVim = 1
330 let g:miniBufExplMapWindowNavArrows = 1
331 let g:miniBufExplMapCTabSwitchBufs = 1
332 let g:miniBufExplModSelTarget = 1
333 
334 
335 
336 
337 set iskeyword+=.
338 set fileencodings=utf-8
339 set termencoding=utf-8
340 set encoding=utf8
341 set fileencoding=utf8
342 set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030
343 let &termencoding=&encoding
344 
345 
346 
347 autocmd FileType python set omnifunc=pythoncomplete#Complete
posted @ 2012-08-13 21:30  断缠子  阅读(273)  评论(0编辑  收藏  举报
看不到我把