- 论坛徽章:
- 1
|
把这个贴到~/.vimrc里 没有这个文件就自己建一个
- " 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=%<%f\ %h%m%r%=%k[%{(&fenc==\"\")?&enc:&fenc}%{(&bomb?\",BOM\":\"\")}]\ %-14.(%l,%c%V%)\ %P
- if has('mouse')
- set mouse=a
- endif
- if has('multi_byte') && v:version > 601
- if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)'
- set ambiwidth=double
- endif
- endif
- " Key mappings to ease browsing long lines
- noremap <C-J> gj
- noremap <C-K> gk
- noremap <Down> gj
- noremap <Up> gk
- inoremap <Down> <C-O>gj
- inoremap <Up> <C-O>gk
- " Key mappings for quick arithmetic inside Vim
- nnoremap <silent> <Leader>ma yypV:!calcu '<C-R>"'<CR>k$
- vnoremap <silent> <Leader>ma yo<ESC>pV:!calcu '<C-R>"'<CR>k$
- nnoremap <silent> <Leader>mr yyV:!calcu '<C-R>"'<CR>$
- vnoremap <silent> <Leader>mr ygvmaomb:r !calcu '<C-R>"'<CR>"ay$dd`bv`a"ap
- " Key mapping to stop the search highlight
- nmap <silent> <F2> :nohlsearch<CR>
- imap <silent> <F2> <C-O>:nohlsearch<CR>
- " Key mapping for the taglist.vim plugin
- nmap <F9> :Tlist<CR>
- imap <F9> <C-O>:Tlist<CR>
- " Key mappings for the quickfix commands
- nmap <F11> :cn<CR>
- nmap <F12> :cp<CR>
- " 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-=<
- set wildcharm=<C-Z>
- nmap <F10> :emenu <C-Z>
- imap <F10> <C-O>:emenu <C-Z>
- 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<meta http-equiv=\("\?\)Content-Type\1 content="text/html; charset=[-A-Za-z0-9_]\+">') != 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 <Leader>a :call SyntaxAttr()<CR>
- " Automatically find scripts in the autoload directory
- au FuncUndefined * exec 'runtime autoload/' . expand('<afile>') . '.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 <stdio.h>") |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 <stdio.h>") |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 <F3> ^i#<ESC>
- map <F2> ^x
- set viminfo='200,\"500
- set history=500
- set number
复制代码 |
|