" Modeline and Notes { " vim: set foldmarker={,} foldlevel=0 spell: " " This is my personal .vimrc, I don't recommend you copy it, just " use the " pieces you want(and understand!). When you copy a " .vimrc in its entirety, weird and unexpected things can happen. " " If you find an obvious mistake hit me up at: " http://robertmelton.com/contact (many forms of communication) " } " Basics { set nocompatible " explicitly get out of vi-compatible mode set noexrc " don't use local version of .(g)vimrc, .exrc set background=dark " we plan to use a dark background set cpoptions=aABceFsmq " ||||||||| " ||||||||+-- When joining lines, leave the cursor " ||||||| between joined lines " |||||||+-- When a new match is created (showmatch) " |||||| pause for .5 " ||||||+-- Set buffer options when entering the " ||||| buffer " |||||+-- :write command updates current file name " ||||+-- Automatically add <CR> to the last line " ||| when using :@r " |||+-- Searching continues at the end of the match " || at the cursor position " ||+-- A backslash has no special meaning in mappings " |+-- :write updates alternative file name " +-- :read updates alternative file name syntax on " syntax highlighting on " } " General { filetype plugin indent on " load filetype plugins/indent settings set backspace=indent,eol,start " make backspace a more flexible set backup " make backup files set backupdir=~/.vim/backup " where to put backup files set clipboard+=unnamed " share windows clipboard set directory=~/.vim/tmp " directory to place swap files in set fileformats=unix,dos,mac " support all three, in this order set hidden " you can change buffers without saving " (XXX: #VIM/tpope warns the line below could break things) set iskeyword+=_,$,@,%,# " none of these are word dividers set mouse=a " use mouse everywhere set noerrorbells " don't make noise set whichwrap=b,s,h,l,<,>,~,[,] " everything wraps " | | | | | | | | | " | | | | | | | | +-- "]" Insert and Replace " | | | | | | | +-- "[" Insert and Replace " | | | | | | +-- "~" Normal " | | | | | +-- <Right> Normal and Visual " | | | | +-- <Left> Normal and Visual " | | | +-- "l" Normal and Visual (not recommended) " | | +-- "h" Normal and Visual (not recommended) " | +-- <Space> Normal and Visual " +-- <BS> Normal and Visual set wildmenu " turn on command line completion wild style " ignore these list file extensions set wildignore=*.dll,*.o,*.obj,*.bak,*.exe,*.pyc, \*.jpg,*.gif,*.png set wildmode=list:longest " turn on wild mode huge list " } " Vim UI { set cursorcolumn " highlight the current column set cursorline " highlight current line set incsearch " BUT do highlight as you type you " search phrase set laststatus=2 " always show the status line set lazyredraw " do not redraw while running macros set linespace=0 " don't insert any extra pixel lines " betweens rows set list " we do what to show tabs, to ensure we get them " out of my files set listchars=tab:>-,trail:- " show tabs and trailing set matchtime=5 " how many tenths of a second to blink " matching brackets for set nohlsearch " do not highlight searched for phrases set nostartofline " leave my cursor where it was set novisualbell " don't blink set number " turn on line numbers set numberwidth=5 " We are good up to 99999 lines set report=0 " tell us when anything is changed via :... set ruler " Always show current positions along the bottom set scrolloff=10 " Keep 10 lines (top/bottom) for scope set shortmess=aOstT " shortens messages to avoid " 'press a key' prompt set showcmd " show the command being typed set showmatch " show matching brackets set sidescrolloff=10 " Keep 5 lines at the size set statusline=%F%m%r%h%w[%L][%{&ff}]%y[%p%%][%04l,%04v] " | | | | | | | | | | | " | | | | | | | | | | + current " | | | | | | | | | | column " | | | | | | | | | +-- current line " | | | | | | | | +-- current % into file " | | | | | | | +-- current syntax in " | | | | | | | square brackets " | | | | | | +-- current fileformat " | | | | | +-- number of lines " | | | | +-- preview flag in square brackets " | | | +-- help flag in square brackets " | | +-- readonly flag in square brackets " | +-- rodified flag in square brackets " +-- full path to file in the buffer " } " Text Formatting/Layout { set completeopt= " don't use a pop up menu for completions set expandtab " no real tabs please! set formatoptions=rq " Automatically insert comment leader on return, " and let gq format comments set ignorecase " case insensitive by default set infercase " case inferred by default set nowrap " do not wrap line set shiftround " when at 3 spaces, and I hit > ... go to 4, not 5 set smartcase " if there are caps, go case-sensitive set shiftwidth=4 " auto-indent amount when using cindent, " >>, << and stuff like that set softtabstop=4 " when hitting tab or backspace, how many spaces "should a tab be (see expandtab) set tabstop=8 " real tabs should be 8, and they will show with " set list on " } " Folding { set foldenable " Turn on folding set foldmarker={,} " Fold C style code (only use this as default " if you use a high foldlevel) set foldmethod=marker " Fold on the marker set foldlevel=100 " Don't autofold anything (but I can still " fold manually) set foldopen=block,hor,mark,percent,quickfix,tag " what movements " open folds function SimpleFoldText() " { return getline(v:foldstart).' ' endfunction " } set foldtext=SimpleFoldText() " Custom fold text function " (cleaner than default) " } " Plugin Settings { let b:match_ignorecase = 1 " case is stupid let perl_extended_vars=1 " highlight advanced perl vars " inside strings " TagList Settings { let Tlist_Auto_Open=0 " let the tag list open automagically let Tlist_Compact_Format = 1 " show small menu let Tlist_Ctags_Cmd = 'ctags' " location of ctags let Tlist_Enable_Fold_Column = 0 " do show folding tree let Tlist_Exist_OnlyWindow = 1 " if you are the last, kill " yourself let Tlist_File_Fold_Auto_Close = 0 " fold closed other trees let Tlist_Sort_Type = "name" " order by let Tlist_Use_Right_Window = 1 " split to the right side " of the screen let Tlist_WinWidth = 40 " 40 cols wide, so i can (almost always) " read my functions " Language Specifics { " just functions and classes please let tlist_aspjscript_settings = 'asp;f:function;c:class' " just functions and subs please let tlist_aspvbs_settings = 'asp;f:function;s:sub' " don't show variables in freaking php let tlist_php_settings = 'php;c:class;d:constant;f:function' " just functions and classes please let tlist_vb_settings = 'asp;f:function;c:class' " } " } " } " Mappings { " ROT13 - fun map <F12> ggVGg? " space / shift-space scroll in normal mode noremap <S-space> <C-b> noremap <space> <C-f> " Make Arrow Keys Useful Again { map <down> <ESC>:bn<RETURN> map <left> <ESC>:NERDTreeToggle<RETURN> map <right> <ESC>:Tlist<RETURN> map <up> <ESC>:bp<RETURN> " } " } " Autocommands { " Ruby { " ruby standard 2 spaces, always au BufRead,BufNewFile *.rb,*.rhtml set shiftwidth=2 au BufRead,BufNewFile *.rb,*.rhtml set softtabstop=2 " } " Notes { " I consider .notes files special, and handle them differently, I " should probably put this in another file au BufRead,BufNewFile *.notes set foldlevel=2 au BufRead,BufNewFile *.notes set foldmethod=indent au BufRead,BufNewFile *.notes set foldtext=foldtext() au BufRead,BufNewFile *.notes set listchars=tab:\ \ au BufRead,BufNewFile *.notes set noexpandtab au BufRead,BufNewFile *.notes set shiftwidth=8 au BufRead,BufNewFile *.notes set softtabstop=8 au BufRead,BufNewFile *.notes set tabstop=8 au BufRead,BufNewFile *.notes set syntax=notes au BufRead,BufNewFile *.notes set nocursorcolumn au BufRead,BufNewFile *.notes set nocursorline au BufRead,BufNewFile *.notes set guifont=Consolas:h12 au BufRead,BufNewFile *.notes set spell " } au BufNewFile,BufRead *.ahk setf ahk " } " GUI Settings { if has("gui_running") " Basics { colorscheme metacosm " my color scheme (only works in GUI) set columns=180 " perfect size for me set guifont=Consolas:h10 " My favorite font set guioptions=ce " || " |+-- use simple dialogs rather than pop-ups " + use GUI tabs, not console style tabs set lines=55 " perfect size for me set mousehide " hide the mouse cursor when typing " } " Font Switching Binds { map <F8> <ESC>:set guifont=Consolas:h8<CR> map <F9> <ESC>:set guifont=Consolas:h10<CR> map <F10> <ESC>:set guifont=Consolas:h12<CR> map <F11> <ESC>:set guifont=Consolas:h16<CR> map <F12> <ESC>:set guifont=Consolas:h20<CR> " } endif " }
my vimrc
copy from http://www.vi-improved.org/vimrc.php
猜你喜欢
转载自ivanl.iteye.com/blog/1044083
今日推荐
周排行