Skynet

          ---------- ---------- 我的新 blog : liukaiyi.cublog.cn ---------- ----------

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            112 Posts :: 1 Stories :: 49 Comments :: 0 Trackbacks

          常用鏈接

          留言簿(13)

          我參與的團隊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜





          tabBar.vim

          這個插件實現了類似UltraEdit中的標簽頁的功能,而且能通過Alt-<n>來切換,
          安裝:
          拷貝文件到[你的gvim的安裝目錄]"vimfiles"plugin"中即可!
          下載:
          http://www.vim.org/scripts/script.php?script_id=1338



          C:/Program Files/Vim/_vimrc

          let $LANG="zh_CN.UTF-8"
          set fileencodings=utf-8,chinese,latin-1
          set termencoding=utf8
          set encoding=utf-8
          set tabstop=4
          set softtabstop=4
          set shiftwidth=4
          set nocompatible
          set incsearch
          set autoindent
          set smartindent
          syntax on
          set diffexpr=MyDiff()
          function MyDiff()
            let opt 
          = '-a --binary '
            if &diffopt ='icase' | let opt = opt . '-i ' | endif
            if &diffopt ='iwhite' | let opt = opt . '-b ' | endif
            let arg1 = v:fname_in
            
          if arg1 =' ' | let arg1 = '"' . arg1 . '"' | endif
            let arg2 = v:fname_new
            
          if arg2 =' ' | let arg2 = '"' . arg2 . '"' | endif
            let arg3 = v:fname_out
            
          if arg3 =' ' | let arg3 = '"' . arg3 . '"' | endif
            let eq = ''
            if $VIMRUNTIME =' '
              if &sh ='\<cmd'
                let cmd = '""' . $VIMRUNTIME . '\diff"'
                let eq = '"'
              else
                let cmd 
          = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
              endif
            
          else
              let cmd 
          = $VIMRUNTIME . '\diff'
            endif
            silent execute 
          '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
          endfunction






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



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



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


          functionCurDir()
              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


          "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
          syn keyword pythonConstant 
          True None False self
          au BufNewFile,BufRead 
          *.jinja set syntax=htmljinja

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




          整理 www.aygfsteel.com/Good-Game
          posted on 2010-01-18 13:45 劉凱毅 閱讀(1967) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 赣榆县| 白城市| 沂源县| 石楼县| 抚远县| 雅江县| 宝应县| 竹溪县| 广宁县| 阿瓦提县| 延吉市| 苍山县| 九龙县| 正宁县| 安龙县| 宕昌县| 新津县| 汕头市| 邛崃市| 颍上县| 侯马市| 清镇市| 揭西县| 博爱县| 木兰县| 阿图什市| 康定县| 滨海县| 体育| 龙门县| 凉山| 佛山市| 潞西市| 涟水县| 鹤庆县| 子长县| 鄂伦春自治旗| 凤山市| 博野县| 卢龙县| 女性|