使用者工具

網站工具


editor:vim

差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
editor:vim [2009/12/17 17:07]
wenpei
editor:vim [2016/01/02 00:07] (目前版本)
sars
行 6: 行 6:
 {{editor:​vi-vim-cheat-sheet.png?​512x290}} {{editor:​vi-vim-cheat-sheet.png?​512x290}}
  
 +{{:​editor:​vim.png?​565x333|}}
  
 ====== Text Entry Mode ====== ====== Text Entry Mode ======
行 82: 行 82:
 |  :r <​name> ​ |插入指定檔案的內容| |  :r <​name> ​ |插入指定檔案的內容|
 |  :n  |下個檔案| |  :n  |下個檔案|
 +
 +====== Insert Mode ======
 +===== 自動補齊 =====
 +http://​www.openfoundry.org/​index.php?​option=com_content&​task=view&​id=2215&​Itemid=334
 +
 +|  C-x C-l  |行補齊|
 +|  C-x C-n  |以目前檔案做關鍵字補齊|
  
 ====== tabs ====== ====== tabs ======
行 122: 行 129:
 另一種,會出現分割視窗。 另一種,會出現分割視窗。
   :TOhtml   :TOhtml
 +
 +===== 清除 html tag =====
 +  %s/<​\_[^>​]*>//​g
  
 ====== 在文件前加上行號 ====== ====== 在文件前加上行號 ======
行 131: 行 141:
  
 ====== Plugins ====== ====== Plugins ======
 +===== Vundle =====
 +https://​github.com/​VundleVim/​Vundle.vim
 +
 +管理外掛的工具
 +
 +===== vimagit =====
 +https://​github.com/​jreybert/​vimagit
 +
 +和 git 結合方便操作 git
 +
 ===== snipMate ===== ===== snipMate =====
 http://​www.vim.org/​scripts/​script.php?​script_id=2540 http://​www.vim.org/​scripts/​script.php?​script_id=2540
行 155: 行 175:
  
 http://​ctags.sourceforge.net/​ http://​ctags.sourceforge.net/​
 +
 +===== nerd tree =====
 +http://​www.catonmat.net/​blog/​vim-plugins-nerdtree-vim/​
 +
 +Allows you to explore the file system and open files and directories directly from vim.
  
 ====== Reference ====== ====== Reference ======
-===== COSCUP 2009 by c9s ===== +Vim Cookbook:http://​www.oualline.com/​vim-cook.html 
-http://www.slideshare.net/c9s/vim-hacks+ 
 +COSCUP 2009 by c9s:http://​www.slideshare.net/​c9s/​vim-hacks 
 + 
 +Vim Hacks (OSSF) by c9s:http://​www.slideshare.net/​c9s/​vim-hacks-ossf 
 + 
 +===== vimrc ===== 
 +http://​amix.dk/​vim/​vimrc.html 
 + 
 +<​code>​ 
 +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""​ 
 +" 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>​ 
 +</​code>​
  
 ===== by 紅塵一隅間拾得 ===== ===== by 紅塵一隅間拾得 =====
行 297: 行 889:
  
 http://​vrapper.sourceforge.net/​home/​ http://​vrapper.sourceforge.net/​home/​
 +
 +====== VIM Color Scheme Test - Perl ======
 +http://​vimcolorschemetest.googlecode.com/​svn/​html/​index-pl.html
 +
editor/vim.1261040851.txt.gz · 上一次變更: 2009/12/17 17:07 由 wenpei