海运的博客

记录下自己的Vim配置文件

发布时间:May 4, 2012 // 分类:Vim // No Comments

WinodwsVim7.3Linux下也可用。

"插件管理器vundle设置
set nocompatible "与vi不一致
filetype off 
set rtp+=~/.vim/bundle/vundle/ "载入特定目录插件
call vundle#rc()
"plugin
Bundle 'gmarik/vundle'
Bundle 'snipMate'
Bundle 'The-NERD-tree'
Bundle 'bufexplorer.zip'
Bundle 'neocomplcache'
Bundle 'winmanager'
Bundle 'taglist.vim'
"Bundle 'minibufexpl.vim'
Bundle 'FencView.vim'
Bundle 'grep.vim'
Bundle 'ZenCoding.vim'
"indent
Bundle 'php.vim-html-enhanced'
Bundle 'foxconndmd/vim-colors-xterm'
Bundle 'blackdust.vim'
Bundle 'darkburn'
Bundle 'freya'
Bundle 'Lucius'

"基本设置
"cd $HOME "设置工作目录
set helplang=cn "中文帮助
"au bufwritepost .vimrc source % "自动加载修改的配置文件
set fileencodings=utf-8,gb2312,gbk,gb18030,ucs-bom,cp936,big5,euc-jp,euc-kr,latin1 "自动选择编码
set ambiwidth=double "阻止特殊符号无法显示
set termencoding=utf-8
set encoding=utf-8  "设置当前默认编码
set langmenu=zh_CN.UTF-8 " 设置中文菜单及编码
language message zh_CN.UTF-8  "使用中文提示信息
set history=1000  "记录历史文件数”
set confirm "在处理未保存或只读文件的时候,弹出确认
set autoread "自动加载修改的文件

  "界面设置
set cmdheight=1 "命令栏高度
"set number   "显示行号
set laststatus=2 "总是显示状态行
"状态行的显示内容:文件路径、编码、时间、类型
set statusline=%F%m%r%h%w\ [Code=%{&encoding}\ [Format=%{&fileformat}]\ [Type=%Y]\ [Line=%l\ Of\ %L][Column=%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
set wildmenu  "在命令模式下使用 Tab 自动补全的时候, 将补全内容使用一个漂亮的单行菜单形式显示出来。
"set completeopt=longest,menu "关闭自动补全预览窗口
syntax enable  "语法高亮
set t_Co=256
set shortmess=atI  "不显示乌干达儿童
set showcmd  "在状态栏显示目前所执行的指令,未完成的指令片段亦
set novisualbell  "不要闪烁

"图形界面配置"
if  (has("gui_running"))
    au  GUIEnter * simalt ~x "启动最大化
    set mouse=a "鼠标支持"
    set clipboard+=unnamed "与windows共享剪贴板
    set mousemodel=popup  "右键菜单
    set guifont=Microsoft_YaHei_Mono:h12:cANSI
    set gfw=Microsoft_YaHei_Mono:h12:cGB2312
    set guioptions-=m " 隐藏菜单栏
    set guioptions-=T " 隐藏工具栏
    "set guioptions-=r " 隐藏右侧滚动条
    set guioptions+=b
    colo desert
else
"字符界面配置
    colo desert-xterm
endif

 "文本编辑设置
set nobackup "修改文件无备份"
set backspace=2 " 设置退格键可用 
filetype plugin indent on " 侦测文件类型
"set showmatch   " 插入括号时,短暂地跳转到匹配的对应括号
"set matchtime=2 " 短暂跳转到匹配括号的时间
set magic " 显示括号配对情况
set expandtab "编辑时将所有 Tab 替换为空格 
set softtabstop=4    "设置tab键为4个空格"
set shiftwidth=4  "缩进空格数
set smarttab "一次删除4个空格
au FileType html,python,vim,javascript setl shiftwidth=2 "特定类型文件缩进空格
au FileType html,python,vim,javascript setl tabstop=2
"set spell "打开拼写检查
set vb t_vb=  "设置去掉响声"
"set paste "设置粘贴模式,代码不错位
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif "记住上次的位置 

  "搜索设置"
"set nohls  "关闭高亮显示 
set hls  "高亮显示匹配内容
set incsearch "搜索时,输入的词句的逐字符高亮
set cursorline "高亮显示当前行"
set whichwrap=b,s,h,l,<,>,[,]  "光标左右循环移动“

  "断行设置
"set wrap           " 自动换行
"set nowrap         " 不自动换行
set linebreak       " 整词换行
"set tw=78  "超过78个字符自动断行
set lbr  "不在单词之间断行
set fo+=mB  "打开断行模块对亚洲语言支持。 m 表示允许在两个汉字之间断行, 即使汉字之间没有出现空格。 B 表示
" 两行合并为一行的时候, 汉字与汉字之间不要补空格。

  "设置自动对起折叠
set autoindent "" 自动对齐,继承前一行的缩进方式,特别适用于多行注释
set smartindent "开启新行时使用智能自动缩进
set cindent   "c风格程序缩进
"set foldopen=all  "光标遇到折叠,折叠就打开
"set foldclose=all "移开折叠时自动关闭折叠
"set foldenable    "开始折叠
"set foldmethod=syntax " 设置语法折叠
"set foldcolumn=0      " 设置折叠区域的宽度
"setlocal foldlevel=1  " 设置折叠层数

" C的编译和运行
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
exec "!gcc % -o %<"
exec "! ./%<"
endfunc

" C++的编译和运行
map <F6> :call CompileRunGpp()<CR>
func! CompileRunGpp()
exec "w"
exec "!g++ % -o %<"
exec "! ./%<"
endfunc

 "启用 omni 补全.
au FileType php set omnifunc=phpcomplete#CompletePHP
au FileType css set omnifunc=csscomplete#CompleteCSS
au FileType html set omnifunc=htmlcomplete#CompleteTags
au FileType mysql set omnifunc=mysqlcomplete#CompleteMYSQL
au FileType javascript set omnifunc=javascriptcomplete#CompleteJS
au FileType python setlocal omnifunc=pythoncomplete#Complete
au FileType xml setlocal omnifunc=xmlcomplete#CompleteTags

 "自定义CSS补全"
au FileType css call AddCssList()
function AddCssList()
set dictionary-=$VIM/vimfiles/dict/csslist.txt
set complete-=k complete+=k
endfunction

 "检测PHP文件补全
au FileType php call PHPFuncList()
function PHPFuncList()
set dictionary-=$VIM/vimfiles/dict/php_funclist.txt
set complete-=k complete+=k
endfunction

" phpDocumentor for VIM
"inoremap  :call PhpDocSingle()
"nnoremap  :call PhpDocSingle()
"vnoremap  :call PhpDocRange()

"winmanager设置
let g:winManagerWindowLayout='FileExplorer,BufExplorer|TagList' "设置WM窗口内容,在文件管理下ctrl+n切换到BufExplorer
"let g:winManagerWidth = 30 "设置WM窗口宽度
nmap <c-w><c-f> :FirstExplorerWindow<cr> "切换到第一个窗口
nmap <c-w><c-b> :BottomExplorerWindow<cr> "切换到最后一个窗口
nmap wm :WMToggle<cr> "打开WM窗口 
nmap wf :NERDTreeToggle<cr> "打开文件管理器

"taglist设置
let Tlist_Ctags_Cmd = 'D:\Program Files\Ctags\ctags.exe'
set tags=tags;
set autochdir
"let Tlist_Show_One_File=1 "只显示当前文件Tag
"let Tlist_Exit_OnlyWindow=1 "如Tag为最后窗口退出
"let Tlist_Show_Menu=1 "Gvim下显示菜单
"let Tlist_Auto_Open=1  "自动打开taglist

"neocomplcache配置
let g:neocomplcache_enable_at_startup = 1 "启动neocomplcache
"let g:neocomplcache_enable_auto_select = 1 "自动选择第一个
let g:neocomplcache_enable_smart_case = 1 "大写字母区分大小写
let g:neocomplcache_enable_camel_case_completion = 1 "入大写字母时, 进行模糊搜索可能性词语  例如,当输入AE时会匹配ArgumentsException。
let g:neocomplcache_enable_underbar_completion = 1 " 启用下划线补全.进行模糊搜索匹配的词。例如,当输入'p_h'时会匹配'public_html'。默认值是 0
"inoremap <expr><Space>  pumvisible() ? "\<C-n>" : "\<Space>"  "定义补全选择快捷键
"let g:neocomplcache_min_syntax_length = 3 " 设定最小语法关键词长度.
"let g:neocomplcache_lock_buffer_name_pattern = '\*ku\*'

"supertab设置
"let g:SuperTabRetainCompletionType=1 "记住上次的补全方式,直到用其他的补全命令改变它
"let g:SuperTabDefaultCompletionType="<C-X><C-O>" "改变自动补全快捷键

"minibufexpl设置
let g:miniBufExplMapWindowNavVim = 1 "多窗口下ctrl加j/k/l/h/切换窗口
let g:miniBufExplMapWindowNavArrows = 1 "多窗口下ctrl加箭头切换窗口
"let g:miniBufExplMapCTabSwitchBufs = 1 "ctrl加Tab循环切换窗口
"let g:miniBufExplModSelTarget = 1
let g:miniBufExplForceSyntaxEnable = 1 
map <C-n> :bprev!<CR> "切换到下一个Buf
"map <C-b> :bprev!<CR> "切换到上一个Buf

"grep插件
"nnoremap <silent> <F3> :Grep<CR> "F3 Grep查找
nnoremap <silent> <F3> :Rgrep<CR>

"fencview.vim 插件设置
"let g:fencview_autodetect = 1 "开启自动识别编码
"let g:fencview_checklines = 10 "检查前后10行来判断编码

"模仿MS快捷键
vmap <C-c> "yy 
vmap <C-x> "yd
nmap <C-v> "yp
vmap <C-v> "yp
nmap <C-a> ggvG$
imap <C-s> <Esc>:wa<cr>i<Right>
nmap <C-s> :wa<cr>
inoremap <C-a> <esc>ggVG "插入模式下C-a全局选中
vmap <C-c> "+y "可视模式下对选中模块进行复制C-c或剪切C-x
vmap <C-x> "+x
"插入模式下C-v粘贴
inoremap <C-v> <esc>:set paste<cr>mui<C-R>+<esc>mv'uV'v=:set nopaste<cr>

"分割窗口快捷键
nmap wv <C-w>v   " 垂直分割当前窗口
nmap wc <C-w>c   " 关闭当前窗口
nmap ws <C-w>s   " 水平分割当前窗口

"一些不错的映射转换语法,如果在一个文件中混合了不同语言时有用
nmap <leader>1 :set filetype=xhtml<CR>  
nmap <leader>2 :set filetype=css<CR>  
nmap <leader>3 :set filetype=javascript<CR>  
nmap <leader>4 :set filetype=php<CR>  
let mapleader=',' "自定义leader键

标签:vim, vimrc, vim配置文件详解

评论已关闭

分类
最新文章
最近回复
  • liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
  • 海运: 不好意思,没有。
  • zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...
  • 孤狼: 擦。。。。apcupsd会失联 nut在冲到到100的时候会ONBATT进入关机状态,我想想办...