2011-02-27 153 views
1

可能重复:
configure gvim setting color and font负载的.vimrc

嗨。我刚刚安装了vim并希望设置一些默认设置。我已经安装了gvim的位置:

C:\Program Files (x86)\Vim\vim73

我这里有我的配置文件:

C:\Program Files (x86)\Vim\vim73\.vimrc

我只是想一个配置文件,我发现。这是我目前的.vimrc

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" Maintainer: amix the lucky stiff 
"    http://amix.dk - [email protected] 
" 
" Version: 3.6 - 25/08/10 14:40:30 
" 
" Blog_post: 
"  http://amix.dk/blog/post/19486#The-ultimate-vim-configuration-vimrc 
" Syntax_highlighted: 
"  http://amix.dk/vim/vimrc.html 
" Raw_version: 
"  http://amix.dk/vim/vimrc.txt 
" 
" How_to_Install_on_Unix: 
" $ mkdir ~/.vim_runtime 
" $ svn co svn://orangoo.com/vim ~/.vim_runtime 
" $ cat ~/.vim_runtime/install.sh 
" $ sh ~/.vim_runtime/install.sh <system> 
"  <sytem> can be `mac`, `linux` or `windows` 
" 
" How_to_Upgrade: 
" $ svn update ~/.vim_runtime 
" 
" Sections: 
" -> General 
" -> VIM user interface 
" -> Colors and Fonts 
" -> Files and backups 
" -> Text, tab and indent related 
" -> Visual mode related 
" -> Command mode related 
" -> Moving around, tabs and buffers 
" -> Statusline 
" -> Parenthesis/bracket expanding 
" -> General Abbrevs 
" -> Editing mappings 
" 
" -> Cope 
" -> Minibuffer plugin 
" -> Omni complete functions 
" -> Python section 
" -> JavaScript section 
" 
" 
" Plugins_Included: 
"  > minibufexpl.vim - http://www.vim.org/scripts/script.php?script_id=159 
"  Makes it easy to get an overview of buffers: 
"   info -> :e ~/.vim_runtime/plugin/minibufexpl.vim 
" 
"  > bufexplorer - http://www.vim.org/scripts/script.php?script_id=42 
"  Makes it easy to switch between buffers: 
"   info -> :help bufExplorer 
" 
"  > yankring.vim - http://www.vim.org/scripts/script.php?script_id=1234 
"  Emacs's killring, useful when using the clipboard: 
"   info -> :help yankring 
" 
"  > surround.vim - http://www.vim.org/scripts/script.php?script_id=1697 
"  Makes it easy to work with surrounding text: 
"   info -> :help surround 
" 
"  > snipMate.vim - http://www.vim.org/scripts/script.php?script_id=2540 
"  Snippets for many languages (similar to TextMate's): 
"   info -> :help snipMate 
" 
"  > mru.vim - http://www.vim.org/scripts/script.php?script_id=521 
"  Plugin to manage Most Recently Used (MRU) files: 
"   info -> :e ~/.vim_runtime/plugin/mru.vim 
" 
"  > Command-T - http://www.vim.org/scripts/script.php?script_id=3025 
"  Command-T plug-in provides an extremely fast, intuitive mechanism for opening filesa: 
"   info -> :help CommandT 
"   screencast and web-help -> http://amix.dk/blog/post/19501 
" 
" 
" Revisions: 
"  > 3.6: Added lots of stuff (colors, Command-T, Vim 7.3 persistent undo etc.) 
"  > 3.5: Paste mode is now shown in status line if you are in paste mode 
"  > 3.4: Added mru.vim 
"  > 3.3: Added syntax highlighting for Mako mako.vim 
"  > 3.2: Turned on python_highlight_all for better syntax 
"   highlighting for Python 
"  > 3.1: Added revisions ;) and bufexplorer.vim 
" 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" => General 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" Sets how many lines of history VIM has to remember 
set history=700 

" Enable filetype plugin 
filetype plugin on 
filetype indent on 

" Set to auto read when a file is changed from the outside 
set autoread 

" With a map leader it's possible to do extra key combinations 
" like <leader>w saves the current file 
let mapleader = "," 
let g:mapleader = "," 

" Fast saving 
nmap <leader>w :w!<cr> 

" Fast editing of the .vimrc 
map <leader>e :e! ~/.vim_runtime/vimrc<cr> 

" When vimrc is edited, reload it 
autocmd! bufwritepost vimrc source ~/.vim_runtime/vimrc 


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" => VIM user interface 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" Set 7 lines to the curors - when moving vertical.. 
set so=7 

set wildmenu "Turn on WiLd menu 

set ruler "Always show current position 

set cmdheight=2 "The commandbar height 

set hid "Change buffer - without saving 

" Set backspace config 
set backspace=eol,start,indent 
set whichwrap+=<,>,h,l 

set ignorecase "Ignore case when searching 
set smartcase 

set hlsearch "Highlight search things 

set incsearch "Make search act like search in modern browsers 
set nolazyredraw "Don't redraw while executing macros 

set magic "Set magic on, for regular expressions 

set showmatch "Show matching bracets when text indicator is over them 
set mat=2 "How many tenths of a second to blink 

" No sound on errors 
set noerrorbells 
set novisualbell 
set t_vb= 
set tm=500 


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" => Colors and Fonts 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
syntax enable "Enable syntax hl 

" Set font according to system 
if MySys() == "mac" 
    set gfn=Menlo:h14 
    set shell=/bin/bash 
elseif MySys() == "windows" 
    set gfn=Bitstream\ Vera\ Sans\ Mono:h10 
elseif MySys() == "linux" 
    set gfn=Monospace\ 10 
    set shell=/bin/bash 
endif 

if has("gui_running") 
    set guioptions-=T 
    set t_Co=256 
    set background=dark 
    colorscheme peaksea 
    set nonu 
else 
    colorscheme zellner 
    set background=dark 

    set nonu 
endif 

set encoding=utf8 
try 
    lang en_US 
catch 
endtry 

set ffs=unix,dos,mac "Default file types 


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" => Files, backups and undo 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" Turn backup off, since most stuff is in SVN, git anyway... 
set nobackup 
set nowb 
set noswapfile 

"Persistent undo 
try 
    if MySys() == "windows" 
     set undodir=C:\Windows\Temp 
    else 
     set undodir=~/.vim_runtime/undodir 
    endif 

    set undofile 
catch 
endtry 


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" => Text, tab and indent related 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
set expandtab 
set shiftwidth=4 
set tabstop=4 
set smarttab 

set lbr 
set tw=500 

set ai "Auto indent 
set si "Smart indet 
set wrap "Wrap lines 


"""""""""""""""""""""""""""""" 
" => Visual mode related 
"""""""""""""""""""""""""""""" 
" Really useful! 
" In visual mode when you press * or # to search for the current selection 
vnoremap <silent> * :call VisualSearch('f')<CR> 
vnoremap <silent> # :call VisualSearch('b')<CR> 

" When you press gv you vimgrep after the selected text 
vnoremap <silent> gv :call VisualSearch('gv')<CR> 
map <leader>g :vimgrep // **/*.<left><left><left><left><left><left><left> 


function! CmdLine(str) 
    exe "menu Foo.Bar :" . a:str 
    emenu Foo.Bar 
    unmenu Foo 
endfunction 

" From an idea by Michael Naumann 
function! VisualSearch(direction) range 
    let l:saved_reg = @" 
    execute "normal! vgvy" 

    let l:pattern = escape(@", '\\/.*$^~[]') 
    let l:pattern = substitute(l:pattern, "\n$", "", "") 

    if a:direction == 'b' 
     execute "normal ?" . l:pattern . "^M" 
    elseif a:direction == 'gv' 
     call CmdLine("vimgrep " . '/'. l:pattern . '/' . ' **/*.') 
    elseif a:direction == 'f' 
     execute "normal /" . l:pattern . "^M" 
    endif 

    let @/ = l:pattern 
    let @" = l:saved_reg 
endfunction 



""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" => Command mode related 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" Smart mappings on the command line 
cno $h e ~/ 
cno $d e ~/Desktop/ 
cno $j e ./ 
cno $c e <C-\>eCurrentFileDir("e")<cr> 

" $q is super useful when browsing on the command line 
cno $q <C-\>eDeleteTillSlash()<cr> 

" Bash like keys for the command line 
cnoremap <C-A>  <Home> 
cnoremap <C-E>  <End> 
cnoremap <C-K>  <C-U> 

cnoremap <C-P> <Up> 
cnoremap <C-N> <Down> 

" Useful on some European keyboards 
map ½ $ 
imap ½ $ 
vmap ½ $ 
cmap ½ $ 


func! Cwd() 
    let cwd = getcwd() 
    return "e " . cwd 
endfunc 

func! DeleteTillSlash() 
    let g:cmd = getcmdline() 
    if MySys() == "linux" || MySys() == "mac" 
    let g:cmd_edited = substitute(g:cmd, "\\(.*\[/\]\\).*", "\\1", "") 
    else 
    let g:cmd_edited = substitute(g:cmd, "\\(.*\[\\\\]\\).*", "\\1", "") 
    endif 
    if g:cmd == g:cmd_edited 
    if MySys() == "linux" || MySys() == "mac" 
     let g:cmd_edited = substitute(g:cmd, "\\(.*\[/\]\\).*/", "\\1", "") 
    else 
     let g:cmd_edited = substitute(g:cmd, "\\(.*\[\\\\\]\\).*\[\\\\\]", "\\1", "") 
    endif 
    endif 
    return g:cmd_edited 
endfunc 

func! CurrentFileDir(cmd) 
    return a:cmd . " " . expand("%:p:h") . "/" 
endfunc 


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" => Moving around, tabs and buffers 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" Map space to/(search) and c-space to ? (backgwards search) 
map <space>/
map <c-space> ? 
map <silent> <leader><cr> :noh<cr> 

" Smart way to move btw. windows 
map <C-j> <C-W>j 
map <C-k> <C-W>k 
map <C-h> <C-W>h 
map <C-l> <C-W>l 

" Close the current buffer 
map <leader>bd :Bclose<cr> 

" Close all the buffers 
map <leader>ba :1,300 bd!<cr> 

" Use the arrows to something usefull 
map <right> :bn<cr> 
map <left> :bp<cr> 

" Tab configuration 
map <leader>tn :tabnew<cr> 
map <leader>te :tabedit 
map <leader>tc :tabclose<cr> 
map <leader>tm :tabmove 

" When pressing <leader>cd switch to the directory of the open buffer 
map <leader>cd :cd %:p:h<cr> 


command! Bclose call <SID>BufcloseCloseIt() 
function! <SID>BufcloseCloseIt() 
    let l:currentBufNum = bufnr("%") 
    let l:alternateBufNum = bufnr("#") 

    if buflisted(l:alternateBufNum) 
    buffer # 
    else 
    bnext 
    endif 

    if bufnr("%") == l:currentBufNum 
    new 
    endif 

    if buflisted(l:currentBufNum) 
    execute("bdelete! ".l:currentBufNum) 
    endif 
endfunction 

" Specify the behavior when switching between buffers 
try 
    set switchbuf=usetab 
    set stal=2 
catch 
endtry 


"""""""""""""""""""""""""""""" 
" => Statusline 
"""""""""""""""""""""""""""""" 
" Always hide the statusline 
set laststatus=2 

" Format the statusline 
set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{CurDir()}%h\ \ \ Line:\ %l/%L:%c 


function! CurDir() 
    let curdir = substitute(getcwd(), '/Users/amir/', "~/", "g") 
    return curdir 
endfunction 

function! HasPaste() 
    if &paste 
     return 'PASTE MODE ' 
    else 
     return '' 
    endif 
endfunction 


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" => Parenthesis/bracket expanding 
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
vnoremap $1 <esc>`>a)<esc>`<i(<esc> 
vnoremap $2 <esc>`>a]<esc>`<i[<esc> 
vnoremap $3 <esc>`>a}<esc>`<i{<esc> 
vnoremap $$ <esc>`>a"<esc>`<i"<esc> 
vnoremap $q <esc>`>a'<esc>`<i'<esc> 
vnoremap $e <esc>`>a"<esc>`<i"<esc> 

" Map auto complete of (, ", ', [ 
inoremap $1()<esc>i 
inoremap $2 []<esc>i 
inoremap $3 {}<esc>i 
inoremap $4 {<esc>o}<esc>O 
inoremap $q ''<esc>i 
inoremap $e ""<esc>i 
inoremap $t <><esc>i 


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" => General Abbrevs 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
iab xdate <c-r>=strftime("%d/%m/%y %H:%M:%S")<cr> 


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" => Editing mappings 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
"Remap VIM 0 
map 0^

"Move a line of text using ALT+[jk] or Comamnd+[jk] on mac 
nmap <M-j> mz:m+<cr>`z 
nmap <M-k> mz:m-2<cr>`z 
vmap <M-j> :m'>+<cr>`<my`>mzgv`yo`z 
vmap <M-k> :m'<-2<cr>`>my`<mzgv`yo`z 

if MySys() == "mac" 
    nmap <D-j> <M-j> 
    nmap <D-k> <M-k> 
    vmap <D-j> <M-j> 
    vmap <D-k> <M-k> 
endif 

"Delete trailing white space, useful for Python ;) 
func! DeleteTrailingWS() 
    exe "normal mz" 
    %s/\s\+$//ge 
    exe "normal `z" 
endfunc 
autocmd BufWrite *.py :call DeleteTrailingWS() 

set guitablabel=%t 


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" => Cope 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" Do :help cope if you are unsure what cope is. It's super useful! 
map <leader>cc :botright cope<cr> 
map <leader>n :cn<cr> 
map <leader>p :cp<cr> 


"""""""""""""""""""""""""""""" 
" => bufExplorer plugin 
"""""""""""""""""""""""""""""" 
let g:bufExplorerDefaultHelp=0 
let g:bufExplorerShowRelativePath=1 
map <leader>o :BufExplorer<cr> 


"""""""""""""""""""""""""""""" 
" => Minibuffer plugin 
"""""""""""""""""""""""""""""" 
let g:miniBufExplModSelTarget = 1 
let g:miniBufExplorerMoreThanOne = 2 
let g:miniBufExplModSelTarget = 0 
let g:miniBufExplUseSingleClick = 1 
let g:miniBufExplMapWindowNavVim = 1 
let g:miniBufExplVSplit = 25 
let g:miniBufExplSplitBelow=1 

let g:bufExplorerSortBy = "name" 

autocmd BufRead,BufNew :call UMiniBufExplorer 

map <leader>u :TMiniBufExplorer<cr> 


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" => Omni complete functions 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
autocmd FileType css set omnifunc=csscomplete#CompleteCSS 


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" => Spell checking 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
"Pressing ,ss will toggle and untoggle spell checking 
map <leader>ss :setlocal spell!<cr> 

"Shortcuts using <leader> 
map <leader>sn ]s 
map <leader>sp [s 
map <leader>sa zg 
map <leader>s? z= 


"""""""""""""""""""""""""""""" 
" => Python section 
"""""""""""""""""""""""""""""" 
let python_highlight_all = 1 
au FileType python syn keyword pythonDecorator True None False self 

au BufNewFile,BufRead *.jinja set syntax=htmljinja 
au BufNewFile,BufRead *.mako set ft=mako 

au FileType python inoremap <buffer> $r return 
au FileType python inoremap <buffer> $i import 
au FileType python inoremap <buffer> $p print 
au FileType python inoremap <buffer> $f #--- PH ----------------------------------------------<esc>FP2xi 
au FileType python map <buffer> <leader>1 /class 
au FileType python map <buffer> <leader>2 /def 
au FileType python map <buffer> <leader>C ?class 
au FileType python map <buffer> <leader>D ?def 


"""""""""""""""""""""""""""""" 
" => JavaScript section 
""""""""""""""""""""""""""""""" 
au FileType javascript call JavaScriptFold() 
au FileType javascript setl fen 
au FileType javascript setl nocindent 

au FileType javascript imap <c-t> AJS.log();<esc>hi 
au FileType javascript imap <c-a> alert();<esc>hi 

au FileType javascript inoremap <buffer> $r return 
au FileType javascript inoremap <buffer> $f //--- PH ----------------------------------------------<esc>FP2xi 

function! JavaScriptFold() 
    setl foldmethod=syntax 
    setl foldlevelstart=1 
    syn region foldBraces start=/{/ end=/}/ transparent fold keepend extend 

    function! FoldText() 
    return substitute(getline(v:foldstart), '{.*', '{...}', '') 
    endfunction 
    setl foldtext=FoldText() 
endfunction 


"""""""""""""""""""""""""""""" 
" => MRU plugin 
"""""""""""""""""""""""""""""" 
let MRU_Max_Entries = 400 
map <leader>f :MRU<CR> 


"""""""""""""""""""""""""""""" 
" => Command-T 
"""""""""""""""""""""""""""""" 
let g:CommandTMaxHeight = 15 
set wildignore+=*.o,*.obj,.git,*.pyc 
noremap <leader>j :CommandT<cr> 
noremap <leader>y :CommandTFlush<cr> 


"""""""""""""""""""""""""""""" 
" => Vim grep 
"""""""""""""""""""""""""""""" 
let Grep_Skip_Dirs = 'RCS CVS SCCS .svn generated' 
set grepprg=/bin/grep\ -nH 



""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" => MISC 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
" Remove the Windows ^M - when the encodings gets messed up 
noremap <Leader>m mmHmt:%s/<C-V><cr>//ge<cr>'tzt'm 

"Quickly open a buffer for scripbble 
map <leader>q :e ~/buffer<cr> 
au BufRead,BufNewFile ~/buffer iab <buffer> xh1 =========================================== 

map <leader>pp :setlocal paste!<cr> 

map <leader>bb :cd ..<cr> 

的内容从我的理解这应该更改默认的颜色

if has("gui_running") 
    set guioptions-=T 
    set t_Co=256 
    set background=dark 
    colorscheme peaksea 
    set nonu 
else 
    colorscheme zellner 
    set background=dark 

    set nonu 
endif 

我已经加入peaksea当我手动更改的颜色它的工作原理,但我想这会自动发生。显然这不会发生......我做错了什么?

回答

5

作为第一个建议:因为您是VIM的首发者,请勿复制您在网上任何地方找到的.vimrc。他们可以改变VIM的行为,如果您遇到任何问题(并且不了解您的.vimrc中发生了什么),任何人都无法帮助您。

通常,特定于GUI版本(即GVim)的设置存储在名为_givmrc的单独文件中。 _vimrc(是的,下划线,Win32下不是点)和_gvimrc的默认位置是C:/Documents and Settings/your_home_folder。插件和颜色方案以及您安装的任何其他资料都应该在同一位置转到名为vimfiles的文件夹。

使用的图形用户界面相关的设置_vimrc一般设置和_gvimrc,您避免

if has("gui_running") 
    something 
else 
    something else 
endif 

块搞乱_vimrc。每当新的Vim实例启动时,_vimrc就会被获取,之后_gvimrc如果是GVim则会被获取。

1

使用:version命令查找vimrc文件的路径。