免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1145 | 回复: 0
打印 上一主题 下一主题

.vimrc [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-01 19:32 |只看该作者 |倒序浏览
" vim:shiftwidth=2:tabstop=8:expandtab
if has('autocmd')
  " Remove ALL autocommands for the current group
  au!
  " Mark .asm files MASM-type assembly
  au BufNewFile,BufReadPre *.asm let b:asmsyntax='masm'
endif
if has('gui_running')
  let do_syntax_sel_menu=1
endif
if has('gui_running') && $LANG !~ '\.'
  set encoding=utf-8
endif
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
set autoindent
set nobackup
set showmatch
set formatoptions+=mM
set fileencodings=ucs-bom,utf-8,gbk
set statusline=% 601
  if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)'
    set ambiwidth=double
  endif
endif
" Key mappings to ease browsing long lines
noremap         gj
noremap         gk
noremap        gj
noremap          gk
inoremap  gj
inoremap    gk
" Key mappings for quick arithmetic inside Vim
nnoremap  ma yypV:!calcu '"'k$
vnoremap  ma yopV:!calcu '"'k$
nnoremap  mr yyV:!calcu '"'$
vnoremap  mr ygvmaomb:r !calcu '"'"ay$dd`bv`a"ap
" Key mapping to stop the search highlight
nmap        :nohlsearch
imap   :nohlsearch
" Key mapping for the taglist.vim plugin
nmap       :Tlist
imap  :Tlist
" Key mappings for the quickfix commands
nmap  :cn
nmap  :cp
" Non-GUI setting
if !has('gui_running')
  " Do not increase the windows width in the taglist.vim plugin
  if has('eval')
    let Tlist_Inc_Winwidth=0
  endif
  " Set text-mode menu
  if has('wildmenu')
    set wildmenu
    set cpoptions-=
    nmap       :emenu
    imap  :emenu
  endif
endif
if has('autocmd')
  function! SetFileEncodings(encodings)
    let b:my_fileencodings_bak=&fileencodings
    let &fileencodings=a:encodings
  endfunction
  function! RestoreFileEncodings()
    let &fileencodings=b:my_fileencodings_bak
    unlet b:my_fileencodings_bak
  endfunction
  function! CheckFileEncoding()
    if &modified && &fileencoding != ''
      exec 'e! ++enc=' . &fileencoding
    endif
  endfunction
  function! ConvertHtmlEncoding(encoding)
    if a:encoding ==? 'gb2312'
      return 'gbk'              " GB2312 imprecisely means GBK in HTML
    elseif a:encoding ==? 'iso-8859-1'
      return 'latin1'           " The canonical encoding name in Vim
    elseif a:encoding ==? 'utf8'
      return 'utf-8'            " Other encoding aliases should follow here
    else
      return a:encoding
    endif
  endfunction
  function! DetectHtmlEncoding()
    if &filetype != 'html'
      return
    endif
    normal m`
    normal gg
    if search('\c') != 0
      let reg_bak=@"
      normal y$
      let charset=matchstr(@", 'text/html; charset=\zs[-A-Za-z0-9_]\+')
      let charset=ConvertHtmlEncoding(charset)
      normal ``
      let @"=reg_bak
      if &fileencodings == ''
        let auto_encodings=',' . &encoding . ','
      else
        let auto_encodings=',' . &fileencodings . ','
      endif
      if charset !=? &fileencoding &&
            \(auto_encodings =~ ',' . &fileencoding . ',' || &fileencoding == '')
        silent! exec 'e ++enc=' . charset
      endif
    else
      normal ``
    endif
  endfunction
  function! GnuIndent()
    setlocal cinoptions=>4,n-2,{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1
    setlocal shiftwidth=2
    setlocal tabstop=8
  endfunction
  function! RemoveTrailingSpace()
    if $VIM_HATE_SPACE_ERRORS != '0' &&
          \(&filetype == 'c' || &filetype == 'cpp' || &filetype == 'vim')
      normal m`
      silent! :%s/\s\+$//e
      normal ``
    endif
  endfunction
  " Highlight space errors in C/C++ source files (Vim tip #935)
  if $VIM_HATE_SPACE_ERRORS != '0'
    let c_space_errors=1
  endif
  " Use Canadian spelling convention in engspchk (Vim script #195)
  let spchkdialect='can'
  " Show syntax highlighting attributes of character under cursor (Vim
  " script #383)
  map a :call SyntaxAttr()
  " Automatically find scripts in the autoload directory
  au FuncUndefined * exec 'runtime autoload/' . expand('') . '.vim'
  " File type related autosetting
  au FileType c,cpp setlocal cinoptions=:0,g0,(0,w1 shiftwidth=4 tabstop=4
  au FileType diff  setlocal shiftwidth=4 tabstop=4
  au FileType html  setlocal autoindent indentexpr=
  au FileType changelog setlocal textwidth=76
  " Text file encoding autodetection
  au BufReadPre  *.gb               call SetFileEncodings('gbk')
  au BufReadPre  *.big5             call SetFileEncodings('big5')
  au BufReadPre  *.nfo              call SetFileEncodings('cp437')
  au BufReadPost *.gb,*.big5,*.nfo  call RestoreFileEncodings()
  au BufWinEnter *.txt              call CheckFileEncoding()
  " Detect charset encoding in an HTML file
  au BufReadPost *.htm* nested      call DetectHtmlEncoding()
  " Recognize standard C++ headers
  au BufEnter /usr/include/c++/*    setf cpp
  au BufEnter /usr/include/g++-3/*  setf cpp
  " Setting for files following the GNU coding standard
  au BufEnter /usr/*                call GnuIndent()
  " Remove trailing spaces for C/C++ and Vim files
  au BufWritePre *                  call RemoveTrailingSpace()
endif
"me add
"autocmd BufNewFile *.c exec append(0,"/*   */")|exec append(1,"#include ") |exec append(2,"int main(void)")|exec append(3,"{")|exec append(5,"        return 0;")|exec append(6,"}")| exec ':0'
autocmd BufNewFile *.c exec append(0,"#include ") |exec append(1,"int main(void)")|exec append(2,"{")|exec append(4,"        return 0;")|exec append(5,"}")| exec ':4'
autocmd BufNewFile *.pl exec append(0,"#!/usr/bin/perl -w") | exec append(1,"use strict;") | exec append(2,"use warnings;") | exec ':$'
"autocmd BufNewFile *.py 0r ~/.vim/skeleton/skeleton.py
map  ^i#
map  ^x
set viminfo='200,\"500
set history=500
set number

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/16545/showart_179225.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP