├── .gitignore ├── .gitmodules ├── README.md ├── bundle ├── Config │ ├── autoload │ │ └── handy.vim │ ├── ftdetect │ │ └── vm.vim │ ├── ftplugin │ │ └── javascript.vim │ ├── indent │ │ └── haml.vim │ └── plugin │ │ ├── config.vim │ │ ├── ctrlp.vim │ │ ├── molokai.vim │ │ ├── nerdtree.vim │ │ ├── shortcut.vim │ │ ├── statusline.vim │ │ ├── vimwiki.vim │ │ └── zencoding.vim ├── customSnippet │ └── snippets │ │ ├── html.snippets │ │ └── javascript.snippets ├── html5-syntax │ └── after │ │ └── syntax │ │ └── html.vim └── jslint_fix │ └── ftplugin │ └── javascript │ └── jslint_fix.vim ├── gvimrc ├── install.bat ├── install.sh └── vimrc /.gitignore: -------------------------------------------------------------------------------- 1 | .netrwhist 2 | bundle/Config/plugin/alias.vim 3 | ftplugin/javascript/jslint 4 | dirfile 5 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "bundle/nerdcommenter"] 2 | path = bundle/nerdcommenter 3 | url = git://github.com/scrooloose/nerdcommenter.git 4 | [submodule "bundle/vim-surround"] 5 | path = bundle/vim-surround 6 | url = git://github.com/tpope/vim-surround.git 7 | [submodule "bundle/desertEx"] 8 | path = bundle/desertEx 9 | url = git://github.com/vim-scripts/desertEx.git 10 | [submodule "bundle/genutils"] 11 | path = bundle/genutils 12 | url = git://github.com/vim-scripts/genutils.git 13 | [submodule "bundle/CmdlineComplete"] 14 | path = bundle/CmdlineComplete 15 | url = git://github.com/vim-scripts/CmdlineComplete.git 16 | [submodule "bundle/bufexplorer"] 17 | path = bundle/bufexplorer 18 | url = git://github.com/vim-scripts/bufexplorer.zip.git 19 | [submodule "bundle/zencoding-vim"] 20 | path = bundle/zencoding-vim 21 | url = https://github.com/mattn/emmet-vim.git 22 | [submodule "bundle/nerdtree"] 23 | path = bundle/nerdtree 24 | url = git://github.com/scrooloose/nerdtree.git 25 | [submodule "bundle/fencview"] 26 | path = bundle/fencview 27 | url = git://github.com/tyru/fencview.vim.git 28 | [submodule "bundle/vim-coffee-script"] 29 | path = bundle/vim-coffee-script 30 | url = git://github.com/kchmck/vim-coffee-script.git 31 | [submodule "bundle/vim-markdown"] 32 | path = bundle/vim-markdown 33 | url = git://github.com/plasticboy/vim-markdown.git 34 | [submodule "bundle/snipmate"] 35 | path = bundle/snipmate 36 | url = git://github.com/msanders/snipmate.vim.git 37 | [submodule "bundle/jslint"] 38 | path = bundle/jslint 39 | url = git://github.com/perfectworks/jslint.vim.git 40 | [submodule "bundle/tagbar"] 41 | path = bundle/tagbar 42 | url = git://github.com/majutsushi/tagbar.git 43 | [submodule "bundle/Gist"] 44 | path = bundle/Gist 45 | url = git://github.com/vim-scripts/Gist.vim.git 46 | [submodule "bundle/molokai"] 47 | path = bundle/molokai 48 | url = git://github.com/tomasr/molokai.git 49 | [submodule "bundle/vim-repeat"] 50 | path = bundle/vim-repeat 51 | url = git://github.com/tpope/vim-repeat.git 52 | [submodule "bundle/vim-pathogen"] 53 | path = bundle/vim-pathogen 54 | url = git://github.com/tpope/vim-pathogen.git 55 | [submodule "bundle/vim-scratch"] 56 | path = bundle/vim-scratch 57 | url = git://github.com/duff/vim-scratch.git 58 | [submodule "bundle/vim-javascript"] 59 | path = bundle/vim-javascript 60 | url = git://github.com/pangloss/vim-javascript.git 61 | [submodule "bundle/less"] 62 | path = bundle/less 63 | url = git://github.com/groenewege/vim-less.git 64 | [submodule "bundle/vim-css3-syntax"] 65 | path = bundle/vim-css3-syntax 66 | url = git://github.com/hail2u/vim-css3-syntax.git 67 | [submodule "bundle/vim-fugitive"] 68 | path = bundle/vim-fugitive 69 | url = git://github.com/tpope/vim-fugitive.git 70 | [submodule "bundle/chdirectory"] 71 | path = bundle/chdirectory 72 | url = git://github.com/perfectworks/chdirectory.git 73 | [submodule "bundle/vitality"] 74 | path = bundle/vitality 75 | url = git://github.com/sjl/vitality.vim.git 76 | [submodule "bundle/ctrlp"] 77 | path = bundle/ctrlp 78 | url = git://github.com/kien/ctrlp.vim.git 79 | [submodule "bundle/webapi-vim"] 80 | path = bundle/webapi-vim 81 | url = git://github.com/mattn/webapi-vim.git 82 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PerfectWorks 的 Vim 配置以及插件 2 | 作者日常工作环境为 Linux,经常编辑 JavaScript/HTML/CSS/Python/Shell 文件,因此大部分插件都是为这些文件进行优化。 3 | 4 | 这份配置对 Vim 的修改不多,每个修改都有详细的注释说明,对初学者比较友好。 5 | 6 | 尽管作者对该配置的多平台兼容性有一定处理,但因为每人的使用习惯都不一致,所以并不建议直接使用该配置文件作为生产配置使用,而是建议将该项目 fork 出一个自己的版本来维护。 7 | 8 | 9 | 有更多问题,欢迎直接联系作者。 10 | 11 | ## 安装 12 | 13 | ### *nix 14 | 15 | 在 $HOME 目录下执行以下命令 16 | 17 | git clone git://github.com/perfectworks/vim.git ~/.vim 18 | cd ~/.vim && ./install.sh 19 | 20 | ### Windows 21 | 22 | 在 %HOME% 目录下执行 23 | 24 | git clone git://github.com/perfectworks/vim.git %HOME%/.vim 25 | cd %HOME%/.vim && install.bat 26 | 27 | ## 升级 28 | 29 | 在 .vim 目录下执行以下命令 30 | 31 | git pull 32 | 33 | 升级插件 34 | 35 | git submodule foreach "git checkout master && git pull" 36 | 37 | 38 | ## 配置修改 39 | 40 | 大部分的自定义修改都在 bundle/Config 这个 bundle 里面 41 | 42 | * Vim 本身配置修改一般在 bundle/Config/plugin/config.vm 43 | * 快捷键修改一般在 bundle/Config/plugin/shortcut.vim 44 | * 对插件的配置会在 bundle/Config/plugin/插件名.vim 45 | 46 | ### 自定义快捷键 47 | 48 | 大部分自定义快捷键都在 bundle/Config/plugin/shortcut.vim 中配置,<Leader> 键被映射为 \\ 49 | 50 | * Normal 模式 51 | * gp: 粘贴最近一次 yank 操作的文字 (比如 yy 之后又 dd 了,可以用 gp 来粘贴 yy 的结果) 52 | * /: 在分屏模式下放大 / 缩小当前窗口 53 | * <Leader>nt: 打开 NerdTree 54 | * <Leader>nf :打开 NerdTree 并且将光标跳转到现在编辑的文件 (nt 的意思是 Nerdtree Find) 55 | * <Leader>m: 调用系统 make 56 | * <Leader>sh: 打开系统 shell (打开 shell 之后退出会跳回 vim) 57 | * <F3>: 在当前目录以及子文件夹中搜索特定关键字 (搜索支持 Vim 正则, 默认会搜索 \<关键字>>,如果要取消左右的 \<\>,可以输入 /关键字) 58 | * <F6>: 切换粘贴模式 59 | * <F5>: 切换显示行号 60 | * <F7>/<F8>: 跳到上一条/下一条 quickfix 记录,配合 <F3> 可以在搜索结果中快速跳转;在 vimdiff 模式下跳转到下一处/上一处 diff 61 | * <F9>: 快速编辑 Snippet,在 Snippet 中按 <F9> 会保存当前 Snippet,刷新 snipMate 缓存并返回刚刚编辑的文件 62 | * <F10>: 打开 TagBar 63 | * <Ctrl>-l: 清除高亮并且重绘屏幕 64 | * <Ctrl>-_: 分屏模式下当前窗口最大化 65 | * t`: 跳转到下一个大写字母 (驼峰式跳转) 66 | * <Leader>gc: git commit 67 | * <Leader>gs: git status 68 | * g<C-O>g<C-I>: 跳转到当前文件中的上一个/下一个光标位置 69 | * <space>: 打开刚刚编辑的文件 70 | * CommandLine 模式 71 | * <Ctrl>-a: 跳到命令行开始 72 | * <Ctrl>-e: 跳到命令行结束 73 | * Insert 模式 74 | * ii: 退出到 Norm 模式并保存文件 75 | * <Ctrl>-j: 相当于 <Ctrl>-x<Ctrl>-u 76 | * <Command>-r: 仅在 MacVim 下有效,执行 :silent make 77 | * CtrlP 78 | * 参考插件列表中 CtrlP 的介绍 79 | * Objective C 文件编辑 80 | * <leader>-a: 在 .m 和 .h 文件间切换 81 | 82 | ## 方便 Coding 的一些小功能 83 | 84 | * 打开文件时自动跳转到上一次编辑的位置 85 | * 保存 js 文件后自动生成 tags 文件(需要在项目目录下写一个 jstags.sh 脚本,脚本中写生成 tags 的命令。Vim 仅仅调用这个脚本而已) 86 | 87 | ## 插件 88 | 89 | ### 插件列表 90 | 91 | 插件介绍请 Google 92 | 93 | * vitality 在 iterm2 下支持光标样式切换,以及给 tmux 提供一些高级 feature 94 | * CtrlP 95 | * 强大的文件查找工具,主要快捷键映射有 96 | * <Ctrl>-p 搜索 Buffer/文件/最近使用的文件 (Mixed 模式) 97 | * g<Ctrl>-j 搜索 Tag 98 | * nerdcommenter 快速给代码加注释 99 | * vim-surround 修改一段代码周围的引号、括号等 100 | * CmdlineComplete 给命令行提供补全功能 101 | * bufexplorer 提供 Buffer 列表 102 | * zencoding-vim 103 | * 快捷键是 <Ctrl>-k 104 | * nerdtree 查看目录树 105 | * 设置了过滤 pyc 文件 106 | * fencview 增强 vim 的编码检测 107 | * snipmate 代码补全 108 | * jslint js 语法校验 109 | * tagbar js 代码大纲视图 110 | * Gist 分享代码到 github 的小工具 111 | * vim-repeat 增强 vim 的 repeat 功能 112 | * web-indent JavaScript 的语法缩进 113 | * jsbeautify JavaScript 代码格式化,快捷键是 <Leader>ff 114 | * Scrath 打开一个临时的缓冲区随便记录东西,快捷键是 <Leader>S 115 | * genutils 给 vim 添加一些函数库 116 | * vim-fugitive 增加一些 git 命令支持 117 | * molokai 配色 118 | * desertEx 配色 119 | * vim-markdown 高亮 markdown 格式 120 | * vim-lesscss 高亮 lesscss 格式 121 | * vim-css3 高亮 css3 中的属性 122 | 123 | ### 安装新插件 124 | 125 | 在 .vim 目录下执行 126 | 127 | git submodule add '插件的 github 检出地址' 'bundle/插件名' 128 | git submodule init 129 | git submodule update 130 | -------------------------------------------------------------------------------- /bundle/Config/autoload/handy.vim: -------------------------------------------------------------------------------- 1 | " 打开文件时自动跳转到最后输入的位置 2 | function! handy#JumpToLatest() 3 | if line("'\"") > 1 && line("'\"") <= line("$") 4 | exe "normal! g`\"" 5 | endif 6 | endfunction 7 | 8 | " 查找文字 9 | function! handy#SearchWord() 10 | let word = input("search:", expand("")) 11 | if word[0] == "/" && word[len(word)-1] == "/" 12 | execute "vimgrep ".word." **" 13 | else 14 | execute "vimgrep /\\<".word."\\>/gj **" 15 | endif 16 | copen 17 | endfunction 18 | 19 | " 切换编辑 Snippet 20 | function! handy#ToggleSnipple() 21 | if &ft == 'snippet' 22 | w! 23 | call ReloadAllSnippets() 24 | edit # 25 | bdelete # 26 | else 27 | edit `=expand("~/.vim/bundle/customSnippet/snippets/" . &ft . ".snippets")` 28 | endif 29 | endfunction 30 | 31 | " 根据 tags 文件设置当前目录 32 | function! handy#AutoChangePwd() 33 | let file = finddir('.git', '.;') 34 | if isdirectory(file) 35 | execute ":lcd " . fnamemodify(file, ":p:h:h") 36 | endif 37 | endfunction 38 | 39 | " 生成 jstags 40 | function! handy#GenerateTag() 41 | let file = fnamemodify(findfile('jstags', '.;'), ':p') 42 | if executable(file) 43 | execute ':silent !' . file 44 | endif 45 | endfunction 46 | 47 | " Remove trailing whitespace when writing a buffer, but not for diff files. 48 | " From: Vigil 49 | " @see http://blog.bs2.to/post/EdwardLee/17961 50 | function! handy#RemoveTrailingWhitespace() 51 | if &ft != "diff" 52 | let b:curcol = col(".") 53 | let b:curline = line(".") 54 | silent! %s/\s\+$// 55 | silent! %s/\(\s*\n\)\+\%$// 56 | call cursor(b:curline, b:curcol) 57 | endif 58 | endfunction 59 | 60 | " Prevent jumps out of current buffer 61 | " From: ib. 62 | " @see http://stackoverflow.com/questions/7066456/vim-how-to-prevent-jumps-out-of-current-buffer 63 | function! handy#JumpInFile(back, forw) 64 | let [n, i] = [bufnr('%'), 1] 65 | let p = [n] + getpos('.')[1:] 66 | sil! exe 'norm!1' . a:forw 67 | while 1 68 | let p1 = [bufnr('%')] + getpos('.')[1:] 69 | if n == p1[0] | break | endif 70 | if p == p1 71 | sil! exe 'norm!' . (i-1) . a:back 72 | break 73 | endif 74 | let [p, i] = [p1, i+1] 75 | sil! exe 'norm!1' . a:forw 76 | endwhile 77 | endfunction 78 | 79 | function! handy#VisualSearch(direction) range 80 | let l:saved_reg = @" 81 | execute "normal! vgvy" 82 | 83 | let l:pattern = escape(@", '\\/.*$^~[]') 84 | let l:pattern = substitute(l:pattern, "\n$", "", "") 85 | 86 | if a:direction == 'b' 87 | execute "normal ?" . l:pattern . " " 88 | elseif a:direction == 'f' 89 | execute "normal /" . l:pattern . " " 90 | endif 91 | 92 | let @/ = l:pattern 93 | let @" = l:saved_reg 94 | endfunction 95 | -------------------------------------------------------------------------------- /bundle/Config/ftdetect/vm.vim: -------------------------------------------------------------------------------- 1 | au BufRead,BufNewFile *.vm set filetype=html 2 | -------------------------------------------------------------------------------- /bundle/Config/ftplugin/javascript.vim: -------------------------------------------------------------------------------- 1 | " JavaScript 折叠 2 | let b:javascript_fold=4 3 | let javascript_enable_domhtmlcss=1 4 | 5 | set cc=81 6 | -------------------------------------------------------------------------------- /bundle/Config/indent/haml.vim: -------------------------------------------------------------------------------- 1 | sw=4 2 | -------------------------------------------------------------------------------- /bundle/Config/plugin/config.vim: -------------------------------------------------------------------------------- 1 | " 色彩主题 2 | colo molokai 3 | if $TERM == "xterm-256color" 4 | set t_Co=256 " 256 色 5 | endif 6 | 7 | " 关闭兼容模式 8 | set nocompatible 9 | " 开启魔法匹配 10 | set magic 11 | " 退格键行为 12 | set backspace=indent,eol,start 13 | " 右下角显示标尺 14 | set ruler 15 | " 编码设置 16 | set fileencodings=ucs-bom,utf-8,gbk 17 | set fileformats=unix,dos,mac 18 | 19 | " 缩进设置 20 | set smarttab 21 | set tabstop=4 22 | set softtabstop=4 23 | set shiftwidth=4 24 | set expandtab 25 | 26 | " 高亮括号对 27 | set showmatch 28 | " 自动缩进 29 | set autoindent 30 | " 高亮搜索 31 | set hlsearch 32 | " 状态栏显示键入的命令 33 | set showcmd 34 | " 不创建备份文件 35 | set nobackup 36 | " 高亮当前行 37 | set cursorline 38 | " 智能大小写判断 39 | set ignorecase smartcase 40 | " 语法高亮 41 | syntax on 42 | " 打开文件类型支持 43 | filetype plugin indent on 44 | " 递归向上查找 tags 45 | set tags=tags; 46 | " 修复 Terminal 下面中文双引号的问题 47 | set ambiwidth=double 48 | 49 | " 即时搜索 50 | set incsearch 51 | 52 | " 永远显示状态栏 53 | set laststatus=2 54 | 55 | " undo dir 56 | if v:version >= 703 57 | set undodir=$HOME/.vimundodir 58 | set undofile 59 | endif 60 | 61 | " 打开文件时跳到上次编辑的位置 62 | autocmd BufReadPost * call handy#JumpToLatest() 63 | 64 | if (!(has("win32") || has("win64"))) 65 | autocmd BufWritePost * call system('bsync '.expand('%:p').' &') 66 | endif 67 | 68 | " 保存文件时自动去除 trailing whitespace 69 | autocmd BufWritePre *.js call handy#RemoveTrailingWhitespace() 70 | 71 | " 写文件时去去找 jstags.sh 生成 tag 72 | autocmd BufWritePost *.js call handy#GenerateTag() 73 | 74 | set wildignore+=*/.git/*,*/.hg/*,*/.svn/* 75 | set wildignore+=*/*target/*,*/target*/*,*/node_modules/* 76 | -------------------------------------------------------------------------------- /bundle/Config/plugin/ctrlp.vim: -------------------------------------------------------------------------------- 1 | let g:ctrlp_regexp = 1 2 | let g:ctrlp_cmd = 'CtrlPMixed' 3 | let g:ctrlp_max_files = 1000 4 | let g:ctrlp_match_window_bottom = 0 5 | -------------------------------------------------------------------------------- /bundle/Config/plugin/molokai.vim: -------------------------------------------------------------------------------- 1 | hi ColorColumn ctermbg=234 guibg=#232526 2 | hi CursorLine guibg=#232526 3 | 4 | -------------------------------------------------------------------------------- /bundle/Config/plugin/nerdtree.vim: -------------------------------------------------------------------------------- 1 | " NERDTree Ignore 2 | let NERDTreeIgnore=['\.pyc'] 3 | -------------------------------------------------------------------------------- /bundle/Config/plugin/shortcut.vim: -------------------------------------------------------------------------------- 1 | " NERDTree快捷键 2 | nmap nt :NERDTreeToggle 3 | nmap nf :NERDTreeFind 4 | 5 | " 更快的切换到刚刚编辑的文件上去 6 | nmap 7 | 8 | " CtrlP 9 | nmap :CtrlPTag 10 | 11 | " fugitive 12 | nmap gc :Gcommit 13 | nmap gs :Gstatus 14 | 15 | " 使用上下来调节窗口大小 16 | nmap +:let t:flwwinlayout = winrestcmd() 17 | nmap -:let t:flwwinlayout = winrestcmd() 18 | 19 | " 使用 Y 来复制到行尾 20 | nmap Y y$ 21 | 22 | " 使用 gP 来粘贴最近一次 yank 的文字 23 | nmap gp "0p 24 | nmap gP "0P 25 | 26 | " 快速编译 27 | map m :make 28 | 29 | " 切换到 shell 30 | map sh :sh 31 | 32 | " TagList 33 | map :TagbarToggle 34 | 35 | " 命令模式下方便移动光标 36 | if (!has ("gui_win32")) 37 | cmap 38 | cmap 39 | endif 40 | 41 | " 切换粘贴模式 42 | nmap :set invpaste 43 | 44 | " 切换行号 45 | nmap :set invnu 46 | 47 | " 目录中查找内容 48 | nmap :call handy#SearchWord() 49 | 50 | 51 | " ^L 刷新 52 | nnoremap :nohlsearch 53 | 54 | " 当前分屏最大 55 | nmap   56 | 57 | " F7/F8 切换下一条 diff / quickfix 58 | " @see http://vim.wikia.com/wiki/Selecting_changes_in_diff_mode 59 | if &diff 60 | let g:origCursorPos=getpos('.') 61 | autocmd WinEnter * :call setpos('.', g:origCursorPos) 62 | autocmd WinLeave * :let g:origCursorPos=getpos('.') 63 | nmap [c 64 | nmap ]c 65 | else 66 | map :cp 67 | map :cn 68 | endif 69 | 70 | " 编辑 snippet 71 | nmap :call handy#ToggleSnipple() 72 | 73 | " 更方便的 74 | imap ii :w 75 | 76 | " 打开一个临时的缓冲区随便记东西 77 | nmap S :Scratch 78 | 79 | " 交换 0 和 ^ 80 | nnoremap 0 ^ 81 | nnoremap ^ 0 82 | nnoremap d0 d^ 83 | nnoremap d^ d0 84 | nnoremap c0 c^ 85 | nnoremap c^ c0 86 | nnoremap s0 s^ 87 | nnoremap s^ s0 88 | nnoremap y0 y^ 89 | nnoremap y^ y0 90 | 91 | " 快速跳到下一个驼峰位置 92 | nmap t` /[A-Z] 93 | 94 | " 使用 C-i 来调用 complete 95 | inoremap 96 | 97 | " 在 macvim 下通过 cmd+r 来 make 项目 98 | if has("gui_macvim") 99 | nmap :silent make 100 | endif 101 | 102 | " Prevent jump out from current buffer 103 | nnoremap g :call handy#JumpInFile("\", "\") 104 | nnoremap g :call handy#JumpInFile("\", "\") 105 | 106 | " 搜索前先标记当前位置,方便回到当前位置上 107 | nnoremap / ms/ 108 | nnoremap ? ms? 109 | 110 | """""""""""""""""""""""""""""" 111 | " => Visual mode related 112 | """""""""""""""""""""""""""""" 113 | " Really useful! 114 | " In visual mode when you press * or # to search for the current selection 115 | vnoremap * :call handy#VisualSearch('f') 116 | vnoremap # :call handy#VisualSearch('b') 117 | -------------------------------------------------------------------------------- /bundle/Config/plugin/statusline.vim: -------------------------------------------------------------------------------- 1 | " Paste flag 2 | set statusline=%{&paste=='nopaste'?'':'[p]'}[%{CurDir()}]\ %F%m%r%h\ \ %{&fenc!=''?&fenc:&enc}\ %=%l:%c\ %P\ of\ %L 3 | 4 | function! CurDir() 5 | let home = substitute(expand("$HOME"), "\\", "\\\\\\", "g") 6 | return substitute(getcwd(), home, "~", "g") 7 | endfunction 8 | -------------------------------------------------------------------------------- /bundle/Config/plugin/vimwiki.vim: -------------------------------------------------------------------------------- 1 | " settings for Vimwiki 2 | let g:vimwiki_camel_case=0 3 | 4 | -------------------------------------------------------------------------------- /bundle/Config/plugin/zencoding.vim: -------------------------------------------------------------------------------- 1 | let g:user_zen_leader_key = '' 2 | -------------------------------------------------------------------------------- /bundle/customSnippet/snippets/html.snippets: -------------------------------------------------------------------------------- 1 | snippet doc 2 | 3 | -------------------------------------------------------------------------------- /bundle/customSnippet/snippets/javascript.snippets: -------------------------------------------------------------------------------- 1 | snippet def 2 | define(function(require, exports) { 3 | ${1} 4 | }); 5 | snippet req 6 | var ${1:} = require('${2}'); 7 | snippet for for length 8 | for (var i=0, l=${1:SomeThing}.length; i 4 | " URL: http://rm.blog.br/vim/syntax/html.vim 5 | " Last Change: 2009 Aug 19 6 | " License: Public domain 7 | " (but let me know if you liked it :) ) 8 | " 9 | " Note: This file just adds the new tags from HTML 5 10 | " and don't replace default html.vim syntax file 11 | 12 | " HTML 5 tags 13 | syn keyword htmlTagName contained article aside audio bb canvas command datagrid 14 | syn keyword htmlTagName contained datalist details dialog embed figure footer 15 | syn keyword htmlTagName contained header hgroup keygen mark meter nav output 16 | syn keyword htmlTagName contained progress time ruby rt rp section time video 17 | 18 | " HTML 5 arguments 19 | syn keyword htmlArg contained autofocus placeholder min max step 20 | syn keyword htmlArg contained contenteditable contextmenu draggable hidden item 21 | syn keyword htmlArg contained itemprop list subject spellcheck 22 | " this doesn't work because default syntax file alredy define a 'data' attribute 23 | syn match htmlArg "\<\(data-[\-a-zA-Z0-9_]\+\)=" contained 24 | -------------------------------------------------------------------------------- /bundle/jslint_fix/ftplugin/javascript/jslint_fix.vim: -------------------------------------------------------------------------------- 1 | " remove jslint key binding 2 | " 3 | if (maparg('dd', 'n') != '') 4 | unmap dd 5 | endif 6 | 7 | if (maparg('dw', 'n') != '') 8 | unmap dw 9 | endif 10 | -------------------------------------------------------------------------------- /gvimrc: -------------------------------------------------------------------------------- 1 | set guioptions= " 无 gui 界面 2 | if (has ("gui_win32")) 3 | au GUIEnter * simalt ~x " 最大化启动 4 | set guifont=Consolas:h13:cANSI " 字体设置 5 | elseif (has ("gui_x11")) 6 | set guifont=Droid\ Sans\ Mono\ 14 " 字体设置 7 | else 8 | set guifont=Droid\ Sans\ Mono:h18 " 字体设置 9 | endif 10 | -------------------------------------------------------------------------------- /install.bat: -------------------------------------------------------------------------------- 1 | %USERPROFILE%/bin/elevate.exe fsutil hardlink create %USERPROFILE%\_vimrc %USERPROFILE%\.vim\vimrc 2 | %USERPROFILE%/bin/elevate.exe fsutil hardlink create %USERPROFILE%\_gvimrc %USERPROFILE%\.vim\gvimrc 3 | %USERPROFILE%/bin/junction.exe -q %USERPROFILE%\vimfiles %USERPROFILE%\.vim 4 | cd %USERPROFILE%\.vim 5 | git submodule update --init 6 | md ftplugin\javascript 7 | %USERPROFILE%/bin/junction.exe -q %USERPROFILE%\vimfiles\ftplugin\javascript\jslint %USERPROFILE%\vimfiles\bundle\jslint\ftplugin\javascript\jslint 8 | 9 | echo "Installation finished" 10 | pause 11 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | ln -sf ~/.vim/vimrc ~/.vimrc 2 | ln -sf ~/.vim/gvimrc ~/.gvimrc 3 | [[ ! -e '~/.vimundodir' ]] || mkdir ~/.vimundodir 4 | [[ ! -e '~/.vim-fuf-data' ]] || mkdir ~/.vim-fuf-data 5 | git submodule update --init 6 | -------------------------------------------------------------------------------- /vimrc: -------------------------------------------------------------------------------- 1 | " 加载 pathogen 2 | runtime bundle/vim-pathogen/autoload/pathogen.vim 3 | call pathogen#infect() 4 | Helptags 5 | --------------------------------------------------------------------------------