Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 7th, 2012  |  syntax: None  |  size: 3.91 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. " An example for a vimrc file.
  2. "
  3. " Maintainer: Bram Moolenaar <Bram@vim.org>
  4. " Last change:  2008 Dec 17
  5. "
  6. " To use it, copy it to
  7. "     for Unix and OS/2:  ~/.vimrc
  8. "       for Amiga:  s:.vimrc
  9. "  for MS-DOS and Win32:  $VIM\_vimrc
  10. "     for OpenVMS:  sys$login:.vimrc
  11.  
  12. " When started as "evim", evim.vim will already have done these settings.
  13. if v:progname =~? "evim"
  14.   finish
  15. endif
  16.  
  17. " Use Vim settings, rather than Vi settings (much better!).
  18. " This must be first, because it changes other options as a side effect.
  19. set nocompatible
  20.  
  21. " allow backspacing over everything in insert mode
  22. set backspace=indent,eol,start
  23.  
  24. if has("vms")
  25.   set nobackup    " do not keep a backup file, use versions instead
  26. else
  27.   set backup    " keep a backup file
  28. endif
  29. set history=50    " keep 50 lines of command line history
  30. set ruler   " show the cursor position all the time
  31. set showcmd   " display incomplete commands
  32. set incsearch   " do incremental searching
  33.  
  34. " For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries
  35. " let &guioptions = substitute(&guioptions, "t", "", "g")
  36.  
  37. " Don't use Ex mode, use Q for formatting
  38. map Q gq
  39.  
  40. " CTRL-U in insert mode deletes a lot.  Use CTRL-G u to first break undo,
  41. " so that you can undo CTRL-U after inserting a line break.
  42. inoremap <C-U> <C-G>u<C-U>
  43.  
  44. " In many terminal emulators the mouse works just fine, thus enable it.
  45. if has('mouse')
  46.   set mouse=a
  47. endif
  48.  
  49. " Switch syntax highlighting on, when the terminal has colors
  50. " Also switch on highlighting the last used search pattern.
  51. if &t_Co > 2 || has("gui_running")
  52.   syntax on
  53.   set hlsearch
  54. endif
  55.  
  56. " Only do this part when compiled with support for autocommands.
  57. if has("autocmd")
  58.  
  59.   " Enable file type detection.
  60.   " Use the default filetype settings, so that mail gets 'tw' set to 72,
  61.   " 'cindent' is on in C files, etc.
  62.   " Also load indent files, to automatically do language-dependent indenting.
  63.   filetype plugin indent on
  64.  
  65.   " Put these in an autocmd group, so that we can delete them easily.
  66.   augroup vimrcEx
  67.   au!
  68.  
  69.   " For all text files set 'textwidth' to 78 characters.
  70.   autocmd FileType text setlocal textwidth=78
  71.  
  72.   " When editing a file, always jump to the last known cursor position.
  73.   " Don't do it when the position is invalid or when inside an event handler
  74.   " (happens when dropping a file on gvim).
  75.   " Also don't do it when the mark is in the first line, that is the default
  76.   " position when opening a file.
  77.   autocmd BufReadPost *
  78.     \ if line("'\"") > 1 && line("'\"") <= line("$") |
  79.     \   exe "normal! g`\"" |
  80.     \ endif
  81.  
  82.   augroup END
  83.  
  84. else
  85.  
  86.   set autoindent    " always set autoindenting on
  87.  
  88. endif " has("autocmd")
  89.  
  90. " Convenient command to see the difference between the current buffer and the
  91. " file it was loaded from, thus the changes you made.
  92. " Only define it when not defined already.
  93. if !exists(":DiffOrig")
  94.   command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
  95.       \ | wincmd p | diffthis
  96. endif
  97.  
  98. " ---------------------------------------------------------------------------
  99. " ---------------------------------------------------------------------------  
  100.  
  101. " Use the same symbols as TextMate for tabstops and EOLs
  102.   set listchars=tab:▸\ ,eol:¬
  103.  
  104.   " Use 2 spaces and no tabs
  105.   set ts=2 sts=2 sw=2 expandtab
  106.  
  107.   " a function that preserves the state
  108.   " see http://technotales.wordpress.com/2010/03/31/preserve-a-vim-function-that-keeps-your-state/
  109.   function! Preserve(command)
  110.     " Preparation: save last search, and cursor position.
  111.     let _s=@/
  112.     let l = line(".")
  113.     let c = col(".")
  114.     " Do the business:
  115.     execute a:command
  116.     " Clean up: restore previous search history, and cursor position
  117.     let @/=_s
  118.     call cursor(l, c)
  119.   endfunction
  120.  
  121.   nmap _$ :call Preserve("%s/\\s\\+$//e")<CR>
  122.   nmap _= :call Preserve("normal gg=G")<CR>
  123.  
  124.   autocmd BufWritePre *.rb,*.js,*.rake :call Preserve("%s/\\s\\+$//e")<CR>