這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
editor:vim [2010/01/07 21:08] wenpei |
editor:vim [2016/01/02 00:07] (目前版本) sars |
||
---|---|---|---|
行 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 ====== | ||
Vim Cookbook:http://www.oualline.com/vim-cook.html | Vim Cookbook:http://www.oualline.com/vim-cook.html | ||
- | ===== COSCUP 2009 by c9s ===== | + | COSCUP 2009 by c9s:http://www.slideshare.net/c9s/vim-hacks |
- | 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 紅塵一隅間拾得 ===== | ||
行 299: | 行 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 | ||
+ |