" waleking's mac vimrc file. " " Maintainer: Bram Moolenaar <Bram@vim.org> " Modified by: waleking " Last change: 2012 June 5 " " To use it, copy it to " for Unix and OS/2: ~/.vimrc " for Amiga: s:.vimrc " for MS-DOS and Win32: $VIM\_vimrc " for OpenVMS: sys$login:.vimrc " When started as "evim", evim.vim will already have done these settings. if v:progname =~? "evim" finish endif " Use Vim settings, rather than Vi settings (much better!). " This must be first, because it changes other options as a side effect. set nocompatible " allow backspacing over everything in insert mode set backspace=indent,eol,start if has("vms") set nobackup " do not keep a backup file, use versions instead else set backup " keep a backup file endif set history=50 " keep 50 lines of command line history set ruler " show the cursor position all the time set showcmd " display incomplete commands set incsearch " do incremental searching " For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries " let &guioptions = substitute(&guioptions, "t", "", "g") " Don't use Ex mode, use Q for formatting map Q gq " CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo, " so that you can undo CTRL-U after inserting a line break. inoremap <C-U> <C-G>u<C-U> " In many terminal emulators the mouse works just fine, thus enable it. if has('mouse') set mouse=a endif " Switch syntax highlighting on, when the terminal has colors " Also switch on highlighting the last used search pattern. if &t_Co > 2 || has("gui_running") syntax on set hlsearch endif " Only do this part when compiled with support for autocommands. if has("autocmd") " Enable file type detection. " Use the default filetype settings, so that mail gets 'tw' set to 72, " 'cindent' is on in C files, etc. " Also load indent files, to automatically do language-dependent indenting. filetype plugin indent on " Put these in an autocmd group, so that we can delete them easily. augroup vimrcEx au! " For all text files set 'textwidth' to 78 characters. autocmd FileType text setlocal textwidth=78 " When editing a file, always jump to the last known cursor position. " Don't do it when the position is invalid or when inside an event handler " (happens when dropping a file on gvim). " Also don't do it when the mark is in the first line, that is the default " position when opening a file. autocmd BufReadPost * \ if line("'\"") > 1 && line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif augroup END else set autoindent " always set autoindenting on endif " has("autocmd") " Convenient command to see the difference between the current buffer and the " file it was loaded from, thus the changes you made. " Only define it when not defined already. if !exists(":DiffOrig") command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis \ | wincmd p | diffthis endif " Show line number in vim set nu set cursorline set printencoding=utf-8 set enc=utf-8 set printoptions=number:y autocmd BufNewFile *.py,*.cc,*.sh,*.java,*.tex exec ":call SetTitle()" "新建.py,.cc,.java,.sh,*.tex ""定义函数SetTitle,自动插入文件头 func SetTitle() "如果文件类型为.sh文件 if &filetype == 'python' call setline(1, "\#coding=utf8") call setline(2, "\"\"\"") call setline(3, "\# Author: huangwaleking@gmail.com") call setline(4, "\# Created Time : ".strftime("%c")) call setline(5, "") call setline(6, "\# File Name: ".expand("%")) call setline(7, "\# Description:") call setline(8, "") call setline(9, "\"\"\"") call setline(10,"") endif if &filetype == 'java' call setline(1, "//coding=utf8") call setline(2, "/*************************************************************************") call setline(3, "\ @Author: huangwaleking@gmail.com") call setline(4, "\ @Created Time : ".strftime("%c")) call setline(5, "") call setline(6, "\ @File Name: ".expand("%")) call setline(7, "\ @Description:") call setline(8, "") call setline(9, " ************************************************************************/") call setline(10,"") endif if &filetype == 'txt' call setline(1, "\%coding=utf8") call setline(2, "") call setline(3, "\% Author: huangwaleking@gmail.com") call setline(4, "\% Created Time : ".strftime("%c")) call setline(5, "") call setline(6, "\% File Name: ".expand("%")) call setline(7, "\% Description:") call setline(8, "") call setline(9, "") call setline(10,"") endif endfunc " modify the last modified time of a file function SetLastModifiedTime(lineno) let modif_time = strftime("%c") if a:lineno == "-1" let line = getline(6) else let line = getline(a:lineno) endif if line =~ '^////\sLast Modified' let line = substitute( line,':\s\+.*\d\{4\}', ':'.modif_time, "" ) else let line = ' Last Modified: '.modif_time endif if a:lineno == "-1" call setline(5, line) else call append(a:lineno, line) endif endfunction " map the SetLastModifiedTime command automatically au BufWrite *.py,*.java call SetLastModifiedTime(-1)