• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            The ultimate Vim configuration (vimrc)

            轉載自:http://amix.dk/vim/vimrc.html

            """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
            " Maintainer: amix the lucky stiff
            "             http://amix.dk - amix@amix.dk
            "
            " Version: 3.3 - 21/01/10 01:05:46
            "
            " 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:
            "    $ 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
            "
            "     > fuzzyfinder - http://www.vim.org/scripts/script.php?script_id=1984
            "       Find files fast (similar to TextMate's feature):
            "           info -> :help fuzzyfinder@en
            "
            "  Revisions:
            "     > 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=300

            " 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 hlsearch "Highlight search things

            set incsearch "Make search act like search in modern browsers

            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=


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

            " Set font according to system
            if MySys() == "mac"
              set gfn=Bitstream\ Vera\ Sans\ Mono:h13
              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 background=dark
              set t_Co=256
              set background=dark
              colorscheme peaksea

              set nu
            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 and backups
            """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
            " Turn backup off, since most stuff is in SVN, git anyway...
            set nobackup
            set nowb
            set noswapfile


            """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
            " => 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

            map <leader>t2 :setlocal shiftwidth=2<cr>
            map <leader>t4 :setlocal shiftwidth=4<cr>
            map <leader>t8 :setlocal shiftwidth=4<cr>


            """"""""""""""""""""""""""""""
            " => 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=\ %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


            """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
            " => 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


            """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
            " => 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()


            """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
            " => 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


            """"""""""""""""""""""""""""""
            " => 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>: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
            """"""""""""""""""""""""""""""
            au FileType python set nocindent
            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


            """"""""""""""""""""""""""""""
            " => Fuzzy finder
            """"""""""""""""""""""""""""""
            try
                call fuf#defineLaunchCommand('FufCWD', 'file', 'fnamemodify(getcwd(), ''%:p:h'')')
                map <leader>t :FufCWD **/<CR>
            catch
            endtry


            """"""""""""""""""""""""""""""
            " => 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>

            posted on 2010-08-16 00:12 楊粼波 閱讀(1473) 評論(0)  編輯 收藏 引用

            办公室久久精品| 亚洲中文字幕无码久久综合网| 亚洲国产成人精品无码久久久久久综合| 国产精品岛国久久久久| 久久精品国产精品国产精品污| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 青青草原1769久久免费播放| 精品久久久久久无码免费| 热久久视久久精品18| 99久久99久久| 香蕉99久久国产综合精品宅男自 | 亚洲午夜精品久久久久久浪潮| 久久无码人妻一区二区三区| 久久有码中文字幕| 久久91精品国产91久久麻豆| 亚洲欧美国产精品专区久久| 青青青青久久精品国产h| 亚洲午夜久久久久妓女影院| 久久精品国产精品青草| 亚洲人成无码网站久久99热国产 | 色婷婷综合久久久久中文字幕| 亚洲精品乱码久久久久久中文字幕 | 国产亚洲美女精品久久久久狼| 日本加勒比久久精品| 99久久免费只有精品国产| 久久精品亚洲日本波多野结衣 | 久久精品国产亚洲AV忘忧草18| 久久99精品国产麻豆宅宅 | 久久亚洲熟女cc98cm| 久久99精品久久久久久秒播| 久久久久久人妻无码| 久久综合给合久久狠狠狠97色| 国产精品欧美亚洲韩国日本久久| 久久精品国产亚洲AV无码偷窥 | 色综合久久久久综合99| 国产香蕉97碰碰久久人人| 国内精品久久久久久久久电影网 | 国内精品伊人久久久久妇| 一个色综合久久| 欧美久久天天综合香蕉伊| 久久天天躁狠狠躁夜夜av浪潮|