From 2b980b9c904a50c4ee189b6fb3758748b3ecf1a3 Mon Sep 17 00:00:00 2001 From: Your Name Here Date: Mon, 27 Aug 2012 16:33:36 +0800 Subject: [PATCH] add some plugin & modify .vimrc --- .VimballRecord | 2 + .netrwhist | 4 +- .vim | Bin 0 -> 22 bytes .vimrc | 0 .zshrc | 0 Youdao.py | 52 + after/complete-dict | 0 after/ftplugin/python_pydiction.vim | 0 after/plugin/snipMate.vim | 0 after/pydiction.py | 0 autoload/acp.vim | 0 autoload/conque_term.vim | 0 autoload/conque_term/conque.py | 0 autoload/conque_term/conque_globals.py | 0 autoload/conque_term/conque_screen.py | 0 autoload/conque_term/conque_sole.py | 0 .../conque_term/conque_sole_communicator.py | 0 .../conque_term/conque_sole_shared_memory.py | 0 .../conque_term/conque_sole_subprocess.py | 0 autoload/conque_term/conque_sole_wrapper.py | 0 autoload/conque_term/conque_subprocess.py | 0 autoload/conque_term/conque_win32_util.py | 0 autoload/hammer.vim | 0 autoload/mark.vim | 1002 ++++++++ autoload/mark/palettes.vim | 136 ++ autoload/pythoncomplete.vim | 0 autoload/snipMate.vim | 0 autoload/zencoding.vim | 0 autoload/zencoding/lang.vim | 0 autoload/zencoding/lang/css.vim | 0 autoload/zencoding/lang/haml.vim | 0 autoload/zencoding/lang/html.vim | 0 autoload/zencoding/lang/sass.vim | 0 autoload/zencoding/lang/scss.vim | 0 autoload/zencoding/lang/slim.vim | 0 autoload/zencoding/util.vim | 0 colors/README.txt | 64 + colors/blue.vim | 55 + colors/darkblue.vim | 66 + colors/default.vim | 23 + colors/delek.vim | 51 + colors/desert.vim | 108 + colors/elflord.vim | 50 + colors/evening.vim | 56 + colors/koehler.vim | 70 + colors/morning.vim | 56 + colors/murphy.vim | 41 + colors/pablo.vim | 26 + colors/peachpuff.vim | 60 + colors/ron.vim | 43 + colors/shine.vim | 60 + colors/slate.vim | 56 + colors/t.vim | 50 + colors/torte.vim | 50 + colors/zellner.vim | 54 + doc/HTML.txt | 0 doc/NERD_tree.txt | 0 doc/arabic.cnx | 0 doc/autocmd.cnx | 0 doc/change.cnx | 0 doc/cmdline.cnx | 0 doc/conque_term.txt | 0 doc/debug.cnx | 0 doc/debugger.cnx | 0 doc/develop.cnx | 0 doc/diff.cnx | 0 doc/digraph.cnx | 0 doc/editing.cnx | 0 doc/eval.cnx | 0 doc/farsi.cnx | 0 doc/filetype.cnx | 0 doc/fold.cnx | 0 doc/ft_ada.cnx | 0 doc/ft_sql.cnx | 0 doc/gui.cnx | 0 doc/gui_w16.cnx | 0 doc/gui_w32.cnx | 0 doc/gui_x11.cnx | 0 doc/hangulin.cnx | 0 doc/hebrew.cnx | 0 doc/help.cnx | 0 doc/helphelp.cnx | 0 doc/howto.cnx | 0 doc/if_cscop.cnx | 0 doc/if_lua.cnx | 0 doc/if_mzsch.cnx | 0 doc/if_ole.cnx | 0 doc/if_perl.cnx | 0 doc/if_pyth.cnx | 0 doc/if_ruby.cnx | 0 doc/if_sniff.cnx | 0 doc/if_tcl.cnx | 0 doc/indent.cnx | 0 doc/index.cnx | 0 doc/insert.cnx | 0 doc/intro.cnx | 0 doc/map.cnx | 0 doc/mark.txt | 565 +++++ doc/mbyte.cnx | 0 doc/message.cnx | 0 doc/mlang.cnx | 0 doc/motion.cnx | 0 doc/netbeans.cnx | 0 doc/options.cnx | 0 doc/os_390.cnx | 0 doc/os_amiga.cnx | 0 doc/os_beos.cnx | 0 doc/os_dos.cnx | 0 doc/os_mac.cnx | 0 doc/os_mint.cnx | 0 doc/os_msdos.cnx | 0 doc/os_os2.cnx | 0 doc/os_qnx.cnx | 0 doc/os_risc.cnx | 0 doc/os_unix.cnx | 0 doc/os_vms.cnx | 0 doc/os_win32.cnx | 0 doc/pattern.cnx | 0 doc/pi_getscript.cnx | 0 doc/pi_gzip.cnx | 0 doc/pi_netrw.cnx | 0 doc/pi_paren.cnx | 0 doc/pi_spec.cnx | 0 doc/pi_tar.cnx | 0 doc/pi_vimball.cnx | 0 doc/pi_zip.cnx | 0 doc/print.cnx | 0 doc/quickfix.cnx | 0 doc/quickref.cnx | 0 doc/quotes.cnx | 0 doc/recover.cnx | 0 doc/remote.cnx | 0 doc/repeat.cnx | 0 doc/rileft.cnx | 0 doc/russian.cnx | 0 doc/scroll.cnx | 0 doc/sign.cnx | 0 doc/snipMate.txt | 0 doc/spell.cnx | 0 doc/sponsor.cnx | 0 doc/starting.cnx | 0 doc/syntax.cnx | 0 doc/tabpage.cnx | 0 doc/tags | 920 ++++++- doc/tags-cn | 1 - doc/tagsrch.cnx | 0 doc/term.cnx | 0 doc/tips.cnx | 0 doc/todo.cnx | 0 doc/uganda.cnx | 0 doc/undo.cnx | 0 doc/usr_01.cnx | 0 doc/usr_02.cnx | 0 doc/usr_03.cnx | 0 doc/usr_04.cnx | 0 doc/usr_05.cnx | 0 doc/usr_06.cnx | 0 doc/usr_07.cnx | 0 doc/usr_08.cnx | 0 doc/usr_09.cnx | 0 doc/usr_10.cnx | 0 doc/usr_11.cnx | 0 doc/usr_12.cnx | 0 doc/usr_20.cnx | 0 doc/usr_21.cnx | 0 doc/usr_22.cnx | 0 doc/usr_23.cnx | 0 doc/usr_24.cnx | 0 doc/usr_25.cnx | 0 doc/usr_26.cnx | 0 doc/usr_27.cnx | 0 doc/usr_28.cnx | 0 doc/usr_29.cnx | 0 doc/usr_30.cnx | 0 doc/usr_31.cnx | 0 doc/usr_32.cnx | 0 doc/usr_40.cnx | 0 doc/usr_41.cnx | 0 doc/usr_42.cnx | 0 doc/usr_43.cnx | 0 doc/usr_44.cnx | 0 doc/usr_45.cnx | 0 doc/usr_90.cnx | 0 doc/usr_toc.cnx | 0 doc/various.cnx | 0 doc/version4.cnx | 0 doc/version5.cnx | 0 doc/version6.cnx | 0 doc/version7.cnx | 0 doc/vi_diff.cnx | 0 doc/vimpress.txt | 0 doc/visual.cnx | 0 doc/windows.cnx | 0 doc/wmgraphviz.txt | 143 ++ doc/workshop.cnx | 0 doc/zencoding.txt | 0 ftdetect/markdown.vim | 2 + ftplugin/dot.vim | 491 ++++ ftplugin/python/pyflakes.vim | 0 ftplugin/python/pyflakes/LICENSE | 0 ftplugin/python/pyflakes/NEWS.txt | 0 ftplugin/python/pyflakes/bin/pyflakes | 0 .../lib.linux-x86_64-2.7/pyflakes/__init__.py | 0 .../lib.linux-x86_64-2.7/pyflakes/checker.py | 0 .../lib.linux-x86_64-2.7/pyflakes/messages.py | 0 .../pyflakes/scripts/__init__.py | 0 .../pyflakes/scripts/pyflakes.py | 0 .../pyflakes/test/__init__.py | 0 .../pyflakes/test/harness.py | 0 .../pyflakes/test/test_imports.py | 0 .../pyflakes/test/test_other.py | 0 .../pyflakes/test/test_script.py | 0 .../pyflakes/test/test_undefined_names.py | 0 .../pyflakes/build/scripts-2.7/pyflakes | 0 ftplugin/python/pyflakes/pyflakes/__init__.py | 0 .../python/pyflakes/pyflakes/__init__.pyc | Bin 182 -> 188 bytes ftplugin/python/pyflakes/pyflakes/checker.py | 0 ftplugin/python/pyflakes/pyflakes/checker.pyc | Bin 22704 -> 23022 bytes ftplugin/python/pyflakes/pyflakes/messages.py | 0 .../python/pyflakes/pyflakes/messages.pyc | Bin 6462 -> 6618 bytes .../pyflakes/pyflakes/scripts/__init__.py | 0 .../pyflakes/pyflakes/scripts/pyflakes.py | 0 .../python/pyflakes/pyflakes/test/__init__.py | 0 .../python/pyflakes/pyflakes/test/harness.py | 0 .../pyflakes/pyflakes/test/test_imports.py | 0 .../pyflakes/pyflakes/test/test_other.py | 0 .../pyflakes/pyflakes/test/test_script.py | 0 .../pyflakes/test/test_undefined_names.py | 0 ftplugin/python/pyflakes/setup.py | 0 markdown.pl | 0 plugin/NERD_tree.vim | 0 plugin/acp.vim | 0 plugin/autoproto.vim | 0 plugin/blog.vim | 0 plugin/calendar.vim | 0 plugin/conque_term.vim | 0 plugin/cscope_maps.vim | 0 plugin/echofunc.vim | 0 plugin/fcitx.py | 0 plugin/fcitx.vim | 0 plugin/fencview.vim | 0 plugin/libvimim.dll | Bin plugin/libvimim.so | Bin plugin/mark.vba | 2125 +++++++++++++++++ plugin/mark.vim | 411 ++++ plugin/markdown-1.2.2.vba | 164 ++ plugin/python.vim | 0 plugin/python_fn.vim | 0 plugin/snipMate.vim.bak | 0 plugin/supertab.vim | 0 plugin/taglist.vim | 0 plugin/tasklist.vim | 0 plugin/test.vim | 42 + plugin/translate.vim | 124 + plugin/txt.vim | 0 plugin/vimcdoc.vim | 0 plugin/vimim.cjk.txt | 0 plugin/vimim.txt | 0 plugin/vimim.vim | 0 plugin/zencoding-vim.zip | Bin plugin/zencoding.vim | 0 snippets/_.snippets | 0 snippets/autoit.snippets | 0 snippets/c.snippets | 0 snippets/cpp.snippets | 0 snippets/dot.snippets | 12 + snippets/java.snippets | 0 snippets/javascript.snippets | 0 snippets/mako.snippets | 0 snippets/markdown.snippets | 43 + snippets/objc.snippets | 0 snippets/perl.snippets | 0 snippets/php.snippets | 0 snippets/python.snippets | 0 snippets/ruby.snippets | 0 snippets/sh.snippets | 0 snippets/snippet.snippets | 0 snippets/tcl.snippets | 0 snippets/tex.snippets | 0 snippets/vim.snippets | 0 snippets/zsh.snippets | 0 syntax/blogsyntax.vim | 0 syntax/conque_term.vim | 0 syntax/help_cn.vim | 0 syntax/markdown.vim | 110 + syntax/mkd.vim | 130 + syntax/nerdtree.vim | 0 syntax/python.vim | 0 syntax/snippet.vim | 0 test/github-flavored-markdown.markdown | 0 test/gruber-markdown-syntax.markdown | 0 wmgraphviz.vim.tgz | Bin 0 -> 4875 bytes 292 files changed, 7508 insertions(+), 10 deletions(-) create mode 100644 .VimballRecord mode change 100755 => 100644 .netrwhist create mode 100644 .vim mode change 100755 => 100644 .vimrc mode change 100755 => 100644 .zshrc create mode 100644 Youdao.py mode change 100755 => 100644 after/complete-dict mode change 100755 => 100644 after/ftplugin/python_pydiction.vim mode change 100755 => 100644 after/plugin/snipMate.vim mode change 100755 => 100644 after/pydiction.py mode change 100755 => 100644 autoload/acp.vim mode change 100755 => 100644 autoload/conque_term.vim mode change 100755 => 100644 autoload/conque_term/conque.py mode change 100755 => 100644 autoload/conque_term/conque_globals.py mode change 100755 => 100644 autoload/conque_term/conque_screen.py mode change 100755 => 100644 autoload/conque_term/conque_sole.py mode change 100755 => 100644 autoload/conque_term/conque_sole_communicator.py mode change 100755 => 100644 autoload/conque_term/conque_sole_shared_memory.py mode change 100755 => 100644 autoload/conque_term/conque_sole_subprocess.py mode change 100755 => 100644 autoload/conque_term/conque_sole_wrapper.py mode change 100755 => 100644 autoload/conque_term/conque_subprocess.py mode change 100755 => 100644 autoload/conque_term/conque_win32_util.py mode change 100755 => 100644 autoload/hammer.vim create mode 100644 autoload/mark.vim create mode 100644 autoload/mark/palettes.vim mode change 100755 => 100644 autoload/pythoncomplete.vim mode change 100755 => 100644 autoload/snipMate.vim mode change 100755 => 100644 autoload/zencoding.vim mode change 100755 => 100644 autoload/zencoding/lang.vim mode change 100755 => 100644 autoload/zencoding/lang/css.vim mode change 100755 => 100644 autoload/zencoding/lang/haml.vim mode change 100755 => 100644 autoload/zencoding/lang/html.vim mode change 100755 => 100644 autoload/zencoding/lang/sass.vim mode change 100755 => 100644 autoload/zencoding/lang/scss.vim mode change 100755 => 100644 autoload/zencoding/lang/slim.vim mode change 100755 => 100644 autoload/zencoding/util.vim create mode 100644 colors/README.txt create mode 100644 colors/blue.vim create mode 100644 colors/darkblue.vim create mode 100644 colors/default.vim create mode 100644 colors/delek.vim create mode 100644 colors/desert.vim create mode 100644 colors/elflord.vim create mode 100644 colors/evening.vim create mode 100644 colors/koehler.vim create mode 100644 colors/morning.vim create mode 100644 colors/murphy.vim create mode 100644 colors/pablo.vim create mode 100644 colors/peachpuff.vim create mode 100644 colors/ron.vim create mode 100644 colors/shine.vim create mode 100644 colors/slate.vim create mode 100644 colors/t.vim create mode 100644 colors/torte.vim create mode 100644 colors/zellner.vim mode change 100755 => 100644 doc/HTML.txt mode change 100755 => 100644 doc/NERD_tree.txt mode change 100755 => 100644 doc/arabic.cnx mode change 100755 => 100644 doc/autocmd.cnx mode change 100755 => 100644 doc/change.cnx mode change 100755 => 100644 doc/cmdline.cnx mode change 100755 => 100644 doc/conque_term.txt mode change 100755 => 100644 doc/debug.cnx mode change 100755 => 100644 doc/debugger.cnx mode change 100755 => 100644 doc/develop.cnx mode change 100755 => 100644 doc/diff.cnx mode change 100755 => 100644 doc/digraph.cnx mode change 100755 => 100644 doc/editing.cnx mode change 100755 => 100644 doc/eval.cnx mode change 100755 => 100644 doc/farsi.cnx mode change 100755 => 100644 doc/filetype.cnx mode change 100755 => 100644 doc/fold.cnx mode change 100755 => 100644 doc/ft_ada.cnx mode change 100755 => 100644 doc/ft_sql.cnx mode change 100755 => 100644 doc/gui.cnx mode change 100755 => 100644 doc/gui_w16.cnx mode change 100755 => 100644 doc/gui_w32.cnx mode change 100755 => 100644 doc/gui_x11.cnx mode change 100755 => 100644 doc/hangulin.cnx mode change 100755 => 100644 doc/hebrew.cnx mode change 100755 => 100644 doc/help.cnx mode change 100755 => 100644 doc/helphelp.cnx mode change 100755 => 100644 doc/howto.cnx mode change 100755 => 100644 doc/if_cscop.cnx mode change 100755 => 100644 doc/if_lua.cnx mode change 100755 => 100644 doc/if_mzsch.cnx mode change 100755 => 100644 doc/if_ole.cnx mode change 100755 => 100644 doc/if_perl.cnx mode change 100755 => 100644 doc/if_pyth.cnx mode change 100755 => 100644 doc/if_ruby.cnx mode change 100755 => 100644 doc/if_sniff.cnx mode change 100755 => 100644 doc/if_tcl.cnx mode change 100755 => 100644 doc/indent.cnx mode change 100755 => 100644 doc/index.cnx mode change 100755 => 100644 doc/insert.cnx mode change 100755 => 100644 doc/intro.cnx mode change 100755 => 100644 doc/map.cnx create mode 100644 doc/mark.txt mode change 100755 => 100644 doc/mbyte.cnx mode change 100755 => 100644 doc/message.cnx mode change 100755 => 100644 doc/mlang.cnx mode change 100755 => 100644 doc/motion.cnx mode change 100755 => 100644 doc/netbeans.cnx mode change 100755 => 100644 doc/options.cnx mode change 100755 => 100644 doc/os_390.cnx mode change 100755 => 100644 doc/os_amiga.cnx mode change 100755 => 100644 doc/os_beos.cnx mode change 100755 => 100644 doc/os_dos.cnx mode change 100755 => 100644 doc/os_mac.cnx mode change 100755 => 100644 doc/os_mint.cnx mode change 100755 => 100644 doc/os_msdos.cnx mode change 100755 => 100644 doc/os_os2.cnx mode change 100755 => 100644 doc/os_qnx.cnx mode change 100755 => 100644 doc/os_risc.cnx mode change 100755 => 100644 doc/os_unix.cnx mode change 100755 => 100644 doc/os_vms.cnx mode change 100755 => 100644 doc/os_win32.cnx mode change 100755 => 100644 doc/pattern.cnx mode change 100755 => 100644 doc/pi_getscript.cnx mode change 100755 => 100644 doc/pi_gzip.cnx mode change 100755 => 100644 doc/pi_netrw.cnx mode change 100755 => 100644 doc/pi_paren.cnx mode change 100755 => 100644 doc/pi_spec.cnx mode change 100755 => 100644 doc/pi_tar.cnx mode change 100755 => 100644 doc/pi_vimball.cnx mode change 100755 => 100644 doc/pi_zip.cnx mode change 100755 => 100644 doc/print.cnx mode change 100755 => 100644 doc/quickfix.cnx mode change 100755 => 100644 doc/quickref.cnx mode change 100755 => 100644 doc/quotes.cnx mode change 100755 => 100644 doc/recover.cnx mode change 100755 => 100644 doc/remote.cnx mode change 100755 => 100644 doc/repeat.cnx mode change 100755 => 100644 doc/rileft.cnx mode change 100755 => 100644 doc/russian.cnx mode change 100755 => 100644 doc/scroll.cnx mode change 100755 => 100644 doc/sign.cnx mode change 100755 => 100644 doc/snipMate.txt mode change 100755 => 100644 doc/spell.cnx mode change 100755 => 100644 doc/sponsor.cnx mode change 100755 => 100644 doc/starting.cnx mode change 100755 => 100644 doc/syntax.cnx mode change 100755 => 100644 doc/tabpage.cnx mode change 100755 => 100644 doc/tags mode change 100755 => 100644 doc/tags-cn mode change 100755 => 100644 doc/tagsrch.cnx mode change 100755 => 100644 doc/term.cnx mode change 100755 => 100644 doc/tips.cnx mode change 100755 => 100644 doc/todo.cnx mode change 100755 => 100644 doc/uganda.cnx mode change 100755 => 100644 doc/undo.cnx mode change 100755 => 100644 doc/usr_01.cnx mode change 100755 => 100644 doc/usr_02.cnx mode change 100755 => 100644 doc/usr_03.cnx mode change 100755 => 100644 doc/usr_04.cnx mode change 100755 => 100644 doc/usr_05.cnx mode change 100755 => 100644 doc/usr_06.cnx mode change 100755 => 100644 doc/usr_07.cnx mode change 100755 => 100644 doc/usr_08.cnx mode change 100755 => 100644 doc/usr_09.cnx mode change 100755 => 100644 doc/usr_10.cnx mode change 100755 => 100644 doc/usr_11.cnx mode change 100755 => 100644 doc/usr_12.cnx mode change 100755 => 100644 doc/usr_20.cnx mode change 100755 => 100644 doc/usr_21.cnx mode change 100755 => 100644 doc/usr_22.cnx mode change 100755 => 100644 doc/usr_23.cnx mode change 100755 => 100644 doc/usr_24.cnx mode change 100755 => 100644 doc/usr_25.cnx mode change 100755 => 100644 doc/usr_26.cnx mode change 100755 => 100644 doc/usr_27.cnx mode change 100755 => 100644 doc/usr_28.cnx mode change 100755 => 100644 doc/usr_29.cnx mode change 100755 => 100644 doc/usr_30.cnx mode change 100755 => 100644 doc/usr_31.cnx mode change 100755 => 100644 doc/usr_32.cnx mode change 100755 => 100644 doc/usr_40.cnx mode change 100755 => 100644 doc/usr_41.cnx mode change 100755 => 100644 doc/usr_42.cnx mode change 100755 => 100644 doc/usr_43.cnx mode change 100755 => 100644 doc/usr_44.cnx mode change 100755 => 100644 doc/usr_45.cnx mode change 100755 => 100644 doc/usr_90.cnx mode change 100755 => 100644 doc/usr_toc.cnx mode change 100755 => 100644 doc/various.cnx mode change 100755 => 100644 doc/version4.cnx mode change 100755 => 100644 doc/version5.cnx mode change 100755 => 100644 doc/version6.cnx mode change 100755 => 100644 doc/version7.cnx mode change 100755 => 100644 doc/vi_diff.cnx mode change 100755 => 100644 doc/vimpress.txt mode change 100755 => 100644 doc/visual.cnx mode change 100755 => 100644 doc/windows.cnx create mode 100644 doc/wmgraphviz.txt mode change 100755 => 100644 doc/workshop.cnx mode change 100755 => 100644 doc/zencoding.txt create mode 100644 ftdetect/markdown.vim create mode 100644 ftplugin/dot.vim mode change 100755 => 100644 ftplugin/python/pyflakes.vim mode change 100755 => 100644 ftplugin/python/pyflakes/LICENSE mode change 100755 => 100644 ftplugin/python/pyflakes/NEWS.txt mode change 100755 => 100644 ftplugin/python/pyflakes/bin/pyflakes mode change 100755 => 100644 ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/__init__.py mode change 100755 => 100644 ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/checker.py mode change 100755 => 100644 ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/messages.py mode change 100755 => 100644 ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/scripts/__init__.py mode change 100755 => 100644 ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/scripts/pyflakes.py mode change 100755 => 100644 ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/__init__.py mode change 100755 => 100644 ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/harness.py mode change 100755 => 100644 ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/test_imports.py mode change 100755 => 100644 ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/test_other.py mode change 100755 => 100644 ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/test_script.py mode change 100755 => 100644 ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/test_undefined_names.py mode change 100755 => 100644 ftplugin/python/pyflakes/build/scripts-2.7/pyflakes mode change 100755 => 100644 ftplugin/python/pyflakes/pyflakes/__init__.py mode change 100755 => 100644 ftplugin/python/pyflakes/pyflakes/__init__.pyc mode change 100755 => 100644 ftplugin/python/pyflakes/pyflakes/checker.py mode change 100755 => 100644 ftplugin/python/pyflakes/pyflakes/checker.pyc mode change 100755 => 100644 ftplugin/python/pyflakes/pyflakes/messages.py mode change 100755 => 100644 ftplugin/python/pyflakes/pyflakes/messages.pyc mode change 100755 => 100644 ftplugin/python/pyflakes/pyflakes/scripts/__init__.py mode change 100755 => 100644 ftplugin/python/pyflakes/pyflakes/scripts/pyflakes.py mode change 100755 => 100644 ftplugin/python/pyflakes/pyflakes/test/__init__.py mode change 100755 => 100644 ftplugin/python/pyflakes/pyflakes/test/harness.py mode change 100755 => 100644 ftplugin/python/pyflakes/pyflakes/test/test_imports.py mode change 100755 => 100644 ftplugin/python/pyflakes/pyflakes/test/test_other.py mode change 100755 => 100644 ftplugin/python/pyflakes/pyflakes/test/test_script.py mode change 100755 => 100644 ftplugin/python/pyflakes/pyflakes/test/test_undefined_names.py mode change 100755 => 100644 ftplugin/python/pyflakes/setup.py mode change 100755 => 100644 markdown.pl mode change 100755 => 100644 plugin/NERD_tree.vim mode change 100755 => 100644 plugin/acp.vim mode change 100755 => 100644 plugin/autoproto.vim mode change 100755 => 100644 plugin/blog.vim mode change 100755 => 100644 plugin/calendar.vim mode change 100755 => 100644 plugin/conque_term.vim mode change 100755 => 100644 plugin/cscope_maps.vim mode change 100755 => 100644 plugin/echofunc.vim mode change 100755 => 100644 plugin/fcitx.py mode change 100755 => 100644 plugin/fcitx.vim mode change 100755 => 100644 plugin/fencview.vim mode change 100755 => 100644 plugin/libvimim.dll mode change 100755 => 100644 plugin/libvimim.so create mode 100644 plugin/mark.vba create mode 100644 plugin/mark.vim create mode 100644 plugin/markdown-1.2.2.vba mode change 100755 => 100644 plugin/python.vim mode change 100755 => 100644 plugin/python_fn.vim mode change 100755 => 100644 plugin/snipMate.vim.bak mode change 100755 => 100644 plugin/supertab.vim mode change 100755 => 100644 plugin/taglist.vim mode change 100755 => 100644 plugin/tasklist.vim create mode 100644 plugin/test.vim create mode 100644 plugin/translate.vim mode change 100755 => 100644 plugin/txt.vim mode change 100755 => 100644 plugin/vimcdoc.vim mode change 100755 => 100644 plugin/vimim.cjk.txt mode change 100755 => 100644 plugin/vimim.txt mode change 100755 => 100644 plugin/vimim.vim mode change 100755 => 100644 plugin/zencoding-vim.zip mode change 100755 => 100644 plugin/zencoding.vim mode change 100755 => 100644 snippets/_.snippets mode change 100755 => 100644 snippets/autoit.snippets mode change 100755 => 100644 snippets/c.snippets mode change 100755 => 100644 snippets/cpp.snippets create mode 100644 snippets/dot.snippets mode change 100755 => 100644 snippets/java.snippets mode change 100755 => 100644 snippets/javascript.snippets mode change 100755 => 100644 snippets/mako.snippets create mode 100644 snippets/markdown.snippets mode change 100755 => 100644 snippets/objc.snippets mode change 100755 => 100644 snippets/perl.snippets mode change 100755 => 100644 snippets/php.snippets mode change 100755 => 100644 snippets/python.snippets mode change 100755 => 100644 snippets/ruby.snippets mode change 100755 => 100644 snippets/sh.snippets mode change 100755 => 100644 snippets/snippet.snippets mode change 100755 => 100644 snippets/tcl.snippets mode change 100755 => 100644 snippets/tex.snippets mode change 100755 => 100644 snippets/vim.snippets mode change 100755 => 100644 snippets/zsh.snippets mode change 100755 => 100644 syntax/blogsyntax.vim mode change 100755 => 100644 syntax/conque_term.vim mode change 100755 => 100644 syntax/help_cn.vim create mode 100644 syntax/markdown.vim create mode 100644 syntax/mkd.vim mode change 100755 => 100644 syntax/nerdtree.vim mode change 100755 => 100644 syntax/python.vim mode change 100755 => 100644 syntax/snippet.vim mode change 100755 => 100644 test/github-flavored-markdown.markdown mode change 100755 => 100644 test/gruber-markdown-syntax.markdown create mode 100644 wmgraphviz.vim.tgz diff --git a/.VimballRecord b/.VimballRecord new file mode 100644 index 00000000..cb8c2a3e --- /dev/null +++ b/.VimballRecord @@ -0,0 +1,2 @@ +markdown-1.2.2.vba: call delete('/home/ma6174/.vim/ftdetect/markdown.vim')|call delete('/home/ma6174/.vim/snippets/markdown.snippets')|call delete('/home/ma6174/.vim/syntax/markdown.vim') +mark.vba: call delete('/home/ma6174/.vim/autoload/mark.vim')|call delete('/home/ma6174/.vim/autoload/mark/palettes.vim')|call delete('/home/ma6174/.vim/plugin/mark.vim')|call delete('/home/ma6174/.vim/doc/mark.txt') diff --git a/.netrwhist b/.netrwhist old mode 100755 new mode 100644 index 682deb35..0516837d --- a/.netrwhist +++ b/.netrwhist @@ -1,4 +1,4 @@ let g:netrw_dirhistmax =10 let g:netrw_dirhist_cnt =2 -let g:netrw_dirhist_1='/home/ma6174/.vim/ftplugin/python' -let g:netrw_dirhist_2='/media/M_hM_=M_M_dM__M_6M_hM_5M__DM_fM__VM__Y/YUNIO/program/python/poj' +let g:netrw_dirhist_1='/media/M_hM_=M_M_dM__M_6M_hM_5M__DM_fM__VM__Y/YUNIO/program/python/lovesnow-deepin-music-player-a9be3e0' +let g:netrw_dirhist_2='/media/M_hM_=M_M_dM__M_6M_hM_5M__DM_fM__VM__Y/YUNIO/program/python' diff --git a/.vim b/.vim new file mode 100644 index 0000000000000000000000000000000000000000..b115457082b60609be2e96b163d9c449dc5fecb7 GIT binary patch literal 22 bcmeawE2;4D^Jdgz&}YzNC}YTE$OW +" +" Dependencies: +" - SearchSpecial.vim autoload script (optional, for improved search messages). +" +" Version: 2.7.0 +" Changes: +" 04-Jul-2012, Ingo Karkat +" - ENH: Handle on-the-fly change of mark highlighting via mark#ReInit(), which +" truncates / expands s:pattern and corrects the indices. Also, w:mwMatch List +" size mismatches must be handled in s:MarkMatch(). +" +" 23-Apr-2012, Ingo Karkat + fanhe +" - Force case via \c / \C instead of temporarily unsetting 'smartcase'. +" - Allow to override 'ignorecase' setting via g:mwIgnoreCase. Thanks to fanhe +" for the idea and sending a patch. +" +" 26-Mar-2012, Ingo Karkat +" - ENH: When a [count] exceeding the number of available mark groups is given, +" a summary of marks is given and the user is asked to select a mark group. +" This allows to interactively choose a color via 99m. +" - ENH: Include count of alternative patterns in :Marks list. +" - CHG: Use ">" for next mark and "/" for last search in :Marks. +" +" 23-Mar-2012, Ingo Karkat +" - ENH: Add :Marks command that prints all mark highlight groups and their +" search patterns, plus information about the current search mark, next mark +" group, and whether marks are disabled. +" - ENH: Show which mark group a pattern was set / added / removed / cleared. +" - Refactoring: Store index into s:pattern instead of pattern itself in +" s:lastSearch. For that, mark#CurrentMark() now additionally returns the +" index. +" - CHG: Show mark group number in same-mark search and rename search types from +" "any-mark", "same-mark", and "new-mark" to the shorter "mark-*", "mark-N", +" and "mark-N!", respectively. +" +" 22-Mar-2012, Ingo Karkat +" - ENH: Allow [count] for m and :Mark to add / subtract match to / from +" highlight group [count], and use [count]n to clear only highlight +" group [count]. This was also requested by Philipp Marek. +" - FIX: :Mark and n actually toggled marks back on when they were +" already off. Now, they stay off on multiple invocations. Use :call +" mark#Toggle() / MarkToggle if you want toggling. +" +" 09-Nov-2011, Ingo Karkat +" - BUG: With a single match and 'wrapscan' set, a search error was issued +" instead of the wrap message. Add check for l:isStuckAtCurrentMark && +" l:isWrapped in the no-match part of s:Search(). +" - FIX: In backwards search with single match, the :break short-circuits the +" l:isWrapped logic, resets l:line and therefore also confuses the logic and +" leads to wrong error message instead of wrap message. Don't reset l:line, +" set l:isWrapped instead. +" - FIX: Wrong logic for determining l:isWrapped lets wrap-around go undetected +" when v:count >= number of total matches. [l:startLine, l:startCol] must +" be updated on every iteration, and should therefore be named [l:prevLine, +" l:prevCol]. +" +" 17-May-2011, Ingo Karkat +" - Make s:GetVisualSelection() public to allow use in suggested +" MarkSpaceIndifferent vmap. +" - FIX: == comparison in s:DoMark() leads to wrong regexp (\A vs. \a) being +" cleared when 'ignorecase' is set. Use case-sensitive comparison ==# instead. +" +" 10-May-2011, Ingo Karkat +" - Refine :MarkLoad messages: Differentiate between nonexistent and empty +" g:MARK_MARKS; add note when marks are disabled. +" +" 06-May-2011, Ingo Karkat +" - Also print status message on :MarkClear to be consistent with :MarkToggle. +" +" 21-Apr-2011, Ingo Karkat +" - Implement toggling of mark display (keeping the mark patterns, unlike the +" clearing of marks), determined by s:enable. s:DoMark() now toggles on empty +" regexp, affecting the \n mapping and :Mark. Introduced +" s:EnableAndMarkScope() wrapper to correctly handle the highlighting updates +" depending on whether marks were previously disabled. +" - Implement persistence of s:enable via g:MARK_ENABLED. +" - Generalize s:Enable() and combine with intermediate s:Disable() into +" s:MarkEnable(), which also performs the persistence of s:enabled. +" - Implement lazy-loading of disabled persistent marks via g:mwDoDeferredLoad +" flag passed from plugin/mark.vim. +" +" 20-Apr-2011, Ingo Karkat +" - Extract setting of s:pattern into s:SetPattern() and implement the automatic +" persistence there. +" +" 19-Apr-2011, Ingo Karkat +" - ENH: Add enabling functions for mark persistence: mark#Load() and +" mark#ToPatternList(). +" - Implement :MarkLoad and :MarkSave commands in mark#LoadCommand() and +" mark#SaveCommand(). +" - Remove superfluous update autocmd on VimEnter: Persistent marks trigger the +" update themselves, same for :Mark commands which could potentially be issued +" e.g. in .vimrc. Otherwise, when no marks are defined after startup, the +" autosource script isn't even loaded yet, so the autocmd on the VimEnter +" event isn't yet defined. +" +" 18-Apr-2011, Ingo Karkat +" - BUG: Include trailing newline character in check for current mark, so that a +" mark that matches the entire line (e.g. created by Vm) can be +" cleared via n. Thanks to ping for reporting this. +" - Minor restructuring of mark#MarkCurrentWord(). +" - FIX: On overlapping marks, mark#CurrentMark() returned the lowest, not the +" highest visible mark. So on overlapping marks, the one that was not visible +" at the cursor position was removed; very confusing! Use reverse iteration +" order. +" - FIX: To avoid an arbitrary ordering of highlightings when the highlighting +" group names roll over, and to avoid order inconsistencies across different +" windows and tabs, we assign a different priority based on the highlighting +" group. +" - Rename s:cycleMax to s:markNum; the previous name was too +" implementation-focused and off-by-one with regards to the actual value. +" +" 16-Apr-2011, Ingo Karkat +" - Move configuration variable g:mwHistAdd to plugin/mark.vim (as is customary) +" and make the remaining g:mw... variables script-local, as these contain +" internal housekeeping information that does not need to be accessible by the +" user. +" - Add :MarkSave warning if 'viminfo' doesn't enable global variable +" persistence. +" +" 15-Apr-2011, Ingo Karkat +" - Robustness: Move initialization of w:mwMatch from mark#UpdateMark() to +" s:MarkMatch(), where the variable is actually used. I had encountered cases +" where it w:mwMatch was undefined when invoked through mark#DoMark() -> +" s:MarkScope() -> s:MarkMatch(). This can be forced by :unlet w:mwMatch +" followed by :Mark foo. +" - Robustness: Checking for s:markNum == 0 in mark#DoMark(), trying to +" re-detect the mark highlightings and finally printing an error instead of +" choking. This can happen when somehow no mark highlightings are defined. +" +" 14-Jan-2011, Ingo Karkat +" - FIX: Capturing the visual selection could still clobber the blockwise yank +" mode of the unnamed register. +" +" 13-Jan-2011, Ingo Karkat +" - FIX: Using a named register for capturing the visual selection on +" {Visual}m and {Visual}r clobbered the unnamed register. Now +" using the unnamed register. +" +" 13-Jul-2010, Ingo Karkat +" - ENH: The MarkSearch mappings ([*#/?]) add the original cursor +" position to the jump list, like the built-in [/?*#nN] commands. This allows +" to use the regular jump commands for mark matches, like with regular search +" matches. +" +" 19-Feb-2010, Andy Wokula +" - BUG: Clearing of an accidental zero-width match (e.g. via :Mark \zs) results +" in endless loop. Thanks to Andy Wokula for the patch. +" +" 17-Nov-2009, Ingo Karkat + Andy Wokula +" - BUG: Creation of literal pattern via '\V' in {Visual}m mapping +" collided with individual escaping done in m mapping so that an +" escaped '\*' would be interpreted as a multi item when both modes are used +" for marking. Replaced \V with s:EscapeText() to be consistent. Replaced the +" (overly) generic mark#GetVisualSelectionEscaped() with +" mark#GetVisualSelectionAsRegexp() and +" mark#GetVisualSelectionAsLiteralPattern(). Thanks to Andy Wokula for the +" patch. +" +" 06-Jul-2009, Ingo Karkat +" - Re-wrote s:AnyMark() in functional programming style. +" - Now resetting 'smartcase' before the search, this setting should not be +" considered for *-command-alike searches and cannot be supported because all +" mark patterns are concatenated into one large regexp, anyway. +" +" 04-Jul-2009, Ingo Karkat +" - Re-wrote s:Search() to handle v:count: +" - Obsoleted s:current_mark_position; mark#CurrentMark() now returns both the +" mark text and start position. +" - s:Search() now checks for a jump to the current mark during a backward +" search; this eliminates a lot of logic at its calling sites. +" - Reverted negative logic at calling sites; using empty() instead of != "". +" - Now passing a:isBackward instead of optional flags into s:Search() and +" around its callers. +" - ':normal! zv' moved from callers into s:Search(). +" - Removed delegation to SearchSpecial#ErrorMessage(), because the fallback +" implementation is perfectly fine and the SearchSpecial routine changed its +" output format into something unsuitable anyway. +" - Using descriptive text instead of "@" (and appropriate highlighting) when +" querying for the pattern to mark. +" +" 02-Jul-2009, Ingo Karkat +" - Split off functions into autoload script. + +"- functions ------------------------------------------------------------------ + +silent! call SearchSpecial#DoesNotExist() " Execute a function to force autoload. +if exists('*SearchSpecial#WrapMessage') + function! s:WrapMessage( searchType, searchPattern, isBackward ) + redraw + call SearchSpecial#WrapMessage(a:searchType, a:searchPattern, a:isBackward) + endfunction + function! s:EchoSearchPattern( searchType, searchPattern, isBackward ) + call SearchSpecial#EchoSearchPattern(a:searchType, a:searchPattern, a:isBackward) + endfunction +else + function! s:Trim( message ) + " Limit length to avoid "Hit ENTER" prompt. + return strpart(a:message, 0, (&columns / 2)) . (len(a:message) > (&columns / 2) ? "..." : "") + endfunction + function! s:WrapMessage( searchType, searchPattern, isBackward ) + redraw + let v:warningmsg = printf('%s search hit %s, continuing at %s', a:searchType, (a:isBackward ? 'TOP' : 'BOTTOM'), (a:isBackward ? 'BOTTOM' : 'TOP')) + echohl WarningMsg + echo s:Trim(v:warningmsg) + echohl None + endfunction + function! s:EchoSearchPattern( searchType, searchPattern, isBackward ) + let l:message = (a:isBackward ? '?' : '/') . a:searchPattern + echohl SearchSpecialSearchType + echo a:searchType + echohl None + echon s:Trim(l:message) + endfunction +endif + +function! s:EscapeText( text ) + return substitute( escape(a:text, '\' . '^$.*[~'), "\n", '\\n', 'ge' ) +endfunction +function! s:IsIgnoreCase( expr ) + return ((exists('g:mwIgnoreCase') ? g:mwIgnoreCase : &ignorecase) && a:expr !~# '\\\@') + if ! empty(l:cword) + let l:regexp = s:EscapeText(l:cword) + " The star command only creates a \ search pattern if the + " actually only consists of keyword characters. + if l:cword =~# '^\k\+$' + let l:regexp = '\<' . l:regexp . '\>' + endif + endif + endif + return (empty(l:regexp) ? 0 : mark#DoMark(a:groupNum, l:regexp)) +endfunction + +function! mark#GetVisualSelection() + let save_clipboard = &clipboard + set clipboard= " Avoid clobbering the selection and clipboard registers. + let save_reg = getreg('"') + let save_regmode = getregtype('"') + silent normal! gvy + let res = getreg('"') + call setreg('"', save_reg, save_regmode) + let &clipboard = save_clipboard + return res +endfunction +function! mark#GetVisualSelectionAsLiteralPattern() + return s:EscapeText(mark#GetVisualSelection()) +endfunction +function! mark#GetVisualSelectionAsRegexp() + return substitute(mark#GetVisualSelection(), '\n', '', 'g') +endfunction + +" Manually input a regular expression. +function! mark#MarkRegex( regexpPreset ) + call inputsave() + echohl Question + let l:regexp = input('Input pattern to mark: ', a:regexpPreset) + echohl None + call inputrestore() + if ! empty(l:regexp) + call mark#DoMark(0, l:regexp) + endif +endfunction + +function! s:Cycle( ... ) + let l:currentCycle = s:cycle + let l:newCycle = (a:0 ? a:1 : s:cycle) + 1 + let s:cycle = (l:newCycle < s:markNum ? l:newCycle : 0) + return l:currentCycle +endfunction +function! s:FreeGroupIndex() + let i = 0 + while i < s:markNum + if empty(s:pattern[i]) + return i + endif + let i += 1 + endwhile + return -1 +endfunction + +" Set match / clear matches in the current window. +function! s:MarkMatch( indices, expr ) + if ! exists('w:mwMatch') + let w:mwMatch = repeat([0], s:markNum) + elseif len(w:mwMatch) != s:markNum + " The number of marks has changed. + if len(w:mwMatch) > s:markNum + " Truncate the matches. + for l:match in filter(w:mwMatch[s:markNum : ], 'v:val > 0') + silent! call matchdelete(l:match) + endfor + let w:mwMatch = w:mwMatch[0 : (s:markNum - 1)] + else + " Expand the matches. + let w:mwMatch += repeat([0], (s:markNum - len(w:mwMatch))) + endif + endif + + for l:index in a:indices + if w:mwMatch[l:index] > 0 + silent! call matchdelete(w:mwMatch[l:index]) + let w:mwMatch[l:index] = 0 + endif + endfor + + if ! empty(a:expr) + let l:index = a:indices[0] " Can only set one index for now. + + " Info: matchadd() does not consider the 'magic' (it's always on), + " 'ignorecase' and 'smartcase' settings. + " Make the match according to the 'ignorecase' setting, like the star command. + " (But honor an explicit case-sensitive regexp via the /\C/ atom.) + let l:expr = (s:IsIgnoreCase(a:expr) ? '\c' : '') . a:expr + + " To avoid an arbitrary ordering of highlightings, we assign a different + " priority based on the highlight group, and ensure that the highest + " priority is -10, so that we do not override the 'hlsearch' of 0, and still + " allow other custom highlightings to sneak in between. + let l:priority = -10 - s:markNum + 1 + l:index + + let w:mwMatch[l:index] = matchadd('MarkWord' . (l:index + 1), l:expr, l:priority) + endif +endfunction +" Initialize mark colors in a (new) window. +function! mark#UpdateMark() + let i = 0 + while i < s:markNum + if ! s:enabled || empty(s:pattern[i]) + call s:MarkMatch([i], '') + else + call s:MarkMatch([i], s:pattern[i]) + endif + let i += 1 + endwhile +endfunction +" Set / clear matches in all windows. +function! s:MarkScope( indices, expr ) + let l:currentWinNr = winnr() + + " By entering a window, its height is potentially increased from 0 to 1 (the + " minimum for the current window). To avoid any modification, save the window + " sizes and restore them after visiting all windows. + let l:originalWindowLayout = winrestcmd() + + noautocmd windo call s:MarkMatch(a:indices, a:expr) + execute l:currentWinNr . 'wincmd w' + silent! execute l:originalWindowLayout +endfunction +" Update matches in all windows. +function! mark#UpdateScope() + let l:currentWinNr = winnr() + + " By entering a window, its height is potentially increased from 0 to 1 (the + " minimum for the current window). To avoid any modification, save the window + " sizes and restore them after visiting all windows. + let l:originalWindowLayout = winrestcmd() + + noautocmd windo call mark#UpdateMark() + execute l:currentWinNr . 'wincmd w' + silent! execute l:originalWindowLayout +endfunction + +function! s:MarkEnable( enable, ...) + if s:enabled != a:enable + " En-/disable marks and perform a full refresh in all windows, unless + " explicitly suppressed by passing in 0. + let s:enabled = a:enable + if g:mwAutoSaveMarks + let g:MARK_ENABLED = s:enabled + endif + + if ! a:0 || ! a:1 + call mark#UpdateScope() + endif + endif +endfunction +function! s:EnableAndMarkScope( indices, expr ) + if s:enabled + " Marks are already enabled, we just need to push the changes to all + " windows. + call s:MarkScope(a:indices, a:expr) + else + call s:MarkEnable(1) + endif +endfunction + +" Toggle visibility of marks, like :nohlsearch does for the regular search +" highlighting. +function! mark#Toggle() + if s:enabled + call s:MarkEnable(0) + echo 'Disabled marks' + else + call s:MarkEnable(1) + + let l:markCnt = len(filter(copy(s:pattern), '! empty(v:val)')) + echo 'Enabled' (l:markCnt > 0 ? l:markCnt . ' ' : '') . 'marks' + endif +endfunction + + +" Mark or unmark a regular expression. +function! s:SetPattern( index, pattern ) + let s:pattern[a:index] = a:pattern + + if g:mwAutoSaveMarks + call s:SavePattern() + endif +endfunction +function! mark#ClearAll() + let i = 0 + let indices = [] + while i < s:markNum + if ! empty(s:pattern[i]) + call s:SetPattern(i, '') + call add(indices, i) + endif + let i += 1 + endwhile + let s:lastSearch = -1 + +" Re-enable marks; not strictly necessary, since all marks have just been +" cleared, and marks will be re-enabled, anyway, when the first mark is added. +" It's just more consistent for mark persistence. But save the full refresh, as +" we do the update ourselves. + call s:MarkEnable(0, 0) + + call s:MarkScope(l:indices, '') + + if len(indices) > 0 + echo 'Cleared all' len(indices) 'marks' + else + echo 'All marks cleared' + endif +endfunction +function! s:SetMark( index, regexp, ... ) + if a:0 + if s:lastSearch == a:index + let s:lastSearch = a:1 + endif + endif + call s:SetPattern(a:index, a:regexp) + call s:EnableAndMarkScope([a:index], a:regexp) +endfunction +function! s:ClearMark( index ) + " A last search there is reset. + call s:SetMark(a:index, '', -1) +endfunction +function! s:EchoMark( groupNum, regexp ) + call s:EchoSearchPattern('mark-' . a:groupNum, a:regexp, 0) +endfunction +function! s:EchoMarkCleared( groupNum ) + echohl SearchSpecialSearchType + echo 'mark-' . a:groupNum + echohl None + echon ' cleared' +endfunction +function! s:EchoMarksDisabled() + echo 'All marks disabled' +endfunction +function! mark#DoMark( groupNum, ...) + if s:markNum <= 0 + " Uh, somehow no mark highlightings were defined. Try to detect them again. + call mark#Init() + if s:markNum <= 0 + " Still no mark highlightings; complain. + let v:errmsg = 'No mark highlightings defined' + echohl ErrorMsg + echomsg v:errmsg + echohl None + return 0 + endif + endif + + let l:groupNum = a:groupNum + if l:groupNum > s:markNum + " This highlight group does not exist. + let l:groupNum = mark#QueryMarkGroupNum() + if l:groupNum < 1 || l:groupNum > s:markNum + return 0 + endif + endif + + let regexp = (a:0 ? a:1 : '') + if empty(regexp) + if l:groupNum == 0 + " Disable all marks. + call s:MarkEnable(0) + call s:EchoMarksDisabled() + else + " Clear the mark represented by the passed highlight group number. + call s:ClearMark(l:groupNum - 1) + call s:EchoMarkCleared(l:groupNum) + endif + + return 1 + endif + + if l:groupNum == 0 + " Clear the mark if it has been marked. + let i = 0 + while i < s:markNum + if regexp ==# s:pattern[i] + call s:ClearMark(i) + call s:EchoMarkCleared(i + 1) + return 1 + endif + let i += 1 + endwhile + else + " Add / subtract the pattern as an alternative to the mark represented + " by the passed highlight group number. + let existingPattern = s:pattern[l:groupNum - 1] + if ! empty(existingPattern) + " Split only on \|, but not on \\|. + let alternatives = split(existingPattern, '\%(\%(^\|[^\\]\)\%(\\\\\)*\\\)\@= 0 + call histadd('/', regexp) + endif + if stridx(g:mwHistAdd, '@') >= 0 + call histadd('@', regexp) + endif + + if l:groupNum == 0 + let i = s:FreeGroupIndex() + if i != -1 + " Choose an unused highlight group. The last search is kept untouched. + call s:Cycle(i) + call s:SetMark(i, regexp) + else + " Choose a highlight group by cycle. A last search there is reset. + let i = s:Cycle() + call s:SetMark(i, regexp, -1) + endif + else + let i = l:groupNum - 1 + " Use and extend the passed highlight group. A last search is updated + " and thereby kept active. + call s:SetMark(i, regexp, i) + endif + + call s:EchoMark(i + 1, regexp) + return 1 +endfunction + +" Return [mark text, mark start position, mark index] of the mark under the +" cursor (or ['', [], -1] if there is no mark). +" The mark can include the trailing newline character that concludes the line, +" but marks that span multiple lines are not supported. +function! mark#CurrentMark() + let line = getline('.') . "\n" + + " Highlighting groups with higher numbers take precedence over lower numbers, + " and therefore its marks appear "above" other marks. To retrieve the visible + " mark in case of overlapping marks, we need to check from highest to lowest + " highlight group. + let i = s:markNum - 1 + while i >= 0 + if ! empty(s:pattern[i]) + let matchPattern = (s:IsIgnoreCase(s:pattern[i]) ? '\c' : '\C') . s:pattern[i] + " Note: col() is 1-based, all other indexes zero-based! + let start = 0 + while start >= 0 && start < strlen(line) && start < col('.') + let b = match(line, matchPattern, start) + let e = matchend(line, matchPattern, start) + if b < col('.') && col('.') <= e + return [s:pattern[i], [line('.'), (b + 1)], i] + endif + if b == e + break + endif + let start = e + endwhile + endif + let i -= 1 + endwhile + return ['', [], -1] +endfunction + +" Search current mark. +function! mark#SearchCurrentMark( isBackward ) + let [l:markText, l:markPosition, l:markIndex] = mark#CurrentMark() + if empty(l:markText) + if s:lastSearch == -1 + call mark#SearchAnyMark(a:isBackward) + let s:lastSearch = mark#CurrentMark()[2] + else + call s:Search(s:pattern[s:lastSearch], a:isBackward, [], 'mark-' . (s:lastSearch + 1)) + endif + else + call s:Search(l:markText, a:isBackward, l:markPosition, 'mark-' . (l:markIndex + 1) . (l:markIndex ==# s:lastSearch ? '' : '!')) + let s:lastSearch = l:markIndex + endif +endfunction + +function! s:ErrorMessage( searchType, searchPattern, isBackward ) + if &wrapscan + let v:errmsg = a:searchType . ' not found: ' . a:searchPattern + else + let v:errmsg = printf('%s search hit %s without match for: %s', a:searchType, (a:isBackward ? 'TOP' : 'BOTTOM'), a:searchPattern) + endif + echohl ErrorMsg + echomsg v:errmsg + echohl None +endfunction + +" Wrapper around search() with additonal search and error messages and "wrapscan" warning. +function! s:Search( pattern, isBackward, currentMarkPosition, searchType ) + let l:save_view = winsaveview() + + " searchpos() obeys the 'smartcase' setting; however, this setting doesn't + " make sense for the mark search, because all patterns for the marks are + " concatenated as branches in one large regexp, and because patterns that + " result from the *-command-alike mappings should not obey 'smartcase' (like + " the * command itself), anyway. If the :Mark command wants to support + " 'smartcase', it'd have to emulate that into the regular expression. + " Instead of temporarily unsetting 'smartcase', we force the correct + " case-matching behavior through \c / \C. + let l:searchPattern = (s:IsIgnoreCase(a:pattern) ? '\c' : '\C') . a:pattern + + let l:count = v:count1 + let l:isWrapped = 0 + let l:isMatch = 0 + let l:line = 0 + while l:count > 0 + let [l:prevLine, l:prevCol] = [line('.'), col('.')] + + " Search for next match, 'wrapscan' applies. + let [l:line, l:col] = searchpos( l:searchPattern, (a:isBackward ? 'b' : '') ) + +"****D echomsg '****' a:isBackward string([l:line, l:col]) string(a:currentMarkPosition) l:count + if a:isBackward && l:line > 0 && [l:line, l:col] == a:currentMarkPosition && l:count == v:count1 + " On a search in backward direction, the first match is the start of the + " current mark (if the cursor was positioned on the current mark text, and + " not at the start of the mark text). + " In contrast to the normal search, this is not considered the first + " match. The mark text is one entity; if the cursor is positioned anywhere + " inside the mark text, the mark text is considered the current mark. The + " built-in '*' and '#' commands behave in the same way; the entire + " text is considered the current match, and jumps move outside that text. + " In normal search, the cursor can be positioned anywhere (via offsets) + " around the search, and only that single cursor position is considered + " the current match. + " Thus, the search is retried without a decrease of l:count, but only if + " this was the first match; repeat visits during wrapping around count as + " a regular match. The search also must not be retried when this is the + " first match, but we've been here before (i.e. l:isMatch is set): This + " means that there is only the current mark in the buffer, and we must + " break out of the loop and indicate that search wrapped around and no + " other mark was found. + if l:isMatch + let l:isWrapped = 1 + break + endif + + " The l:isMatch flag is set so if the final mark cannot be reached, the + " original cursor position is restored. This flag also allows us to detect + " whether we've been here before, which is checked above. + let l:isMatch = 1 + elseif l:line > 0 + let l:isMatch = 1 + let l:count -= 1 + + " Note: No need to check 'wrapscan'; the wrapping can only occur if + " 'wrapscan' is actually on. + if ! a:isBackward && (l:prevLine > l:line || l:prevLine == l:line && l:prevCol >= l:col) + let l:isWrapped = 1 + elseif a:isBackward && (l:prevLine < l:line || l:prevLine == l:line && l:prevCol <= l:col) + let l:isWrapped = 1 + endif + else + break + endif + endwhile + + " We're not stuck when the search wrapped around and landed on the current + " mark; that's why we exclude a possible wrap-around via v:count1 == 1. + let l:isStuckAtCurrentMark = ([l:line, l:col] == a:currentMarkPosition && v:count1 == 1) +"****D echomsg '****' l:line l:isStuckAtCurrentMark l:isWrapped l:isMatch string([l:line, l:col]) string(a:currentMarkPosition) + if l:line > 0 && ! l:isStuckAtCurrentMark + let l:matchPosition = getpos('.') + + " Open fold at the search result, like the built-in commands. + normal! zv + + " Add the original cursor position to the jump list, like the + " [/?*#nN] commands. + " Implementation: Memorize the match position, restore the view to the state + " before the search, then jump straight back to the match position. This + " also allows us to set a jump only if a match was found. (:call + " setpos("''", ...) doesn't work in Vim 7.2) + call winrestview(l:save_view) + normal! m' + call setpos('.', l:matchPosition) + + " Enable marks (in case they were disabled) after arriving at the mark (to + " avoid unnecessary screen updates) but before the error message (to avoid + " it getting lost due to the screen updates). + call s:MarkEnable(1) + + if l:isWrapped + call s:WrapMessage(a:searchType, a:pattern, a:isBackward) + else + call s:EchoSearchPattern(a:searchType, a:pattern, a:isBackward) + endif + return 1 + else + if l:isMatch + " The view has been changed by moving through matches until the end / + " start of file, when 'nowrapscan' forced a stop of searching before the + " l:count'th match was found. + " Restore the view to the state before the search. + call winrestview(l:save_view) + endif + + " Enable marks (in case they were disabled) after arriving at the mark (to + " avoid unnecessary screen updates) but before the error message (to avoid + " it getting lost due to the screen updates). + call s:MarkEnable(1) + + if l:line > 0 && l:isStuckAtCurrentMark && l:isWrapped + call s:WrapMessage(a:searchType, a:pattern, a:isBackward) + return 1 + else + call s:ErrorMessage(a:searchType, a:pattern, a:isBackward) + return 0 + endif + endif +endfunction + +" Combine all marks into one regexp. +function! s:AnyMark() + return join(filter(copy(s:pattern), '! empty(v:val)'), '\|') +endfunction + +" Search any mark. +function! mark#SearchAnyMark( isBackward ) + let l:markPosition = mark#CurrentMark()[1] + let l:markText = s:AnyMark() + call s:Search(l:markText, a:isBackward, l:markPosition, 'mark-*') + let s:lastSearch = -1 +endfunction + +" Search last searched mark. +function! mark#SearchNext( isBackward ) + let l:markText = mark#CurrentMark()[0] + if empty(l:markText) + return 0 + else + if s:lastSearch == -1 + call mark#SearchAnyMark(a:isBackward) + else + call mark#SearchCurrentMark(a:isBackward) + endif + return 1 + endif +endfunction + +" Load mark patterns from list. +function! mark#Load( pattern, enabled ) + if s:markNum > 0 && len(a:pattern) > 0 + " Initialize mark patterns with the passed list. Ensure that, regardless of + " the list length, s:pattern contains exactly s:markNum elements. + let s:pattern = a:pattern[0:(s:markNum - 1)] + let s:pattern += repeat([''], (s:markNum - len(s:pattern))) + + let s:enabled = a:enabled + + call mark#UpdateScope() + + " The list of patterns may be sparse, return only the actual patterns. + return len(filter(copy(a:pattern), '! empty(v:val)')) + endif + return 0 +endfunction + +" Access the list of mark patterns. +function! mark#ToPatternList() + " Trim unused patterns from the end of the list, the amount of available marks + " may differ on the next invocation (e.g. due to a different number of + " highlight groups in Vim and GVIM). We want to keep empty patterns in the + " front and middle to maintain the mapping to highlight groups, though. + let l:highestNonEmptyIndex = s:markNum -1 + while l:highestNonEmptyIndex >= 0 && empty(s:pattern[l:highestNonEmptyIndex]) + let l:highestNonEmptyIndex -= 1 + endwhile + + return (l:highestNonEmptyIndex < 0 ? [] : s:pattern[0:l:highestNonEmptyIndex]) +endfunction + +" :MarkLoad command. +function! mark#LoadCommand( isShowMessages ) + if exists('g:MARK_MARKS') + try + " Persistent global variables cannot be of type List, so we actually store + " the string representation, and eval() it back to a List. + execute 'let l:loadedMarkNum = mark#Load(' . g:MARK_MARKS . ', ' . (exists('g:MARK_ENABLED') ? g:MARK_ENABLED : 1) . ')' + if a:isShowMessages + if l:loadedMarkNum == 0 + echomsg 'No persistent marks defined' + else + echomsg printf('Loaded %d mark%s', l:loadedMarkNum, (l:loadedMarkNum == 1 ? '' : 's')) . (s:enabled ? '' : '; marks currently disabled') + endif + endif + catch /^Vim\%((\a\+)\)\=:E/ + let v:errmsg = 'Corrupted persistent mark info in g:MARK_MARKS and g:MARK_ENABLED' + echohl ErrorMsg + echomsg v:errmsg + echohl None + + unlet! g:MARK_MARKS + unlet! g:MARK_ENABLED + endtry + elseif a:isShowMessages + let v:errmsg = 'No persistent marks found' + echohl ErrorMsg + echomsg v:errmsg + echohl None + endif +endfunction + +" :MarkSave command. +function! s:SavePattern() + let l:savedMarks = mark#ToPatternList() + let g:MARK_MARKS = string(l:savedMarks) + let g:MARK_ENABLED = s:enabled + return ! empty(l:savedMarks) +endfunction +function! mark#SaveCommand() + if index(split(&viminfo, ','), '!') == -1 + let v:errmsg = "Cannot persist marks, need ! flag in 'viminfo': :set viminfo+=!" + echohl ErrorMsg + echomsg v:errmsg + echohl None + return + endif + + if ! s:SavePattern() + let v:warningmsg = 'No marks defined' + echohl WarningMsg + echomsg v:warningmsg + echohl None + endif +endfunction + + +" Query mark group number. +function! s:GetNextGroupIndex() + let l:nextGroupIndex = s:FreeGroupIndex() + if l:nextGroupIndex == -1 + let l:nextGroupIndex = s:cycle + endif + return l:nextGroupIndex +endfunction +function! s:GetMarker( index, nextGroupIndex ) + let l:marker = '' + if s:lastSearch == a:index + let l:marker .= '/' + endif + if a:index == a:nextGroupIndex + let l:marker .= '>' + endif + return l:marker +endfunction +function! s:GetAlternativeCount( pattern ) + return len(split(a:pattern, '\%(\%(^\|[^\\]\)\%(\\\\\)*\\\)\@ 1 ? c : '') . '*' : ''), (i + 1)) + echohl None + endfor +endfunction +function! mark#QueryMarkGroupNum() + echohl Question + echo 'Mark?' + echohl None + let l:nextGroupIndex = s:GetNextGroupIndex() + call s:PrintMarkGroup(l:nextGroupIndex) + + let l:nr = 0 + while 1 + let l:char = nr2char(getchar()) + + if l:char ==# "\" + return (l:nr == 0 ? l:nextGroupIndex + 1 : l:nr) + elseif l:char !~# '\d' + return -1 + endif + echon l:char + + let l:nr = 10 * l:nr + l:char + if s:markNum < 10 * l:nr + return l:nr + endif + endwhile +endfunction + +" :Marks command. +function! mark#List() + echohl Title + echo 'mark cnt Pattern' + echohl None + echon ' (> next mark group / current search mark)' + let l:nextGroupIndex = s:GetNextGroupIndex() + for i in range(s:markNum) + execute 'echohl MarkWord' . (i + 1) + let c = s:GetAlternativeCount(s:pattern[i]) + echo printf('%1s%3d%4s %s', s:GetMarker(i, l:nextGroupIndex), (i + 1), (c > 1 ? '('.c.')' : ''), s:pattern[i]) + echohl None + endfor + + if ! s:enabled + echo 'Marks are currently disabled.' + endif +endfunction + +function! mark#GetGroupNum() + return s:markNum +endfunction + + +"- initializations ------------------------------------------------------------ +augroup Mark + autocmd! + autocmd WinEnter * if ! exists('w:mwMatch') | call mark#UpdateMark() | endif + autocmd TabEnter * call mark#UpdateScope() +augroup END + +" Define global variables and initialize current scope. +function! mark#Init() + let s:markNum = 0 + while hlexists('MarkWord' . (s:markNum + 1)) + let s:markNum += 1 + endwhile + let s:pattern = repeat([''], s:markNum) + let s:cycle = 0 + let s:lastSearch = -1 + let s:enabled = 1 +endfunction +function! mark#ReInit( newMarkNum ) + if a:newMarkNum < s:markNum " There are less marks than before. + " Clear the additional highlight groups. + for i in range(a:newMarkNum + 1, s:markNum) + execute 'highlight clear MarkWord' . (i + 1) + endfor + + " Truncate the mark patterns. + let s:pattern = s:pattern[0 : (a:newMarkNum - 1)] + + " Correct any indices. + let s:cycle = min([s:cycle, (a:newMarkNum - 1)]) + let s:lastSearch = (s:lastSearch < a:newMarkNum ? s:lastSearch : -1) + elseif a:newMarkNum > s:markNum " There are more marks than before. + " Expand the mark patterns. + let s:pattern += repeat([''], (a:newMarkNum - s:markNum)) + endif + + let s:markNum = a:newMarkNum +endfunction + +call mark#Init() +if exists('g:mwDoDeferredLoad') && g:mwDoDeferredLoad + unlet g:mwDoDeferredLoad + call mark#LoadCommand(0) +else + call mark#UpdateScope() +endif + +" vim: ts=4 sts=0 sw=4 noet diff --git a/autoload/mark/palettes.vim b/autoload/mark/palettes.vim new file mode 100644 index 00000000..98f83bba --- /dev/null +++ b/autoload/mark/palettes.vim @@ -0,0 +1,136 @@ +" mark/palettes.vim: Additional palettes for mark highlighting. +" +" DEPENDENCIES: +" +" Copyright: (C) 2012 Ingo Karkat +" The VIM LICENSE applies to this script; see ':help copyright'. +" +" Maintainer: Ingo Karkat +" Contributors: rockybalboa4 +" +" Version: 2.7.0 +" Changes: +" 04-Jul-2012, Ingo Karkat +" - Add "maximum" palette contributed by rockybalboa4 and move it and the +" "extended" palette to a separate mark/palettes.vim autoload script. + +function! mark#palettes#Extended() + return [ + \ { 'ctermbg':'Blue', 'ctermfg':'Black', 'guibg':'#A1B7FF', 'guifg':'#001E80' }, + \ { 'ctermbg':'Magenta', 'ctermfg':'Black', 'guibg':'#FFA1C6', 'guifg':'#80005D' }, + \ { 'ctermbg':'Green', 'ctermfg':'Black', 'guibg':'#ACFFA1', 'guifg':'#0F8000' }, + \ { 'ctermbg':'Yellow', 'ctermfg':'Black', 'guibg':'#FFE8A1', 'guifg':'#806000' }, + \ { 'ctermbg':'DarkCyan', 'ctermfg':'Black', 'guibg':'#D2A1FF', 'guifg':'#420080' }, + \ { 'ctermbg':'Cyan', 'ctermfg':'Black', 'guibg':'#A1FEFF', 'guifg':'#007F80' }, + \ { 'ctermbg':'DarkBlue', 'ctermfg':'Black', 'guibg':'#A1DBFF', 'guifg':'#004E80' }, + \ { 'ctermbg':'DarkMagenta','ctermfg':'Black', 'guibg':'#A29CCF', 'guifg':'#120080' }, + \ { 'ctermbg':'DarkRed', 'ctermfg':'Black', 'guibg':'#F5A1FF', 'guifg':'#720080' }, + \ { 'ctermbg':'Brown', 'ctermfg':'Black', 'guibg':'#FFC4A1', 'guifg':'#803000' }, + \ { 'ctermbg':'DarkGreen', 'ctermfg':'Black', 'guibg':'#D0FFA1', 'guifg':'#3F8000' }, + \ { 'ctermbg':'Red', 'ctermfg':'Black', 'guibg':'#F3FFA1', 'guifg':'#6F8000' }, + \ { 'ctermbg':'White', 'ctermfg':'Gray', 'guibg':'#E3E3D2', 'guifg':'#999999' }, + \ { 'ctermbg':'LightGray', 'ctermfg':'White', 'guibg':'#D3D3C3', 'guifg':'#666666' }, + \ { 'ctermbg':'Gray', 'ctermfg':'Black', 'guibg':'#A3A396', 'guifg':'#222222' }, + \ { 'ctermbg':'Black', 'ctermfg':'White', 'guibg':'#53534C', 'guifg':'#DDDDDD' }, + \ { 'ctermbg':'Black', 'ctermfg':'Gray', 'guibg':'#131311', 'guifg':'#AAAAAA' }, + \ { 'ctermbg':'Blue', 'ctermfg':'White', 'guibg':'#0000FF', 'guifg':'#F0F0FF' }, + \ { 'ctermbg':'DarkRed', 'ctermfg':'White', 'guibg':'#FF0000', 'guifg':'#FFFFFF' }, + \] +endfunction + +function! mark#palettes#Maximum() + let l:palette = [ + \ { 'ctermbg':'Cyan', 'ctermfg':'Black', 'guibg':'#8CCBEA', 'guifg':'Black' }, + \ { 'ctermbg':'Green', 'ctermfg':'Black', 'guibg':'#A4E57E', 'guifg':'Black' }, + \ { 'ctermbg':'Yellow', 'ctermfg':'Black', 'guibg':'#FFDB72', 'guifg':'Black' }, + \ { 'ctermbg':'Red', 'ctermfg':'Black', 'guibg':'#FF7272', 'guifg':'Black' }, + \ { 'ctermbg':'Magenta', 'ctermfg':'Black', 'guibg':'#FFB3FF', 'guifg':'Black' }, + \ { 'ctermbg':'Blue', 'ctermfg':'Black', 'guibg':'#9999FF', 'guifg':'Black' }, + \] + if has('gui_running') || &t_Co >= 88 + let l:palette += [ + \ { 'ctermfg':'White', 'ctermbg':'17', 'guifg':'White', 'guibg':'#00005f' }, + \ { 'ctermfg':'White', 'ctermbg':'22', 'guifg':'White', 'guibg':'#005f00' }, + \ { 'ctermfg':'White', 'ctermbg':'23', 'guifg':'White', 'guibg':'#005f5f' }, + \ { 'ctermfg':'White', 'ctermbg':'27', 'guifg':'White', 'guibg':'#005fff' }, + \ { 'ctermfg':'White', 'ctermbg':'29', 'guifg':'White', 'guibg':'#00875f' }, + \ { 'ctermfg':'White', 'ctermbg':'34', 'guifg':'White', 'guibg':'#00af00' }, + \ { 'ctermfg':'Black', 'ctermbg':'37', 'guifg':'Black', 'guibg':'#00afaf' }, + \ { 'ctermfg':'Black', 'ctermbg':'43', 'guifg':'Black', 'guibg':'#00d7af' }, + \ { 'ctermfg':'Black', 'ctermbg':'47', 'guifg':'Black', 'guibg':'#00ff5f' }, + \ { 'ctermfg':'White', 'ctermbg':'52', 'guifg':'White', 'guibg':'#5f0000' }, + \ { 'ctermfg':'White', 'ctermbg':'53', 'guifg':'White', 'guibg':'#5f005f' }, + \ { 'ctermfg':'White', 'ctermbg':'58', 'guifg':'White', 'guibg':'#5f5f00' }, + \ { 'ctermfg':'White', 'ctermbg':'60', 'guifg':'White', 'guibg':'#5f5f87' }, + \ { 'ctermfg':'White', 'ctermbg':'64', 'guifg':'White', 'guibg':'#5f8700' }, + \ { 'ctermfg':'White', 'ctermbg':'65', 'guifg':'White', 'guibg':'#5f875f' }, + \ { 'ctermfg':'Black', 'ctermbg':'66', 'guifg':'Black', 'guibg':'#5f8787' }, + \ { 'ctermfg':'Black', 'ctermbg':'72', 'guifg':'Black', 'guibg':'#5faf87' }, + \ { 'ctermfg':'Black', 'ctermbg':'74', 'guifg':'Black', 'guibg':'#5fafd7' }, + \ { 'ctermfg':'Black', 'ctermbg':'78', 'guifg':'Black', 'guibg':'#5fd787' }, + \ { 'ctermfg':'Black', 'ctermbg':'79', 'guifg':'Black', 'guibg':'#5fd7af' }, + \ { 'ctermfg':'Black', 'ctermbg':'85', 'guifg':'Black', 'guibg':'#5fffaf' }, + \] + endif + if has('gui_running') || &t_Co >= 256 + let l:palette += [ + \ { 'ctermfg':'White', 'ctermbg':'90', 'guifg':'White', 'guibg':'#870087' }, + \ { 'ctermfg':'White', 'ctermbg':'95', 'guifg':'White', 'guibg':'#875f5f' }, + \ { 'ctermfg':'White', 'ctermbg':'96', 'guifg':'White', 'guibg':'#875f87' }, + \ { 'ctermfg':'Black', 'ctermbg':'101', 'guifg':'Black', 'guibg':'#87875f' }, + \ { 'ctermfg':'Black', 'ctermbg':'107', 'guifg':'Black', 'guibg':'#87af5f' }, + \ { 'ctermfg':'Black', 'ctermbg':'114', 'guifg':'Black', 'guibg':'#87d787' }, + \ { 'ctermfg':'Black', 'ctermbg':'117', 'guifg':'Black', 'guibg':'#87d7ff' }, + \ { 'ctermfg':'Black', 'ctermbg':'118', 'guifg':'Black', 'guibg':'#87ff00' }, + \ { 'ctermfg':'Black', 'ctermbg':'122', 'guifg':'Black', 'guibg':'#87ffd7' }, + \ { 'ctermfg':'White', 'ctermbg':'130', 'guifg':'White', 'guibg':'#af5f00' }, + \ { 'ctermfg':'White', 'ctermbg':'131', 'guifg':'White', 'guibg':'#af5f5f' }, + \ { 'ctermfg':'Black', 'ctermbg':'133', 'guifg':'Black', 'guibg':'#af5faf' }, + \ { 'ctermfg':'Black', 'ctermbg':'138', 'guifg':'Black', 'guibg':'#af8787' }, + \ { 'ctermfg':'Black', 'ctermbg':'142', 'guifg':'Black', 'guibg':'#afaf00' }, + \ { 'ctermfg':'Black', 'ctermbg':'152', 'guifg':'Black', 'guibg':'#afd7d7' }, + \ { 'ctermfg':'White', 'ctermbg':'160', 'guifg':'White', 'guibg':'#d70000' }, + \ { 'ctermfg':'Black', 'ctermbg':'166', 'guifg':'Black', 'guibg':'#d75f00' }, + \ { 'ctermfg':'Black', 'ctermbg':'169', 'guifg':'Black', 'guibg':'#d75faf' }, + \ { 'ctermfg':'Black', 'ctermbg':'174', 'guifg':'Black', 'guibg':'#d78787' }, + \ { 'ctermfg':'Black', 'ctermbg':'175', 'guifg':'Black', 'guibg':'#d787af' }, + \ { 'ctermfg':'Black', 'ctermbg':'186', 'guifg':'Black', 'guibg':'#d7d787' }, + \ { 'ctermfg':'Black', 'ctermbg':'190', 'guifg':'Black', 'guibg':'#d7ff00' }, + \ { 'ctermfg':'White', 'ctermbg':'198', 'guifg':'White', 'guibg':'#ff0087' }, + \ { 'ctermfg':'Black', 'ctermbg':'202', 'guifg':'Black', 'guibg':'#ff5f00' }, + \ { 'ctermfg':'Black', 'ctermbg':'204', 'guifg':'Black', 'guibg':'#ff5f87' }, + \ { 'ctermfg':'Black', 'ctermbg':'209', 'guifg':'Black', 'guibg':'#ff875f' }, + \ { 'ctermfg':'Black', 'ctermbg':'212', 'guifg':'Black', 'guibg':'#ff87d7' }, + \ { 'ctermfg':'Black', 'ctermbg':'215', 'guifg':'Black', 'guibg':'#ffaf5f' }, + \ { 'ctermfg':'Black', 'ctermbg':'220', 'guifg':'Black', 'guibg':'#ffd700' }, + \ { 'ctermfg':'Black', 'ctermbg':'224', 'guifg':'Black', 'guibg':'#ffd7d7' }, + \ { 'ctermfg':'Black', 'ctermbg':'228', 'guifg':'Black', 'guibg':'#ffff87' }, + \] + endif + if has('gui_running') + let l:palette += [ + \ { 'guifg':'Black', 'guibg':'#b3dcff' }, + \ { 'guifg':'Black', 'guibg':'#99cbd6' }, + \ { 'guifg':'Black', 'guibg':'#7afff0' }, + \ { 'guifg':'Black', 'guibg':'#a6ffd2' }, + \ { 'guifg':'Black', 'guibg':'#a2de9e' }, + \ { 'guifg':'Black', 'guibg':'#bcff80' }, + \ { 'guifg':'Black', 'guibg':'#e7ff8c' }, + \ { 'guifg':'Black', 'guibg':'#f2e19d' }, + \ { 'guifg':'Black', 'guibg':'#ffcc73' }, + \ { 'guifg':'Black', 'guibg':'#f7af83' }, + \ { 'guifg':'Black', 'guibg':'#fcb9b1' }, + \ { 'guifg':'Black', 'guibg':'#ff8092' }, + \ { 'guifg':'Black', 'guibg':'#ff73bb' }, + \ { 'guifg':'Black', 'guibg':'#fc97ef' }, + \ { 'guifg':'Black', 'guibg':'#c8a3d9' }, + \ { 'guifg':'Black', 'guibg':'#ac98eb' }, + \ { 'guifg':'Black', 'guibg':'#6a6feb' }, + \ { 'guifg':'Black', 'guibg':'#8caeff' }, + \ { 'guifg':'Black', 'guibg':'#70b9fa' }, + \] + endif + return l:palette +endfunction + +" vim: ts=4 sts=0 sw=4 noet diff --git a/autoload/pythoncomplete.vim b/autoload/pythoncomplete.vim old mode 100755 new mode 100644 diff --git a/autoload/snipMate.vim b/autoload/snipMate.vim old mode 100755 new mode 100644 diff --git a/autoload/zencoding.vim b/autoload/zencoding.vim old mode 100755 new mode 100644 diff --git a/autoload/zencoding/lang.vim b/autoload/zencoding/lang.vim old mode 100755 new mode 100644 diff --git a/autoload/zencoding/lang/css.vim b/autoload/zencoding/lang/css.vim old mode 100755 new mode 100644 diff --git a/autoload/zencoding/lang/haml.vim b/autoload/zencoding/lang/haml.vim old mode 100755 new mode 100644 diff --git a/autoload/zencoding/lang/html.vim b/autoload/zencoding/lang/html.vim old mode 100755 new mode 100644 diff --git a/autoload/zencoding/lang/sass.vim b/autoload/zencoding/lang/sass.vim old mode 100755 new mode 100644 diff --git a/autoload/zencoding/lang/scss.vim b/autoload/zencoding/lang/scss.vim old mode 100755 new mode 100644 diff --git a/autoload/zencoding/lang/slim.vim b/autoload/zencoding/lang/slim.vim old mode 100755 new mode 100644 diff --git a/autoload/zencoding/util.vim b/autoload/zencoding/util.vim old mode 100755 new mode 100644 diff --git a/colors/README.txt b/colors/README.txt new file mode 100644 index 00000000..988e2a04 --- /dev/null +++ b/colors/README.txt @@ -0,0 +1,64 @@ +README.txt for color scheme files + +These files are used for the ":colorscheme" command. They appear in the +Edit/Color Scheme menu in the GUI. + + +Hints for writing a color scheme file: + +There are two basic ways to define a color scheme: + +1. Define a new Normal color and set the 'background' option accordingly. + set background={light or dark} + highlight clear + highlight Normal ... + ... + +2. Use the default Normal color and automatically adjust to the value of + 'background'. + highlight clear Normal + set background& + highlight clear + if &background == "light" + highlight Error ... + ... + else + highlight Error ... + ... + endif + +You can use ":highlight clear" to reset everything to the defaults, and then +change the groups that you want differently. This also will work for groups +that are added in later versions of Vim. +Note that ":highlight clear" uses the value of 'background', thus set it +before this command. +Some attributes (e.g., bold) might be set in the defaults that you want +removed in your color scheme. Use something like "gui=NONE" to remove the +attributes. + +To see which highlight group is used where, find the help for +"highlight-groups" and "group-name". + +You can use ":highlight" to find out the current colors. Exception: the +ctermfg and ctermbg values are numbers, which are only valid for the current +terminal. Use the color names instead. See ":help cterm-colors". + +The default color settings can be found in the source file src/syntax.c. +Search for "highlight_init". + +If you think you have a color scheme that is good enough to be used by others, +please check the following items: + +- Does it work in a color terminal as well as in the GUI? +- Is "g:colors_name" set to a meaningful value? In case of doubt you can do + it this way: + let g:colors_name = expand(':t:r') +- Is 'background' either used or appropriately set to "light" or "dark"? +- Try setting 'hlsearch' and searching for a pattern, is the match easy to + spot? +- Split a window with ":split" and ":vsplit". Are the status lines and + vertical separators clearly visible? +- In the GUI, is it easy to find the cursor, also in a file with lots of + syntax highlighting? +- Do not use hard coded escape sequences, these will not work in other + terminals. Always use color names or #RRGGBB for the GUI. diff --git a/colors/blue.vim b/colors/blue.vim new file mode 100644 index 00000000..86de8a4d --- /dev/null +++ b/colors/blue.vim @@ -0,0 +1,55 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Steven Vertigan +" Last Change: 2006 Sep 23 +" Revision #5: Switch main text from white to yellow for easier contrast, +" fixed some problems with terminal backgrounds. + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "blue" +hi Normal guifg=yellow guibg=darkBlue ctermfg=yellow ctermbg=darkBlue +hi NonText guifg=magenta ctermfg=lightMagenta +hi comment guifg=gray ctermfg=gray ctermbg=darkBlue gui=bold +hi constant guifg=cyan ctermfg=cyan +hi identifier guifg=gray ctermfg=red +hi statement guifg=white ctermfg=white ctermbg=darkBlue gui=none +hi preproc guifg=green ctermfg=green +hi type guifg=orange ctermfg=lightRed ctermbg=darkBlue +hi special guifg=magenta ctermfg=lightMagenta ctermbg=darkBlue +hi Underlined guifg=cyan ctermfg=cyan gui=underline cterm=underline +hi label guifg=yellow ctermfg=yellow +hi operator guifg=orange gui=bold ctermfg=lightRed ctermbg=darkBlue + +hi ErrorMsg guifg=orange guibg=darkBlue ctermfg=lightRed +hi WarningMsg guifg=cyan guibg=darkBlue ctermfg=cyan gui=bold +hi ModeMsg guifg=yellow gui=NONE ctermfg=yellow +hi MoreMsg guifg=yellow gui=NONE ctermfg=yellow +hi Error guifg=red guibg=darkBlue gui=underline ctermfg=red + +hi Todo guifg=black guibg=orange ctermfg=black ctermbg=darkYellow +hi Cursor guifg=black guibg=white ctermfg=black ctermbg=white +hi Search guifg=black guibg=orange ctermfg=black ctermbg=darkYellow +hi IncSearch guifg=black guibg=yellow ctermfg=black ctermbg=darkYellow +hi LineNr guifg=cyan ctermfg=cyan +hi title guifg=white gui=bold cterm=bold + +hi StatusLineNC gui=NONE guifg=black guibg=blue ctermfg=black ctermbg=blue +hi StatusLine gui=bold guifg=cyan guibg=blue ctermfg=cyan ctermbg=blue +hi VertSplit gui=none guifg=blue guibg=blue ctermfg=blue ctermbg=blue + +hi Visual term=reverse ctermfg=black ctermbg=darkCyan guifg=black guibg=darkCyan + +hi DiffChange guibg=darkGreen guifg=black ctermbg=darkGreen ctermfg=black +hi DiffText guibg=olivedrab guifg=black ctermbg=lightGreen ctermfg=black +hi DiffAdd guibg=slateblue guifg=black ctermbg=blue ctermfg=black +hi DiffDelete guibg=coral guifg=black ctermbg=cyan ctermfg=black + +hi Folded guibg=orange guifg=black ctermbg=yellow ctermfg=black +hi FoldColumn guibg=gray30 guifg=black ctermbg=gray ctermfg=black +hi cIf0 guifg=gray ctermfg=gray + diff --git a/colors/darkblue.vim b/colors/darkblue.vim new file mode 100644 index 00000000..41171227 --- /dev/null +++ b/colors/darkblue.vim @@ -0,0 +1,66 @@ +" Vim color file +" Maintainer: Bohdan Vlasyuk +" Last Change: 2008 Jul 18 + +" darkblue -- for those who prefer dark background +" [note: looks bit uglier with come terminal palettes, +" but is fine on default linux console palette.] + +set bg=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "darkblue" + +hi Normal guifg=#c0c0c0 guibg=#000040 ctermfg=gray ctermbg=black +hi ErrorMsg guifg=#ffffff guibg=#287eff ctermfg=white ctermbg=lightblue +hi Visual guifg=#8080ff guibg=fg gui=reverse ctermfg=lightblue ctermbg=fg cterm=reverse +hi VisualNOS guifg=#8080ff guibg=fg gui=reverse,underline ctermfg=lightblue ctermbg=fg cterm=reverse,underline +hi Todo guifg=#d14a14 guibg=#1248d1 ctermfg=red ctermbg=darkblue +hi Search guifg=#90fff0 guibg=#2050d0 ctermfg=white ctermbg=darkblue cterm=underline term=underline +hi IncSearch guifg=#b0ffff guibg=#2050d0 ctermfg=darkblue ctermbg=gray + +hi SpecialKey guifg=cyan ctermfg=darkcyan +hi Directory guifg=cyan ctermfg=cyan +hi Title guifg=magenta gui=none ctermfg=magenta cterm=bold +hi WarningMsg guifg=red ctermfg=red +hi WildMenu guifg=yellow guibg=black ctermfg=yellow ctermbg=black cterm=none term=none +hi ModeMsg guifg=#22cce2 ctermfg=lightblue +hi MoreMsg ctermfg=darkgreen ctermfg=darkgreen +hi Question guifg=green gui=none ctermfg=green cterm=none +hi NonText guifg=#0030ff ctermfg=darkblue + +hi StatusLine guifg=blue guibg=darkgray gui=none ctermfg=blue ctermbg=gray term=none cterm=none +hi StatusLineNC guifg=black guibg=darkgray gui=none ctermfg=black ctermbg=gray term=none cterm=none +hi VertSplit guifg=black guibg=darkgray gui=none ctermfg=black ctermbg=gray term=none cterm=none + +hi Folded guifg=#808080 guibg=#000040 ctermfg=darkgrey ctermbg=black cterm=bold term=bold +hi FoldColumn guifg=#808080 guibg=#000040 ctermfg=darkgrey ctermbg=black cterm=bold term=bold +hi LineNr guifg=#90f020 ctermfg=green cterm=none + +hi DiffAdd guibg=darkblue ctermbg=darkblue term=none cterm=none +hi DiffChange guibg=darkmagenta ctermbg=magenta cterm=none +hi DiffDelete ctermfg=blue ctermbg=cyan gui=bold guifg=Blue guibg=DarkCyan +hi DiffText cterm=bold ctermbg=red gui=bold guibg=Red + +hi Cursor guifg=black guibg=yellow ctermfg=black ctermbg=yellow +hi lCursor guifg=black guibg=white ctermfg=black ctermbg=white + + +hi Comment guifg=#80a0ff ctermfg=darkred +hi Constant ctermfg=magenta guifg=#ffa0a0 cterm=none +hi Special ctermfg=brown guifg=Orange cterm=none gui=none +hi Identifier ctermfg=cyan guifg=#40ffff cterm=none +hi Statement ctermfg=yellow cterm=none guifg=#ffff60 gui=none +hi PreProc ctermfg=magenta guifg=#ff80ff gui=none cterm=none +hi type ctermfg=green guifg=#60ff60 gui=none cterm=none +hi Underlined cterm=underline term=underline +hi Ignore guifg=bg ctermfg=bg + +" suggested by tigmoid, 2008 Jul 18 +hi Pmenu guifg=#c0c0c0 guibg=#404080 +hi PmenuSel guifg=#c0c0c0 guibg=#2050d0 +hi PmenuSbar guifg=blue guibg=darkgray +hi PmenuThumb guifg=#c0c0c0 diff --git a/colors/default.vim b/colors/default.vim new file mode 100644 index 00000000..70311571 --- /dev/null +++ b/colors/default.vim @@ -0,0 +1,23 @@ +" Vim color file +" Maintainer: Bram Moolenaar +" Last Change: 2001 Jul 23 + +" This is the default color scheme. It doesn't define the Normal +" highlighting, it uses whatever the colors used to be. + +" Set 'background' back to the default. The value can't always be estimated +" and is then guessed. +hi clear Normal +set bg& + +" Remove all existing highlighting and set the defaults. +hi clear + +" Load the syntax highlighting defaults, if it's enabled. +if exists("syntax_on") + syntax reset +endif + +let colors_name = "default" + +" vim: sw=2 diff --git a/colors/delek.vim b/colors/delek.vim new file mode 100644 index 00000000..2cb90a5a --- /dev/null +++ b/colors/delek.vim @@ -0,0 +1,51 @@ +" Vim color file +" Maintainer: David Schweikert +" Last Change: 2006 Apr 30 + +hi clear + +let colors_name = "delek" + +" Normal should come first +hi Normal guifg=Black guibg=White +hi Cursor guifg=bg guibg=fg +hi lCursor guifg=NONE guibg=Cyan + +" Note: we never set 'term' because the defaults for B&W terminals are OK +hi DiffAdd ctermbg=LightBlue guibg=LightBlue +hi DiffChange ctermbg=LightMagenta guibg=LightMagenta +hi DiffDelete ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan +hi DiffText ctermbg=Red cterm=bold gui=bold guibg=Red +hi Directory ctermfg=DarkBlue guifg=Blue +hi ErrorMsg ctermfg=White ctermbg=DarkRed guibg=Red guifg=White +hi FoldColumn ctermfg=DarkBlue ctermbg=Grey guibg=Grey guifg=DarkBlue +hi Folded ctermbg=Grey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue +hi IncSearch cterm=reverse gui=reverse +hi LineNr ctermfg=Brown guifg=Brown +hi ModeMsg cterm=bold gui=bold +hi MoreMsg ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi NonText ctermfg=Blue gui=bold guifg=gray guibg=white +hi Pmenu guibg=LightBlue +hi PmenuSel ctermfg=White ctermbg=DarkBlue guifg=White guibg=DarkBlue +hi Question ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi Search ctermfg=NONE ctermbg=Yellow guibg=Yellow guifg=NONE +hi SpecialKey ctermfg=DarkBlue guifg=Blue +hi StatusLine cterm=bold ctermbg=blue ctermfg=yellow guibg=gold guifg=blue +hi StatusLineNC cterm=bold ctermbg=blue ctermfg=black guibg=gold guifg=blue +hi Title ctermfg=DarkMagenta gui=bold guifg=Magenta +hi VertSplit cterm=reverse gui=reverse +hi Visual ctermbg=NONE cterm=reverse gui=reverse guifg=Grey guibg=fg +hi VisualNOS cterm=underline,bold gui=underline,bold +hi WarningMsg ctermfg=DarkRed guifg=Red +hi WildMenu ctermfg=Black ctermbg=Yellow guibg=Yellow guifg=Black + +" syntax highlighting +hi Comment cterm=NONE ctermfg=DarkRed gui=NONE guifg=red2 +hi Constant cterm=NONE ctermfg=DarkGreen gui=NONE guifg=green3 +hi Identifier cterm=NONE ctermfg=DarkCyan gui=NONE guifg=cyan4 +hi PreProc cterm=NONE ctermfg=DarkMagenta gui=NONE guifg=magenta3 +hi Special cterm=NONE ctermfg=LightRed gui=NONE guifg=deeppink +hi Statement cterm=bold ctermfg=Blue gui=bold guifg=blue +hi Type cterm=NONE ctermfg=Blue gui=bold guifg=blue + +" vim: sw=2 diff --git a/colors/desert.vim b/colors/desert.vim new file mode 100644 index 00000000..7166220f --- /dev/null +++ b/colors/desert.vim @@ -0,0 +1,108 @@ +" Vim color file +" Maintainer: Hans Fugal +" Last Change: $Date: 2004/06/13 19:30:30 $ +" Last Change: $Date: 2004/06/13 19:30:30 $ +" URL: http://hans.fugal.net/vim/colors/desert.vim +" Version: $Id: desert.vim,v 1.1 2004/06/13 19:30:30 vimboss Exp $ + +" cool help screens +" :he group-name +" :he highlight-groups +" :he cterm-colors + +set background=dark +if version > 580 + " no guarantees for version 5.8 and below, but this makes it stop + " complaining + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let g:colors_name="desert" + +hi Normal guifg=White guibg=grey20 + +" highlight groups +hi Cursor guibg=khaki guifg=slategrey +"hi CursorIM +"hi Directory +"hi DiffAdd +"hi DiffChange +"hi DiffDelete +"hi DiffText +"hi ErrorMsg +hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none +hi Folded guibg=grey30 guifg=gold +hi FoldColumn guibg=grey30 guifg=tan +hi IncSearch guifg=slategrey guibg=khaki +"hi LineNr +hi ModeMsg guifg=goldenrod +hi MoreMsg guifg=SeaGreen +hi NonText guifg=LightBlue guibg=grey30 +hi Question guifg=springgreen +hi Search guibg=peru guifg=wheat +hi SpecialKey guifg=yellowgreen +hi StatusLine guibg=#c2bfa5 guifg=black gui=none +hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none +hi Title guifg=indianred +hi Visual gui=none guifg=khaki guibg=olivedrab +"hi VisualNOS +hi WarningMsg guifg=salmon +"hi WildMenu +"hi Menu +"hi Scrollbar +"hi Tooltip + +" syntax highlighting groups +hi Comment guifg=SkyBlue +hi Constant guifg=#ffa0a0 +hi Identifier guifg=palegreen +hi Statement guifg=khaki +hi PreProc guifg=indianred +hi Type guifg=darkkhaki +hi Special guifg=navajowhite +"hi Underlined +hi Ignore guifg=grey40 +"hi Error +hi Todo guifg=orangered guibg=yellow2 + +" color terminal definitions +hi SpecialKey ctermfg=darkgreen +hi NonText cterm=bold ctermfg=darkblue +hi Directory ctermfg=darkcyan +hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 +hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green +hi Search cterm=NONE ctermfg=grey ctermbg=blue +hi MoreMsg ctermfg=darkgreen +hi ModeMsg cterm=NONE ctermfg=brown +hi LineNr ctermfg=3 +hi Question ctermfg=green +hi StatusLine cterm=bold,reverse +hi StatusLineNC cterm=reverse +hi VertSplit cterm=reverse +hi Title ctermfg=5 +hi Visual cterm=reverse +hi VisualNOS cterm=bold,underline +hi WarningMsg ctermfg=1 +hi WildMenu ctermfg=0 ctermbg=3 +hi Folded ctermfg=darkgrey ctermbg=NONE +hi FoldColumn ctermfg=darkgrey ctermbg=NONE +hi DiffAdd ctermbg=4 +hi DiffChange ctermbg=5 +hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +hi DiffText cterm=bold ctermbg=1 +hi Comment ctermfg=darkcyan +hi Constant ctermfg=brown +hi Special ctermfg=5 +hi Identifier ctermfg=6 +hi Statement ctermfg=3 +hi PreProc ctermfg=5 +hi Type ctermfg=2 +hi Underlined cterm=underline ctermfg=5 +hi Ignore cterm=bold ctermfg=7 +hi Ignore ctermfg=darkgrey +hi Error cterm=bold ctermfg=7 ctermbg=1 + + +"vim: sw=4 diff --git a/colors/elflord.vim b/colors/elflord.vim new file mode 100644 index 00000000..f74a8289 --- /dev/null +++ b/colors/elflord.vim @@ -0,0 +1,50 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Ron Aaron +" Last Change: 2003 May 02 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "elflord" +hi Normal guifg=cyan guibg=black +hi Comment term=bold ctermfg=DarkCyan guifg=#80a0ff +hi Constant term=underline ctermfg=Magenta guifg=Magenta +hi Special term=bold ctermfg=DarkMagenta guifg=Red +hi Identifier term=underline cterm=bold ctermfg=Cyan guifg=#40ffff +hi Statement term=bold ctermfg=Yellow gui=bold guifg=#aa4444 +hi PreProc term=underline ctermfg=LightBlue guifg=#ff80ff +hi Type term=underline ctermfg=LightGreen guifg=#60ff60 gui=bold +hi Function term=bold ctermfg=White guifg=White +hi Repeat term=underline ctermfg=White guifg=white +hi Operator ctermfg=Red guifg=Red +hi Ignore ctermfg=black guifg=bg +hi Error term=reverse ctermbg=Red ctermfg=White guibg=Red guifg=White +hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow + +" Common groups that link to default highlighting. +" You can specify other highlighting easily. +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Conditional Repeat +hi link Label Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special diff --git a/colors/evening.vim b/colors/evening.vim new file mode 100644 index 00000000..298fd248 --- /dev/null +++ b/colors/evening.vim @@ -0,0 +1,56 @@ +" Vim color file +" Maintainer: Bram Moolenaar +" Last Change: 2006 Apr 14 + +" This color scheme uses a dark grey background. + +" First remove all existing highlighting. +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "evening" + +hi Normal ctermbg=DarkGrey ctermfg=White guifg=White guibg=grey20 + +" Groups used in the 'highlight' and 'guicursor' options default value. +hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White +hi IncSearch term=reverse cterm=reverse gui=reverse +hi ModeMsg term=bold cterm=bold gui=bold +hi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold +hi StatusLineNC term=reverse cterm=reverse gui=reverse +hi VertSplit term=reverse cterm=reverse gui=reverse +hi Visual term=reverse ctermbg=black guibg=grey60 +hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold +hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red +hi Cursor guibg=Green guifg=Black +hi lCursor guibg=Cyan guifg=Black +hi Directory term=bold ctermfg=LightCyan guifg=Cyan +hi LineNr term=underline ctermfg=Yellow guifg=Yellow +hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen +hi NonText term=bold ctermfg=LightBlue gui=bold guifg=LightBlue guibg=grey30 +hi Question term=standout ctermfg=LightGreen gui=bold guifg=Green +hi Search term=reverse ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black +hi SpecialKey term=bold ctermfg=LightBlue guifg=Cyan +hi Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta +hi WarningMsg term=standout ctermfg=LightRed guifg=Red +hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black +hi Folded term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue +hi FoldColumn term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue +hi DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue +hi DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta +hi DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan +hi CursorColumn term=reverse ctermbg=Black guibg=grey40 +hi CursorLine term=underline cterm=underline guibg=grey40 + +" Groups for syntax highlighting +hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0 guibg=grey5 +hi Special term=bold ctermfg=LightRed guifg=Orange guibg=grey5 +if &t_Co > 8 + hi Statement term=bold cterm=bold ctermfg=Yellow guifg=#ffff60 gui=bold +endif +hi Ignore ctermfg=DarkGrey guifg=grey20 + +" vim: sw=2 diff --git a/colors/koehler.vim b/colors/koehler.vim new file mode 100644 index 00000000..6aaa2441 --- /dev/null +++ b/colors/koehler.vim @@ -0,0 +1,70 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Ron Aaron +" Last Change: 2006 Dec 10 + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "koehler" +hi Normal guifg=white guibg=black +hi Scrollbar guifg=darkcyan guibg=cyan +hi Menu guifg=black guibg=cyan +hi SpecialKey term=bold cterm=bold ctermfg=darkred guifg=#cc0000 +hi NonText term=bold cterm=bold ctermfg=darkred gui=bold guifg=#cc0000 +hi Directory term=bold cterm=bold ctermfg=brown guifg=#cc8000 +hi ErrorMsg term=standout cterm=bold ctermfg=grey ctermbg=red guifg=White guibg=Red +hi Search term=reverse ctermfg=white ctermbg=red guifg=white guibg=Red +hi MoreMsg term=bold cterm=bold ctermfg=darkgreen gui=bold guifg=SeaGreen +hi ModeMsg term=bold cterm=bold gui=bold guifg=White guibg=Blue +hi LineNr term=underline cterm=bold ctermfg=darkcyan guifg=Yellow +hi Question term=standout cterm=bold ctermfg=darkgreen gui=bold guifg=Green +hi StatusLine term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white +hi StatusLineNC term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue +hi Title term=bold cterm=bold ctermfg=darkmagenta gui=bold guifg=Magenta +hi Visual term=reverse cterm=reverse gui=reverse +hi WarningMsg term=standout cterm=bold ctermfg=darkred guifg=Red +hi Cursor guifg=bg guibg=Green +hi Comment term=bold cterm=bold ctermfg=cyan guifg=#80a0ff +hi Constant term=underline cterm=bold ctermfg=magenta guifg=#ffa0a0 +hi Special term=bold cterm=bold ctermfg=red guifg=Orange +hi Identifier term=underline ctermfg=brown guifg=#40ffff +hi Statement term=bold cterm=bold ctermfg=yellow gui=bold guifg=#ffff60 +hi PreProc term=underline ctermfg=darkmagenta guifg=#ff80ff +hi Type term=underline cterm=bold ctermfg=lightgreen gui=bold guifg=#60ff60 +hi Error term=reverse ctermfg=darkcyan ctermbg=black guifg=Red guibg=Black +hi Todo term=standout ctermfg=black ctermbg=darkcyan guifg=Blue guibg=Yellow +hi CursorLine term=underline guibg=#555555 cterm=underline +hi CursorColumn term=underline guibg=#555555 cterm=underline +hi MatchParen term=reverse ctermfg=blue guibg=Blue +hi TabLine term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white +hi TabLineFill term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white +hi TabLineSel term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue +hi link IncSearch Visual +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link Tag Special +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special diff --git a/colors/morning.vim b/colors/morning.vim new file mode 100644 index 00000000..f1ab8414 --- /dev/null +++ b/colors/morning.vim @@ -0,0 +1,56 @@ +" Vim color file +" Maintainer: Bram Moolenaar +" Last Change: 2006 Apr 15 + +" This color scheme uses a light grey background. + +" First remove all existing highlighting. +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "morning" + +hi Normal ctermfg=Black ctermbg=LightGrey guifg=Black guibg=grey90 + +" Groups used in the 'highlight' and 'guicursor' options default value. +hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White +hi IncSearch term=reverse cterm=reverse gui=reverse +hi ModeMsg term=bold cterm=bold gui=bold +hi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold +hi StatusLineNC term=reverse cterm=reverse gui=reverse +hi VertSplit term=reverse cterm=reverse gui=reverse +hi Visual term=reverse ctermbg=grey guibg=grey80 +hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold +hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red +hi Cursor guibg=Green guifg=NONE +hi lCursor guibg=Cyan guifg=NONE +hi Directory term=bold ctermfg=DarkBlue guifg=Blue +hi LineNr term=underline ctermfg=Brown guifg=Brown +hi MoreMsg term=bold ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi NonText term=bold ctermfg=Blue gui=bold guifg=Blue guibg=grey80 +hi Question term=standout ctermfg=DarkGreen gui=bold guifg=SeaGreen +hi Search term=reverse ctermbg=Yellow ctermfg=NONE guibg=Yellow guifg=NONE +hi SpecialKey term=bold ctermfg=DarkBlue guifg=Blue +hi Title term=bold ctermfg=DarkMagenta gui=bold guifg=Magenta +hi WarningMsg term=standout ctermfg=DarkRed guifg=Red +hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black +hi Folded term=standout ctermbg=Grey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue +hi FoldColumn term=standout ctermbg=Grey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue +hi DiffAdd term=bold ctermbg=LightBlue guibg=LightBlue +hi DiffChange term=bold ctermbg=LightMagenta guibg=LightMagenta +hi DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan +hi CursorLine term=underline cterm=underline guibg=grey80 +hi CursorColumn term=reverse ctermbg=grey guibg=grey80 + +" Colors for syntax highlighting +hi Constant term=underline ctermfg=DarkRed guifg=Magenta guibg=grey95 +hi Special term=bold ctermfg=DarkMagenta guifg=SlateBlue guibg=grey95 +if &t_Co > 8 + hi Statement term=bold cterm=bold ctermfg=Brown gui=bold guifg=Brown +endif +hi Ignore ctermfg=LightGrey guifg=grey90 + +" vim: sw=2 diff --git a/colors/murphy.vim b/colors/murphy.vim new file mode 100644 index 00000000..1f439964 --- /dev/null +++ b/colors/murphy.vim @@ -0,0 +1,41 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Ron Aaron +" Last Change: 2003 May 02 + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "murphy" + +hi Normal ctermbg=Black ctermfg=lightgreen guibg=Black guifg=lightgreen +hi Comment term=bold ctermfg=LightRed guifg=Orange +hi Constant term=underline ctermfg=LightGreen guifg=White gui=NONE +hi Identifier term=underline ctermfg=LightCyan guifg=#00ffff +hi Ignore ctermfg=black guifg=bg +hi PreProc term=underline ctermfg=LightBlue guifg=Wheat +hi Search term=reverse guifg=white guibg=Blue +hi Special term=bold ctermfg=LightRed guifg=magenta +hi Statement term=bold ctermfg=Yellow guifg=#ffff00 gui=NONE +hi Type ctermfg=LightGreen guifg=grey gui=none +hi Error term=reverse ctermbg=Red ctermfg=White guibg=Red guifg=White +hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow +" From the source: +hi Cursor guifg=Orchid guibg=fg +hi Directory term=bold ctermfg=LightCyan guifg=Cyan +hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White +hi IncSearch term=reverse cterm=reverse gui=reverse +hi LineNr term=underline ctermfg=Yellow guifg=Yellow +hi ModeMsg term=bold cterm=bold gui=bold +hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen +hi NonText term=bold ctermfg=Blue gui=bold guifg=Blue +hi Question term=standout ctermfg=LightGreen gui=bold guifg=Cyan +hi SpecialKey term=bold ctermfg=LightBlue guifg=Cyan +hi StatusLine term=reverse,bold cterm=reverse gui=NONE guifg=White guibg=darkblue +hi StatusLineNC term=reverse cterm=reverse gui=NONE guifg=white guibg=#333333 +hi Title term=bold ctermfg=LightMagenta gui=bold guifg=Pink +hi WarningMsg term=standout ctermfg=LightRed guifg=Red +hi Visual term=reverse cterm=reverse gui=NONE guifg=white guibg=darkgreen diff --git a/colors/pablo.vim b/colors/pablo.vim new file mode 100644 index 00000000..e6bf7370 --- /dev/null +++ b/colors/pablo.vim @@ -0,0 +1,26 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Ron Aaron +" Last Change: 2003 May 02 + +hi clear +set background=dark +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "pablo" + +highlight Comment ctermfg=8 guifg=#808080 +highlight Constant ctermfg=14 cterm=none guifg=#00ffff gui=none +highlight Identifier ctermfg=6 guifg=#00c0c0 +highlight Statement ctermfg=3 cterm=bold guifg=#c0c000 gui=bold +highlight PreProc ctermfg=10 guifg=#00ff00 +highlight Type ctermfg=2 guifg=#00c000 +highlight Special ctermfg=12 guifg=#0000ff +highlight Error ctermbg=9 guibg=#ff0000 +highlight Todo ctermfg=4 ctermbg=3 guifg=#000080 guibg=#c0c000 +highlight Directory ctermfg=2 guifg=#00c000 +highlight StatusLine ctermfg=11 ctermbg=12 cterm=none guifg=#ffff00 guibg=#0000ff gui=none +highlight Normal guifg=#ffffff guibg=#000000 +highlight Search ctermbg=3 guibg=#c0c000 diff --git a/colors/peachpuff.vim b/colors/peachpuff.vim new file mode 100644 index 00000000..3c15305b --- /dev/null +++ b/colors/peachpuff.vim @@ -0,0 +1,60 @@ +" Vim color file +" Maintainer: David Ne\v{c}as (Yeti) +" Last Change: 2003-04-23 +" URL: http://trific.ath.cx/Ftp/vim/colors/peachpuff.vim + +" This color scheme uses a peachpuff background (what you've expected when it's +" called peachpuff?). +" +" Note: Only GUI colors differ from default, on terminal it's just `light'. + +" First remove all existing highlighting. +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "peachpuff" + +hi Normal guibg=PeachPuff guifg=Black + +hi SpecialKey term=bold ctermfg=4 guifg=Blue +hi NonText term=bold cterm=bold ctermfg=4 gui=bold guifg=Blue +hi Directory term=bold ctermfg=4 guifg=Blue +hi ErrorMsg term=standout cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red +hi IncSearch term=reverse cterm=reverse gui=reverse +hi Search term=reverse ctermbg=3 guibg=Gold2 +hi MoreMsg term=bold ctermfg=2 gui=bold guifg=SeaGreen +hi ModeMsg term=bold cterm=bold gui=bold +hi LineNr term=underline ctermfg=3 guifg=Red3 +hi Question term=standout ctermfg=2 gui=bold guifg=SeaGreen +hi StatusLine term=bold,reverse cterm=bold,reverse gui=bold guifg=White guibg=Black +hi StatusLineNC term=reverse cterm=reverse gui=bold guifg=PeachPuff guibg=Gray45 +hi VertSplit term=reverse cterm=reverse gui=bold guifg=White guibg=Gray45 +hi Title term=bold ctermfg=5 gui=bold guifg=DeepPink3 +hi Visual term=reverse cterm=reverse gui=reverse guifg=Grey80 guibg=fg +hi VisualNOS term=bold,underline cterm=bold,underline gui=bold,underline +hi WarningMsg term=standout ctermfg=1 gui=bold guifg=Red +hi WildMenu term=standout ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow +hi Folded term=standout ctermfg=4 ctermbg=7 guifg=Black guibg=#e3c1a5 +hi FoldColumn term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=Gray80 +hi DiffAdd term=bold ctermbg=4 guibg=White +hi DiffChange term=bold ctermbg=5 guibg=#edb5cd +hi DiffDelete term=bold cterm=bold ctermfg=4 ctermbg=6 gui=bold guifg=LightBlue guibg=#f6e8d0 +hi DiffText term=reverse cterm=bold ctermbg=1 gui=bold guibg=#ff8060 +hi Cursor guifg=bg guibg=fg +hi lCursor guifg=bg guibg=fg + +" Colors for syntax highlighting +hi Comment term=bold ctermfg=4 guifg=#406090 +hi Constant term=underline ctermfg=1 guifg=#c00058 +hi Special term=bold ctermfg=5 guifg=SlateBlue +hi Identifier term=underline ctermfg=6 guifg=DarkCyan +hi Statement term=bold ctermfg=3 gui=bold guifg=Brown +hi PreProc term=underline ctermfg=5 guifg=Magenta3 +hi Type term=underline ctermfg=2 gui=bold guifg=SeaGreen +hi Ignore cterm=bold ctermfg=7 guifg=bg +hi Error term=reverse cterm=bold ctermfg=7 ctermbg=1 gui=bold guifg=White guibg=Red +hi Todo term=standout ctermfg=0 ctermbg=3 guifg=Blue guibg=Yellow + diff --git a/colors/ron.vim b/colors/ron.vim new file mode 100644 index 00000000..45d64455 --- /dev/null +++ b/colors/ron.vim @@ -0,0 +1,43 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Ron Aaron +" Last Change: 2003 May 02 + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "ron" +hi Normal guifg=cyan guibg=black +hi NonText guifg=brown +hi comment guifg=green +hi constant guifg=cyan gui=bold +hi identifier guifg=cyan gui=NONE +hi statement guifg=lightblue gui=NONE +hi preproc guifg=Pink2 +hi type guifg=seagreen gui=bold +hi special guifg=yellow +hi ErrorMsg guifg=Black guibg=Red +hi WarningMsg guifg=Black guibg=Green +hi Error guibg=Red +hi Todo guifg=Black guibg=orange +hi Cursor guibg=#60a060 guifg=#00ff00 +hi Search guibg=lightslateblue +hi IncSearch gui=NONE guibg=steelblue +hi LineNr guifg=darkgrey +hi title guifg=darkgrey +hi StatusLineNC gui=NONE guifg=lightblue guibg=darkblue +hi StatusLine gui=bold guifg=cyan guibg=blue +hi label guifg=gold2 +hi operator guifg=orange +hi clear Visual +hi Visual term=reverse cterm=reverse gui=reverse +hi DiffChange guibg=darkgreen +hi DiffText guibg=olivedrab +hi DiffAdd guibg=slateblue +hi DiffDelete guibg=coral +hi Folded guibg=gray30 +hi FoldColumn guibg=gray30 guifg=white +hi cIf0 guifg=gray diff --git a/colors/shine.vim b/colors/shine.vim new file mode 100644 index 00000000..afc72b30 --- /dev/null +++ b/colors/shine.vim @@ -0,0 +1,60 @@ +" Vim color file +" Maintainer: Yasuhiro Matsumoto +" Last Change: 2001 May 25 + +" This look like normal text editor. +" This color scheme uses a light background. + +" First remove all existing highlighting. +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif + +let colors_name = "shine" + +hi Normal ctermbg=White ctermfg=Black guifg=Black guibg=White + +" Groups used in the 'highlight' and 'guicursor' options default value. +hi ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White +hi IncSearch term=reverse cterm=reverse gui=reverse +hi ModeMsg term=bold cterm=bold gui=bold +hi StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold +hi StatusLineNC term=reverse cterm=reverse gui=reverse +hi VertSplit term=reverse cterm=reverse gui=reverse +hi Visual term=reverse cterm=reverse gui=reverse guifg=Grey guibg=fg +hi VisualNOS term=underline,bold cterm=underline,bold gui=underline,bold +hi DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red +hi Cursor ctermbg=Green guibg=Green guifg=Black +hi lCursor guibg=Cyan guifg=Black +hi Directory term=bold ctermfg=LightRed guifg=Red +hi LineNr term=underline ctermfg=Yellow guifg=Yellow +hi MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen +hi NonText term=bold ctermfg=LightBlue gui=bold guifg=LightBlue guibg=grey90 +hi Question term=standout ctermfg=LightGreen gui=bold guifg=Green +hi Search term=reverse ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black +hi SpecialKey term=bold ctermfg=LightBlue guifg=Blue +hi Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta +hi WarningMsg term=standout ctermfg=LightRed guifg=Red +hi WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black +hi Folded term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue +hi FoldColumn term=standout ctermbg=LightGrey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue +hi DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue +hi DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta +hi DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan + +hi Comment ctermfg=DarkGrey ctermbg=White guifg=DarkGrey gui=bold +hi SpecialChar ctermfg=DarkGrey ctermbg=White guifg=DarkGrey gui=bold +hi StorageClass ctermfg=Red ctermbg=White guifg=Red gui=bold +hi Number ctermfg=LightRed ctermbg=White guifg=LightRed gui=bold + +" Groups for syntax highlighting +hi Constant term=underline ctermfg=Magenta guifg=#a07070 guibg=grey80 +hi Special term=bold ctermfg=LightRed guifg=DarkOrange guibg=grey80 +if &t_Co > 8 + hi Statement term=bold cterm=bold ctermfg=DarkGreen ctermbg=White guifg=#ffff60 gui=bold +endif +hi Ignore ctermfg=LightGrey guifg=grey90 + +" vim: sw=2 diff --git a/colors/slate.vim b/colors/slate.vim new file mode 100644 index 00000000..f9a70b87 --- /dev/null +++ b/colors/slate.vim @@ -0,0 +1,56 @@ +"%% SiSU Vim color file +" Slate Maintainer: Ralph Amissah +" (originally looked at desert Hans Fugal http://hans.fugal.net/vim/colors/desert.vim (2003/05/06) +:set background=dark +:highlight clear +if version > 580 + hi clear + if exists("syntax_on") + syntax reset + endif +endif +let colors_name = "slate" +:hi Normal guifg=White guibg=grey15 +:hi Cursor guibg=khaki guifg=slategrey +:hi VertSplit guibg=#c2bfa5 guifg=grey40 gui=none cterm=reverse +:hi Folded guibg=black guifg=grey40 ctermfg=grey ctermbg=darkgrey +:hi FoldColumn guibg=black guifg=grey20 ctermfg=4 ctermbg=7 +:hi IncSearch guifg=green guibg=black cterm=none ctermfg=yellow ctermbg=green +:hi ModeMsg guifg=goldenrod cterm=none ctermfg=brown +:hi MoreMsg guifg=SeaGreen ctermfg=darkgreen +:hi NonText guifg=RoyalBlue guibg=grey15 cterm=bold ctermfg=blue +:hi Question guifg=springgreen ctermfg=green +:hi Search guibg=peru guifg=wheat cterm=none ctermfg=grey ctermbg=blue +:hi SpecialKey guifg=yellowgreen ctermfg=darkgreen +:hi StatusLine guibg=#c2bfa5 guifg=black gui=none cterm=bold,reverse +:hi StatusLineNC guibg=#c2bfa5 guifg=grey40 gui=none cterm=reverse +:hi Title guifg=gold gui=bold cterm=bold ctermfg=yellow +:hi Statement guifg=CornflowerBlue ctermfg=lightblue +:hi Visual gui=none guifg=khaki guibg=olivedrab cterm=reverse +:hi WarningMsg guifg=salmon ctermfg=1 +:hi String guifg=SkyBlue ctermfg=darkcyan +:hi Comment term=bold ctermfg=11 guifg=grey40 +:hi Constant guifg=#ffa0a0 ctermfg=brown +:hi Special guifg=darkkhaki ctermfg=brown +:hi Identifier guifg=salmon ctermfg=red +:hi Include guifg=red ctermfg=red +:hi PreProc guifg=red guibg=white ctermfg=red +:hi Operator guifg=Red ctermfg=Red +:hi Define guifg=gold gui=bold ctermfg=yellow +:hi Type guifg=CornflowerBlue ctermfg=2 +:hi Function guifg=navajowhite ctermfg=brown +:hi Structure guifg=green ctermfg=green +:hi LineNr guifg=grey50 ctermfg=3 +:hi Ignore guifg=grey40 cterm=bold ctermfg=7 +:hi Todo guifg=orangered guibg=yellow2 +:hi Directory ctermfg=darkcyan +:hi ErrorMsg cterm=bold guifg=White guibg=Red cterm=bold ctermfg=7 ctermbg=1 +:hi VisualNOS cterm=bold,underline +:hi WildMenu ctermfg=0 ctermbg=3 +:hi DiffAdd ctermbg=4 +:hi DiffChange ctermbg=5 +:hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 +:hi DiffText cterm=bold ctermbg=1 +:hi Underlined cterm=underline ctermfg=5 +:hi Error guifg=White guibg=Red cterm=bold ctermfg=7 ctermbg=1 +:hi SpellErrors guifg=White guibg=Red cterm=bold ctermfg=7 ctermbg=1 diff --git a/colors/t.vim b/colors/t.vim new file mode 100644 index 00000000..a49b4528 --- /dev/null +++ b/colors/t.vim @@ -0,0 +1,50 @@ +" Vim color file +" Maintainer: Thorsten Maerz +" Last Change: 2006 Dec 07 +" grey on black +" optimized for TFT panels + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +"colorscheme default +let g:colors_name = "torte" + +" hardcoded colors : +" GUI Comment : #80a0ff = Light blue + +" GUI +highlight Normal guifg=Grey80 guibg=Black +highlight Search guifg=Black guibg=Red gui=bold +highlight Visual guifg=#404040 gui=bold +highlight Cursor guifg=Black guibg=Green gui=bold +highlight Special guifg=Orange +highlight Comment guifg=#80a0ff +highlight StatusLine guifg=blue guibg=white +highlight Statement guifg=Yellow gui=NONE +highlight Type gui=NONE + +" Console +highlight Normal ctermfg=LightGrey ctermbg=NONE +highlight Search ctermfg=Black ctermbg=Red cterm=NONE +highlight Visual cterm=reverse +highlight Cursor ctermfg=Black ctermbg=Green cterm=bold +highlight Special ctermfg=Brown +highlight Comment ctermfg=Blue +highlight StatusLine ctermfg=blue ctermbg=white +highlight Statement ctermfg=Yellow cterm=NONE +highlight Type cterm=NONE + +" only for vim 5 +if has("unix") + if v:version<600 + highlight Normal ctermfg=Grey ctermbg=Black cterm=NONE guifg=Grey80 guibg=Black gui=NONE + highlight Search ctermfg=Black ctermbg=Red cterm=bold guifg=Black guibg=Red gui=bold + highlight Visual ctermfg=Black ctermbg=yellow cterm=bold guifg=#404040 gui=bold + highlight Special ctermfg=LightBlue cterm=NONE guifg=LightBlue gui=NONE + highlight Comment ctermfg=Cyan cterm=NONE guifg=LightBlue gui=NONE + endif +endif + diff --git a/colors/torte.vim b/colors/torte.vim new file mode 100644 index 00000000..0e7a916a --- /dev/null +++ b/colors/torte.vim @@ -0,0 +1,50 @@ +" Vim color file +" Maintainer: Thorsten Maerz +" Last Change: 2006 Dec 07 +" grey on black +" optimized for TFT panels + +set background=dark +hi clear +if exists("syntax_on") + syntax reset +endif +"colorscheme default +let g:colors_name = "torte" + +" hardcoded colors : +" GUI Comment : #80a0ff = Light blue + +" GUI +highlight Normal guifg=Grey80 guibg=Black +highlight Search guifg=Black guibg=Red gui=bold +highlight Visual guifg=#404040 gui=bold +highlight Cursor guifg=Black guibg=Green gui=bold +highlight Special guifg=Orange +highlight Comment guifg=#80a0ff +highlight StatusLine guifg=blue guibg=white +highlight Statement guifg=Yellow gui=NONE +highlight Type gui=NONE + +" Console +highlight Normal ctermfg=LightGrey ctermbg=Black +highlight Search ctermfg=Black ctermbg=Red cterm=NONE +highlight Visual cterm=reverse +highlight Cursor ctermfg=Black ctermbg=Green cterm=bold +highlight Special ctermfg=Brown +highlight Comment ctermfg=Blue +highlight StatusLine ctermfg=blue ctermbg=white +highlight Statement ctermfg=Yellow cterm=NONE +highlight Type cterm=NONE + +" only for vim 5 +if has("unix") + if v:version<600 + highlight Normal ctermfg=Grey ctermbg=Black cterm=NONE guifg=Grey80 guibg=Black gui=NONE + highlight Search ctermfg=Black ctermbg=Red cterm=bold guifg=Black guibg=Red gui=bold + highlight Visual ctermfg=Black ctermbg=yellow cterm=bold guifg=#404040 gui=bold + highlight Special ctermfg=LightBlue cterm=NONE guifg=LightBlue gui=NONE + highlight Comment ctermfg=Cyan cterm=NONE guifg=LightBlue gui=NONE + endif +endif + diff --git a/colors/zellner.vim b/colors/zellner.vim new file mode 100644 index 00000000..ab875825 --- /dev/null +++ b/colors/zellner.vim @@ -0,0 +1,54 @@ +" local syntax file - set colors on a per-machine basis: +" vim: tw=0 ts=4 sw=4 +" Vim color file +" Maintainer: Ron Aaron +" Last Change: 2003 May 02 + +set background=light +hi clear +if exists("syntax_on") + syntax reset +endif +let g:colors_name = "zellner" + +hi Comment term=bold ctermfg=Red guifg=Red +hi Normal guifg=black guibg=white +hi Constant term=underline ctermfg=Magenta guifg=Magenta +hi Special term=bold ctermfg=Magenta guifg=Magenta +hi Identifier term=underline ctermfg=Blue guifg=Blue +hi Statement term=bold ctermfg=DarkRed gui=NONE guifg=Brown +hi PreProc term=underline ctermfg=Magenta guifg=Purple +hi Type term=underline ctermfg=Blue gui=NONE guifg=Blue +hi Visual term=reverse ctermfg=Yellow ctermbg=Red gui=NONE guifg=Black guibg=Yellow +hi Search term=reverse ctermfg=Black ctermbg=Cyan gui=NONE guifg=Black guibg=Cyan +hi Tag term=bold ctermfg=DarkGreen guifg=DarkGreen +hi Error term=reverse ctermfg=15 ctermbg=9 guibg=Red guifg=White +hi Todo term=standout ctermbg=Yellow ctermfg=Black guifg=Blue guibg=Yellow +hi StatusLine term=bold,reverse cterm=NONE ctermfg=Yellow ctermbg=DarkGray gui=NONE guifg=Yellow guibg=DarkGray +hi! link MoreMsg Comment +hi! link ErrorMsg Visual +hi! link WarningMsg ErrorMsg +hi! link Question Comment +hi link String Constant +hi link Character Constant +hi link Number Constant +hi link Boolean Constant +hi link Float Number +hi link Function Identifier +hi link Conditional Statement +hi link Repeat Statement +hi link Label Statement +hi link Operator Statement +hi link Keyword Statement +hi link Exception Statement +hi link Include PreProc +hi link Define PreProc +hi link Macro PreProc +hi link PreCondit PreProc +hi link StorageClass Type +hi link Structure Type +hi link Typedef Type +hi link SpecialChar Special +hi link Delimiter Special +hi link SpecialComment Special +hi link Debug Special diff --git a/doc/HTML.txt b/doc/HTML.txt old mode 100755 new mode 100644 diff --git a/doc/NERD_tree.txt b/doc/NERD_tree.txt old mode 100755 new mode 100644 diff --git a/doc/arabic.cnx b/doc/arabic.cnx old mode 100755 new mode 100644 diff --git a/doc/autocmd.cnx b/doc/autocmd.cnx old mode 100755 new mode 100644 diff --git a/doc/change.cnx b/doc/change.cnx old mode 100755 new mode 100644 diff --git a/doc/cmdline.cnx b/doc/cmdline.cnx old mode 100755 new mode 100644 diff --git a/doc/conque_term.txt b/doc/conque_term.txt old mode 100755 new mode 100644 diff --git a/doc/debug.cnx b/doc/debug.cnx old mode 100755 new mode 100644 diff --git a/doc/debugger.cnx b/doc/debugger.cnx old mode 100755 new mode 100644 diff --git a/doc/develop.cnx b/doc/develop.cnx old mode 100755 new mode 100644 diff --git a/doc/diff.cnx b/doc/diff.cnx old mode 100755 new mode 100644 diff --git a/doc/digraph.cnx b/doc/digraph.cnx old mode 100755 new mode 100644 diff --git a/doc/editing.cnx b/doc/editing.cnx old mode 100755 new mode 100644 diff --git a/doc/eval.cnx b/doc/eval.cnx old mode 100755 new mode 100644 diff --git a/doc/farsi.cnx b/doc/farsi.cnx old mode 100755 new mode 100644 diff --git a/doc/filetype.cnx b/doc/filetype.cnx old mode 100755 new mode 100644 diff --git a/doc/fold.cnx b/doc/fold.cnx old mode 100755 new mode 100644 diff --git a/doc/ft_ada.cnx b/doc/ft_ada.cnx old mode 100755 new mode 100644 diff --git a/doc/ft_sql.cnx b/doc/ft_sql.cnx old mode 100755 new mode 100644 diff --git a/doc/gui.cnx b/doc/gui.cnx old mode 100755 new mode 100644 diff --git a/doc/gui_w16.cnx b/doc/gui_w16.cnx old mode 100755 new mode 100644 diff --git a/doc/gui_w32.cnx b/doc/gui_w32.cnx old mode 100755 new mode 100644 diff --git a/doc/gui_x11.cnx b/doc/gui_x11.cnx old mode 100755 new mode 100644 diff --git a/doc/hangulin.cnx b/doc/hangulin.cnx old mode 100755 new mode 100644 diff --git a/doc/hebrew.cnx b/doc/hebrew.cnx old mode 100755 new mode 100644 diff --git a/doc/help.cnx b/doc/help.cnx old mode 100755 new mode 100644 diff --git a/doc/helphelp.cnx b/doc/helphelp.cnx old mode 100755 new mode 100644 diff --git a/doc/howto.cnx b/doc/howto.cnx old mode 100755 new mode 100644 diff --git a/doc/if_cscop.cnx b/doc/if_cscop.cnx old mode 100755 new mode 100644 diff --git a/doc/if_lua.cnx b/doc/if_lua.cnx old mode 100755 new mode 100644 diff --git a/doc/if_mzsch.cnx b/doc/if_mzsch.cnx old mode 100755 new mode 100644 diff --git a/doc/if_ole.cnx b/doc/if_ole.cnx old mode 100755 new mode 100644 diff --git a/doc/if_perl.cnx b/doc/if_perl.cnx old mode 100755 new mode 100644 diff --git a/doc/if_pyth.cnx b/doc/if_pyth.cnx old mode 100755 new mode 100644 diff --git a/doc/if_ruby.cnx b/doc/if_ruby.cnx old mode 100755 new mode 100644 diff --git a/doc/if_sniff.cnx b/doc/if_sniff.cnx old mode 100755 new mode 100644 diff --git a/doc/if_tcl.cnx b/doc/if_tcl.cnx old mode 100755 new mode 100644 diff --git a/doc/indent.cnx b/doc/indent.cnx old mode 100755 new mode 100644 diff --git a/doc/index.cnx b/doc/index.cnx old mode 100755 new mode 100644 diff --git a/doc/insert.cnx b/doc/insert.cnx old mode 100755 new mode 100644 diff --git a/doc/intro.cnx b/doc/intro.cnx old mode 100755 new mode 100644 diff --git a/doc/map.cnx b/doc/map.cnx old mode 100755 new mode 100644 diff --git a/doc/mark.txt b/doc/mark.txt new file mode 100644 index 00000000..2461a7e6 --- /dev/null +++ b/doc/mark.txt @@ -0,0 +1,565 @@ +*mark.txt* Highlight several words in different colors simultaneously. + + MARK by Ingo Karkat + (original version by Yuheng Xie) + *mark.vim* +description |mark-description| +usage |mark-usage| +installation |mark-installation| +configuration |mark-configuration| +limitations |mark-limitations| +known problems |mark-known-problems| +todo |mark-todo| +history |mark-history| + +============================================================================== +DESCRIPTION *mark-description* + +This plugin adds mappings and a :Mark command to highlight several words in +different colors simultaneously, similar to the built-in 'hlsearch' +highlighting of search results and the * |star| command. For example, when you +are browsing a big program file, you could highlight multiple identifiers in +parallel. This will make it easier to trace the source code. + +This is a continuation of vimscript #1238 by Yuheng Xie, who apparently +doesn't maintain his original version anymore and cannot be reached via the +email address in his profile. This plugin offers the following advantages over +the original: +- Much faster, all colored words can now be highlighted, no more clashes with + syntax highlighting (due to use of matchadd()). +- Many bug fixes. +- Jumps behave like the built-in search, including wrap and error messages. +- Like the built-in commands, jumps take an optional [count] to quickly skip + over some marks. +- Marks can be persisted, and patterns can be added / subtracted from + mark highlight groups. + +RELATED WORKS * + +- MultipleSearch (vimscript #479) can highlight in a single window and in all + buffers, but still relies on the :syntax highlighting method, which is + slower and less reliable. +- http://vim.wikia.com/wiki/Highlight_multiple_words offers control over the + color used by mapping the 1-9 keys on the numeric keypad, persistence, and + highlights only a single window. +- highlight.vim (vimscript #1599) highlights lines or patterns of interest in + different colors, using mappings that start with CTRL-H and work on cword. +- quickhl.vim (vimscript #3692) can also list the matches with colors and in + addition offers on-the-fly highlighting of the current word (like many IDEs + do). + +============================================================================== +USAGE *mark-usage* + +HIGHLIGHTING *mark-highlighting* + *m* *v_m* +m Mark the word under the cursor, similar to the |star| + command. The next free highlight group is used. + If already on a mark: Clear the mark, like + |n|. +{Visual}m Mark or unmark the visual selection. +[N]m With [N], mark the word under the cursor with the + named highlight group [N]. When that group is not + empty, the word is added as an alternative match, so + you can highlight multiple words with the same color. + When the word is already contained in the list of + alternatives, it is removed. + + When [N] is greater than the number of defined mark + groups, a summary of marks is printed. Active mark + groups are prefixed with "*" (or "M*" when there are + M pattern alternatives), the default next group with + ">", the last used search with "/" (like |:Marks| + does). Input the mark group, accept the default with + , or abort with or any other key. + This way, when unsure about which number represents + which color, just use 99n and pick the color + interactively! + +{Visual}[N]m Ditto, based on the visual selection. + + *r* *v_r* +r Manually input a regular expression to mark. +{Visual}r Ditto, based on the visual selection. + + In accordance with the built-in |star| command, + all these mappings use 'ignorecase', but not + 'smartcase'. + *n* +n Clear the mark under the cursor. + If not on a mark: Disable all marks, similar to + |:nohlsearch|. + Note: Marks that span multiple lines are not detected, + so the use of n on such a mark will + unintentionally remove all marks! Use + {Visual}r or :Mark {pattern} to clear + multi-line marks (or pass [N] if you happen to know + the group number). +[N]n Clear the marks represented by highlight group [N]. + + *:Mark* +:[N]Mark Clear the marks represented by highlight group [N]. +:[N]Mark {pattern} Mark or unmark {pattern}. Unless [N] is given, the + next free highlight group is used. + With [N], mark the word under the cursor with the + named highlight group [N]. When that group is not + empty, the word is added as an alternative match, so + you can highlight multiple words with the same color. + When the word is already contained in the list of + alternatives, it is removed. + For implementation reasons, {pattern} cannot use the + 'smartcase' setting, only 'ignorecase'. +:Mark Disable all marks, similar to |:nohlsearch|. Marks + will automatically re-enable when a mark is added or + removed, or a search for marks is performed. + *:MarkClear* +:MarkClear Clear all marks. In contrast to disabling marks, the + actual mark information is cleared, the next mark will + use the first highlight group. This cannot be undone. + + +SEARCHING *mark-searching* + *star* *#* */* *?* +[count]* [count]# +[count]* [count]# +[count]/ [count]? + Use these six keys to jump to the [count]'th next / + previous occurrence of a mark. + You could also use Vim's / and ? to search, since the + mark patterns are (optionally, see configuration) + added to the search history, too. + + Cursor over mark Cursor not over mark + --------------------------------------------------------------------------- + * Jump to the next occurrence of Jump to the next occurrence of + current mark, and remember it "last mark". + as "last mark". + + / Jump to the next occurrence of Same as left. + ANY mark. + + * If * is the most recently Do Vim's original * command. + used, do a *; otherwise + (/ is the most recently + used), do a /. + + Note: When the cursor is on a mark, the backwards + search does not jump to the beginning of the current + mark (like the built-in search), but to the previous + mark. The entire mark text is treated as one entity. + + You can use Vim's |jumplist| to go back to previous + mark matches and the position before a mark search. + +MARK PERSISTENCE *mark-persistence* + +The marks can be kept and restored across Vim sessions, using the |viminfo| +file. For this to work, the "!" flag must be part of the 'viminfo' setting: > + set viminfo+=! " Save and restore global variables. +< *:MarkLoad* +:MarkLoad Restore the marks from the previous Vim session. All + current marks are discarded. + *:MarkSave* +:MarkSave Save the currently defined marks (or clear the + persisted marks if no marks are currently defined) for + use in a future Vim session. + +By default, automatic persistence is enabled (so you don't need to explicitly +|:MarkSave|), but you have to explicitly load the persisted marks in a new Vim +session via |:MarkLoad|, to avoid that you accidentally drag along outdated +highlightings from Vim session to session, and be surprised by the arbitrary +highlight groups and occasional appearance of forgotten marks. If you want +just that though and automatically restore any marks, set |g:mwAutoLoadMarks|. + +You can also initialize some marks (even using particular highlight groups) to +static values, e.g. by including this in |vimrc|: > + runtime plugin/mark.vim + silent MarkClear + 5Mark foo + 6Mark bar +Or you can define custom commands that preset certain marks: > + command -bar MyMarks silent MarkClear | execute '5Mark foo' | execute '6Mark bar' +Or a command that adds to the existing marks and then toggles them: > + command -bar ToggleFooBarMarks execute 'Mark foo' | execute 'Mark bar' +< +MARK INFORMATION *mark-information* + +Both |mark-highlighting| and |mark-searching| commands print information about +the mark and search pattern, e.g. + mark-1/\ ~ +This is especially useful when you want to add or subtract patterns to a mark +highlight group via [N]. + + *:Marks* +:Marks List all mark highlight groups and the search patterns + defined for them. + The group that will be used for the next |:Mark| or + |m| command (with [N]) is shown with a ">". + The last mark used for a search (via |*|) is + shown with a "/". + +MARK HIGHLIGHTING PALETTES *mark-palette* + +The plugin comes with three predefined palettes: original, extended, and +maximum. You can dynamically toggle between them, e.g. when you need more +marks or a different set of colors. + *:MarkPalette* +:MarkPalette {palette} Highlight existing and future marks with the colors + defined in {palette}. If the new palette contains less + mark groups than the current one, the additional marks + are lost. + You can use |:command-completion| for {palette}. + +See |g:mwDefaultHighlightingPalette| for how to change the default palette, +and |mark-palette-define| for how to add your own custom palettes. + +============================================================================== +INSTALLATION *mark-installation* + +This script is packaged as a|vimball|. If you have the "gunzip" decompressor +in your PATH, simply edit the *.vba.gz package in Vim; otherwise, decompress +the archive first, e.g. using WinZip. Inside Vim, install by sourcing the +vimball or via the |:UseVimball| command. > + vim mark.vba.gz + :so % +To uninstall, use the |:RmVimball| command. + +DEPENDENCIES *mark-dependencies* + +- Requires Vim 7.1 with "matchadd()", or Vim 7.2 or higher. + +============================================================================== +CONFIGURATION *mark-configuration* + +For a permanent configuration, put the following commands into your |vimrc|. + + *mark-colors* *mark-highlight-colors* +This plugin defines 6 mark groups: + 1: Cyan 2:Green 3:Yellow 4:Red 5:Magenta 6:Blue ~ +Higher numbers always take precedence and are displayed above lower ones. + + *g:mwDefaultHighlightingPalette* +Especially if you use GVIM, you can switch to a richer palette of up to 18 +colors: > + let g:mwDefaultHighlightingPalette = 'extended' +Or, if you have both good eyes and display, you can try a palette that defines +27, 58, or even 77 colors, depending on the number of available colors: > + let g:mwDefaultHighlightingPalette = 'maximum' +< +If you like the additional colors, but don't need that many of them, restrict +their number via: > + let g:mwDefaultHighlightingNum = 9 +< + *mark-colors-redefine* +If none of the default highlightings suits you, define your own colors in your +vimrc file (or anywhere before this plugin is sourced), in the following form +(where N = 1..): > + highlight MarkWordN ctermbg=Cyan ctermfg=Black guibg=#8CCBEA guifg=Black +You can also use this form to redefine only some of the default highlightings. +If you want to avoid losing the highlightings on |:colorscheme| commands, you +need to re-apply your highlights on the |ColorScheme| event, similar to how +this plugin does. Or you define the palette not via :highlight commands, but +use the plugin's infrastructure: > + let g:mwDefaultHighlightingPalette = [ + \ { 'ctermbg':'Cyan', 'ctermfg':'Black', 'guibg':'#8CCBEA', 'guifg':'Black' }, + \ ... + \] +< *mark-palette-define* +If you want to switch multiple palettes during runtime, you need to define +them as proper palettes: > + let g:mwPalettes['mypalette'] = [ + \ { 'ctermbg':'Cyan', 'ctermfg':'Black', 'guibg':'#8CCBEA', 'guifg':'Black' }, + \ ... + \] + let g:mwPalettes['other'] = [ ... ] + let g:mwDefaultHighlightingPalette = 'mypalette' +To add your palette to the existing ones, do this after the default palette +has been defined, e.g. in .vim/after/plugin/mark.vim). Alternatively, you can +also completely redefine all available palettes in .vimrc. + +The search type highlighting (in the search message) can be changed via: > + highlight link SearchSpecialSearchType MoreMsg +< + *g:mwHistAdd* +By default, any marked words are also added to the search (/) and input (@) +history; if you don't want that, remove the corresponding symbols from: > + let g:mwHistAdd = '/@' +< + *g:mwAutoLoadMarks* +To enable the automatic restore of marks from a previous Vim session: > + let g:mwAutoLoadMarks = 1 +< *g:mwAutoSaveMarks* +To turn off the automatic persistence of marks across Vim sessions: > + let g:mwAutoSaveMarks = 0 +You can still explicitly save marks via |:MarkSave|. + + *g:mwIgnoreCase* +If you have set 'ignorecase', but want marks to be case-insensitive, you can +override the default behavior of using 'ignorecase' by setting: > + let g:mwIgnoreCase = 0 +< + + *mark-mappings* +You can use different mappings by mapping to the Mark... mappings (use +":map Mark" to list them all) before this plugin is sourced. + +There are no default mappings for toggling all marks and for the |:MarkClear| +command, but you can define some yourself: > + nmap M MarkToggle + nmap N MarkAllClear +< +To remove the default overriding of * and #, use: > + nmap IgnoreMarkSearchNext MarkSearchNext + nmap IgnoreMarkSearchPrev MarkSearchPrev +< + *mark-whitespace-indifferent* +Some people like to create a mark based on the visual selection, like +|v_m|, but have whitespace in the selection match any whitespace when +searching (searching for "hello world" will also find "helloworld" as +well as "hello" at the end of a line, with "world" at the start of the next +line). The Vim Tips Wiki describes such a setup for the built-in search at + http://vim.wikia.com/wiki/Search_for_visually_selected_text +You can achieve the same with the Mark plugin through the following scriptlet: > + function! s:GetVisualSelectionAsLiteralWhitespaceIndifferentPattern() + return substitute(escape(mark#GetVisualSelection(), '\' . '^$.*[~'), '\_s\+', '\\_s\\+', 'g') + endfunction + vnoremap MarkWhitespaceIndifferent :if !mark#DoMark(v:count, GetVisualSelectionAsLiteralWhitespaceIndifferentPattern())execute "normal! \C-\>\C-n>\Esc>"endif +Using this, you can assign a new visual mode mapping * > + vmap * MarkWhitespaceIndifferent +or override the default |v_m| mapping, in case you always want this +behavior: > + vmap IgnoreMarkSet MarkSet + vmap m MarkWhitespaceIndifferent +< +============================================================================== +LIMITATIONS *mark-limitations* + +- If the 'ignorecase' setting is changed, there will be discrepancies between + the highlighted marks and subsequent jumps to marks. +- If {pattern} in a :Mark command contains atoms that change the semantics of + the entire (|/\c|, |/\C|) or following (|/\v|,|/\V|, |/\M|) regular + expression, there may be discrepancies between the highlighted marks and + subsequent jumps to marks. + +KNOWN PROBLEMS *mark-known-problems* + +TODO *mark-todo* + +IDEAS *mark-ideas* + +Taken from an alternative implementation at +http://vim.wikia.com/wiki/Highlight_multiple_words: +- Use keys 1-9 on the numeric keypad to toggle a highlight group number. + +============================================================================== +HISTORY *mark-history* + +2.7.0 04-Jul-2012 +- ENH: Implement :MarkPalette command to switch mark highlighting on-the-fly + during runtime. +- Add "maximum" palette contributed by rockybalboa4. + +2.6.5 24-Jun-2012 +- Don't define the default m and r mappings in select mode, + just visual mode. Thanks to rockybalboa4 for pointing this out. + +2.6.4 23-Apr-2012 +- Allow to override 'ignorecase' setting via g:mwIgnoreCase. Thanks to fanhe + for the idea and sending a patch. + +2.6.3 27-Mar-2012 +- ENH: Allow choosing of palette and limiting of default mark highlight groups + via g:mwDefaultHighlightingPalette and g:mwDefaultHighlightingNum. +- ENH: Offer an extended color palette in addition to the original 6-color one. + Enable this via :let g:mwDefaultHighlightingPalette = "extended" in your + vimrc. + +2.6.2 26-Mar-2012 +- ENH: When a [count] exceeding the number of available mark groups is given, + a summary of marks is given and the user is asked to select a mark group. + This allows to interactively choose a color via 99m. + If you use the |mark-whitespace-indifferent| mappings, *** PLEASE UPDATE THE + vnoremap MarkWhitespaceIndifferent DEFINITION *** +- ENH: Include count of alternative patterns in :Marks list. +- CHG: Use ">" for next mark and "/" for last search in :Marks. + +2.6.1 23-Mar-2012 +- ENH: Add :Marks command that prints all mark highlight groups and their + search patterns, plus information about the current search mark, next mark + group, and whether marks are disabled. +- ENH: Show which mark group a pattern was set / added / removed / cleared. +- FIX: When the cursor is positioned on the current mark, [N]n / + MarkClear with [N] appended the pattern for the current mark (again + and again) instead of clearing it. Must not pass current mark pattern when + [N] is given. +- CHG: Show mark group number in same-mark search and rename search types from + "any-mark", "same-mark", and "new-mark" to the shorter "mark-*", "mark-N", + and "mark-N!", respectively. + +2.6.0 22-Mar-2012 +- ENH: Allow [count] for m and :Mark to add / subtract match to / from + highlight group [count], and use [count]n to clear only highlight + group [count]. This was also requested by Philipp Marek. +- FIX: :Mark and n actually toggled marks back on when they were + already off. Now, they stay off on multiple invocations. Use :call + mark#Toggle() / MarkToggle if you want toggling. + +2.5.3 02-Mar-2012 +- BUG: Version check mistakenly excluded Vim 7.1 versions that do have the + matchadd() function. Thanks to Philipp Marek for sending a patch. + +2.5.2 09-Nov-2011 +Fixed various problems with wrap-around warnings: +- BUG: With a single match and 'wrapscan' set, a search error was issued. +- FIX: Backwards search with single match leads to wrong error message + instead. +- FIX: Wrong logic for determining l:isWrapped lets wrap-around go undetected. + +2.5.1 17-May-2011 +- FIX: == comparison in s:DoMark() leads to wrong regexp (\A vs. \a) being + cleared when 'ignorecase' is set. Use case-sensitive comparison ==# instead. +- Refine :MarkLoad messages +- Add whitespace-indifferent visual mark configuration example. Thanks to Greg + Klein for the suggestion. + +2.5.0 07-May-2011 +- ENH: Add explicit mark persistence via :MarkLoad and :MarkSave commands and + automatic persistence via the g:mwAutoLoadMarks and g:mwAutoSaveMarks + configuration flags. (Request from Mun Johl, 16-Apr-2010) +- Expose toggling of mark display (keeping the mark patterns) via new + MarkToggle mapping. Offer :MarkClear command as a replacement for the + old argumentless :Mark command, which now just disables, but not clears all + marks. + +2.4.4 18-Apr-2011 +- BUG: Include trailing newline character in check for current mark, so that a + mark that matches the entire line (e.g. created by Vm) can be + cleared via n. Thanks to ping for reporting this. +- FIX: On overlapping marks, mark#CurrentMark() returned the lowest, not the + highest visible mark. So on overlapping marks, the one that was not visible + at the cursor position was removed; very confusing! Use reverse iteration + order. +- FIX: To avoid an arbitrary ordering of highlightings when the highlighting + group names roll over, and to avoid order inconsistencies across different + windows and tabs, we assign a different priority based on the highlighting + group. + +2.4.3 16-Apr-2011 +- Avoid losing the mark highlightings on :syn on or :colorscheme commands. + Thanks to Zhou YiChao for alerting me to this issue and suggesting a fix. +- Made the script more robust when somehow no highlightings have been defined + or when the window-local reckoning of match IDs got lost. I had very + occasionally encountered such script errors in the past. +- Made global housekeeping variables script-local, only g:mwHistAdd is used + for configuration. + +2.4.2 14-Jan-2011 (unreleased) +- FIX: Capturing the visual selection could still clobber the blockwise yank + mode of the unnamed register. + +2.4.1 13-Jan-2011 +- FIX: Using a named register for capturing the visual selection on + {Visual}m and {Visual}r clobbered the unnamed register. Now + using the unnamed register. + +2.4.0 13-Jul-2010 +- ENH: The MarkSearch mappings ([*#/?]) add the original cursor + position to the jump list, like the built-in [/?*#nN] commands. This allows + to use the regular jump commands for mark matches, like with regular search + matches. + +2.3.3 19-Feb-2010 +- BUG: Clearing of an accidental zero-width match (e.g. via :Mark \zs) results + in endless loop. Thanks to Andy Wokula for the patch. + +2.3.2 17-Nov-2009 +- BUG: Creation of literal pattern via '\V' in {Visual}m mapping + collided with individual escaping done in m mapping so that an + escaped '\*' would be interpreted as a multi item when both modes are used + for marking. Thanks to Andy Wokula for the patch. + +2.3.1 06-Jul-2009 +- Now working correctly when 'smartcase' is set. All mappings and the :Mark + command use 'ignorecase', but not 'smartcase'. + +2.3.0 04-Jul-2009 +- All jump commands now take an optional [count], so you can quickly skip over + some marks, as with the built-in */# and n/N commands. For this, the entire + core search algorithm has been rewritten. The script's logic has been + simplified through the use of Vim 7 features like Lists. +- Now also printing a Vim-alike search error message when 'nowrapscan' is set. + +2.2.0 02-Jul-2009 +- Split off functions into autoload script. +- Initialization of global variables and autocommands is now done lazily on + the first use, not during loading of the plugin. This reduces Vim startup + time and footprint as long as the functionality isn't yet used. +- Split off documentation into separate help file. Now packaging as VimBall. + + +2.1.0 06-Jun-2009 +- Replaced highlighting via :syntax with matchadd() / matchdelete(). This + requires Vim 7.2 / 7.1 with patches. This method is faster, there are no + more clashes with syntax highlighting (:match always has preference), and + the background highlighting does not disappear under 'cursorline'. +- Using winrestcmd() to fix effects of :windo: By entering a window, its + height is potentially increased from 0 to 1. +- Handling multiple tabs by calling s:UpdateScope() on the TabEnter event. + +2.0.0 01-Jun-2009 +- Now using Vim List for g:mwWord and thus requiring Vim 7. g:mwCycle is now + zero-based, but the syntax groups "MarkWordx" are still one-based. +- Factored :syntax operations out of s:DoMark() and s:UpdateMark() so that + they can all be done in a single :windo. +- Normal mode MarkSet now has the same semantics as its visual mode + cousin: If the cursor is on an existing mark, the mark is removed. + Beforehand, one could only remove a visually selected mark via again + selecting it. Now, one simply can invoke the mapping when on such a mark. + +1.6.1 31-May-2009 +Publication of improved version by Ingo Karkat. +- Now prepending search type ("any-mark", "same-mark", "new-mark") for better + identification. +- Retired the algorithm in s:PrevWord in favor of simply using , which + makes mark.vim work like the * command. At the end of a line, non-keyword + characters may now be marked; the previous algorithm preferred any preceding + word. +- BF: If 'iskeyword' contains characters that have a special meaning in a + regexp (e.g. [.*]), these are now escaped properly. +- Highlighting can now actually be overridden in the vimrc (anywhere _before_ + sourcing this script) by using ':hi def'. +- Added missing setter for re-inclusion guard. + +1.5.0 01-Sep-2008 +Bug fixes and enhancements by Ingo Karkat. +- Added MarkAllClear (without a default mapping), which clears all + marks, even when the cursor is on a mark. +- Added ... mappings for hard-coded \*, \#, \/, \?, * and #, to allow + re-mapping and disabling. Beforehand, there were some ... mappings + and hard-coded ones; now, everything can be customized. +- BF: Using :autocmd without to avoid removing _all_ autocmds for the + BufWinEnter event. (Using a custom :augroup would be even better.) +- BF: Explicitly defining s:current_mark_position; some execution paths left + it undefined, causing errors. +- ENH: Make the match according to the 'ignorecase' setting, like the star + command. +- ENH: The jumps to the next/prev occurrence now print 'search hit BOTTOM, + continuing at TOP" and "Pattern not found:..." messages, like the * and n/N + Vim search commands. +- ENH: Jumps now open folds if the occurrence is inside a closed fold, just + like n/N do. + +1.1.8-g 25-Apr-2008 +Last version published by Yuheng Xie on vim.org. + +1.1.2 22-Mar-2005 +Initial version published by Yuheng Xie on vim.org. + +============================================================================== +Copyright: (C) 2005-2008 Yuheng Xie + (C) 2008-2012 Ingo Karkat +The VIM LICENSE applies to this script; see|copyright|. + +Maintainer: Ingo Karkat +============================================================================== + vim:tw=78:ts=8:ft=help:norl: diff --git a/doc/mbyte.cnx b/doc/mbyte.cnx old mode 100755 new mode 100644 diff --git a/doc/message.cnx b/doc/message.cnx old mode 100755 new mode 100644 diff --git a/doc/mlang.cnx b/doc/mlang.cnx old mode 100755 new mode 100644 diff --git a/doc/motion.cnx b/doc/motion.cnx old mode 100755 new mode 100644 diff --git a/doc/netbeans.cnx b/doc/netbeans.cnx old mode 100755 new mode 100644 diff --git a/doc/options.cnx b/doc/options.cnx old mode 100755 new mode 100644 diff --git a/doc/os_390.cnx b/doc/os_390.cnx old mode 100755 new mode 100644 diff --git a/doc/os_amiga.cnx b/doc/os_amiga.cnx old mode 100755 new mode 100644 diff --git a/doc/os_beos.cnx b/doc/os_beos.cnx old mode 100755 new mode 100644 diff --git a/doc/os_dos.cnx b/doc/os_dos.cnx old mode 100755 new mode 100644 diff --git a/doc/os_mac.cnx b/doc/os_mac.cnx old mode 100755 new mode 100644 diff --git a/doc/os_mint.cnx b/doc/os_mint.cnx old mode 100755 new mode 100644 diff --git a/doc/os_msdos.cnx b/doc/os_msdos.cnx old mode 100755 new mode 100644 diff --git a/doc/os_os2.cnx b/doc/os_os2.cnx old mode 100755 new mode 100644 diff --git a/doc/os_qnx.cnx b/doc/os_qnx.cnx old mode 100755 new mode 100644 diff --git a/doc/os_risc.cnx b/doc/os_risc.cnx old mode 100755 new mode 100644 diff --git a/doc/os_unix.cnx b/doc/os_unix.cnx old mode 100755 new mode 100644 diff --git a/doc/os_vms.cnx b/doc/os_vms.cnx old mode 100755 new mode 100644 diff --git a/doc/os_win32.cnx b/doc/os_win32.cnx old mode 100755 new mode 100644 diff --git a/doc/pattern.cnx b/doc/pattern.cnx old mode 100755 new mode 100644 diff --git a/doc/pi_getscript.cnx b/doc/pi_getscript.cnx old mode 100755 new mode 100644 diff --git a/doc/pi_gzip.cnx b/doc/pi_gzip.cnx old mode 100755 new mode 100644 diff --git a/doc/pi_netrw.cnx b/doc/pi_netrw.cnx old mode 100755 new mode 100644 diff --git a/doc/pi_paren.cnx b/doc/pi_paren.cnx old mode 100755 new mode 100644 diff --git a/doc/pi_spec.cnx b/doc/pi_spec.cnx old mode 100755 new mode 100644 diff --git a/doc/pi_tar.cnx b/doc/pi_tar.cnx old mode 100755 new mode 100644 diff --git a/doc/pi_vimball.cnx b/doc/pi_vimball.cnx old mode 100755 new mode 100644 diff --git a/doc/pi_zip.cnx b/doc/pi_zip.cnx old mode 100755 new mode 100644 diff --git a/doc/print.cnx b/doc/print.cnx old mode 100755 new mode 100644 diff --git a/doc/quickfix.cnx b/doc/quickfix.cnx old mode 100755 new mode 100644 diff --git a/doc/quickref.cnx b/doc/quickref.cnx old mode 100755 new mode 100644 diff --git a/doc/quotes.cnx b/doc/quotes.cnx old mode 100755 new mode 100644 diff --git a/doc/recover.cnx b/doc/recover.cnx old mode 100755 new mode 100644 diff --git a/doc/remote.cnx b/doc/remote.cnx old mode 100755 new mode 100644 diff --git a/doc/repeat.cnx b/doc/repeat.cnx old mode 100755 new mode 100644 diff --git a/doc/rileft.cnx b/doc/rileft.cnx old mode 100755 new mode 100644 diff --git a/doc/russian.cnx b/doc/russian.cnx old mode 100755 new mode 100644 diff --git a/doc/scroll.cnx b/doc/scroll.cnx old mode 100755 new mode 100644 diff --git a/doc/sign.cnx b/doc/sign.cnx old mode 100755 new mode 100644 diff --git a/doc/snipMate.txt b/doc/snipMate.txt old mode 100755 new mode 100644 diff --git a/doc/spell.cnx b/doc/spell.cnx old mode 100755 new mode 100644 diff --git a/doc/sponsor.cnx b/doc/sponsor.cnx old mode 100755 new mode 100644 diff --git a/doc/starting.cnx b/doc/starting.cnx old mode 100755 new mode 100644 diff --git a/doc/syntax.cnx b/doc/syntax.cnx old mode 100755 new mode 100644 diff --git a/doc/tabpage.cnx b/doc/tabpage.cnx old mode 100755 new mode 100644 diff --git a/doc/tags b/doc/tags old mode 100755 new mode 100644 index c992b304..c8399e65 --- a/doc/tags +++ b/doc/tags @@ -1,7 +1,913 @@ - -vimtips.txt ../plugin/vimtips/vimtips.txt /*vimtips.txt* -vimtips.txt ../plugin/vimtips/vimtips.txt /*vimtips.txt* -vimtips.txt ../plugin/vimtips/vimtips.txt /*vimtips.txt* -vimtips.txt ../plugin/vimtips/vimtips.txt /*vimtips.txt* -vimtips.txt ../plugin/vimtips/vimtips.txt /*vimtips.txt* -vimtips.txt ../plugin/vimtips/vimtips.txt /*vimtips.txt* +%charset% HTML.txt /*%charset%* +%date% HTML.txt /*%date%* +%time% HTML.txt /*%time%* +%time12% HTML.txt /*%time12%* +%time24% HTML.txt /*%time24%* +%vimversion% HTML.txt /*%vimversion%* +'NERDChristmasTree' NERD_tree.txt /*'NERDChristmasTree'* +'NERDTreeAutoCenter' NERD_tree.txt /*'NERDTreeAutoCenter'* +'NERDTreeAutoCenterThreshold' NERD_tree.txt /*'NERDTreeAutoCenterThreshold'* +'NERDTreeBookmarksFile' NERD_tree.txt /*'NERDTreeBookmarksFile'* +'NERDTreeCaseSensitiveSort' NERD_tree.txt /*'NERDTreeCaseSensitiveSort'* +'NERDTreeChDirMode' NERD_tree.txt /*'NERDTreeChDirMode'* +'NERDTreeDirArrows' NERD_tree.txt /*'NERDTreeDirArrows'* +'NERDTreeHighlightCursorline' NERD_tree.txt /*'NERDTreeHighlightCursorline'* +'NERDTreeHijackNetrw' NERD_tree.txt /*'NERDTreeHijackNetrw'* +'NERDTreeIgnore' NERD_tree.txt /*'NERDTreeIgnore'* +'NERDTreeMinimalUI' NERD_tree.txt /*'NERDTreeMinimalUI'* +'NERDTreeMouseMode' NERD_tree.txt /*'NERDTreeMouseMode'* +'NERDTreeQuitOnOpen' NERD_tree.txt /*'NERDTreeQuitOnOpen'* +'NERDTreeShowBookmarks' NERD_tree.txt /*'NERDTreeShowBookmarks'* +'NERDTreeShowFiles' NERD_tree.txt /*'NERDTreeShowFiles'* +'NERDTreeShowHidden' NERD_tree.txt /*'NERDTreeShowHidden'* +'NERDTreeShowLineNumbers' NERD_tree.txt /*'NERDTreeShowLineNumbers'* +'NERDTreeSortOrder' NERD_tree.txt /*'NERDTreeSortOrder'* +'NERDTreeStatusline' NERD_tree.txt /*'NERDTreeStatusline'* +'NERDTreeWinPos' NERD_tree.txt /*'NERDTreeWinPos'* +'NERDTreeWinSize' NERD_tree.txt /*'NERDTreeWinSize'* +'loaded_nerd_tree' NERD_tree.txt /*'loaded_nerd_tree'* +'snippets' snipMate.txt /*'snippets'* +.snippet snipMate.txt /*.snippet* +.snippets snipMate.txt /*.snippets* +:ColorSelect HTML.txt /*:ColorSelect* +:HTMLmappings HTML.txt /*:HTMLmappings* +:Mark mark.txt /*:Mark* +:MarkClear mark.txt /*:MarkClear* +:MarkLoad mark.txt /*:MarkLoad* +:MarkPalette mark.txt /*:MarkPalette* +:MarkSave mark.txt /*:MarkSave* +:Marks mark.txt /*:Marks* +:NERDTree NERD_tree.txt /*:NERDTree* +:NERDTreeClose NERD_tree.txt /*:NERDTreeClose* +:NERDTreeFind NERD_tree.txt /*:NERDTreeFind* +:NERDTreeFromBookmark NERD_tree.txt /*:NERDTreeFromBookmark* +:NERDTreeMirror NERD_tree.txt /*:NERDTreeMirror* +:NERDTreeToggle NERD_tree.txt /*:NERDTreeToggle* +:SetIfUnset HTML.txt /*:SetIfUnset* +, zencoding.txt /*,* +/ zencoding.txt /*\/* +A zencoding.txt /*A* +D zencoding.txt /*D* +N zencoding.txt /*N* +a zencoding.txt /*a* +c zencoding.txt /*c* +d zencoding.txt /*d* +i zencoding.txt /*i* +j zencoding.txt /*j* +k zencoding.txt /*k* +n zencoding.txt /*n* +# mark.txt /*#* +/ mark.txt /*\/* +? mark.txt /*?* +m mark.txt /*m* +n mark.txt /*n* +r mark.txt /*r* +star mark.txt /*star* +CHANGE_LOG vimpress.txt /*CHANGE_LOG* +COMMANDS vimpress.txt /*COMMANDS* +CONFIGURE vimpress.txt /*CONFIGURE* +ConqueTerm conque_term.txt /*ConqueTerm* +ConqueTerm_CWInsert conque_term.txt /*ConqueTerm_CWInsert* +ConqueTerm_CloseOnEnd conque_term.txt /*ConqueTerm_CloseOnEnd* +ConqueTerm_CodePage conque_term.txt /*ConqueTerm_CodePage* +ConqueTerm_Color conque_term.txt /*ConqueTerm_Color* +ConqueTerm_ColorMode conque_term.txt /*ConqueTerm_ColorMode* +ConqueTerm_EscKey conque_term.txt /*ConqueTerm_EscKey* +ConqueTerm_ExecFileKey conque_term.txt /*ConqueTerm_ExecFileKey* +ConqueTerm_FastMode conque_term.txt /*ConqueTerm_FastMode* +ConqueTerm_InsertOnEnter conque_term.txt /*ConqueTerm_InsertOnEnter* +ConqueTerm_PromptRegex conque_term.txt /*ConqueTerm_PromptRegex* +ConqueTerm_PyExe conque_term.txt /*ConqueTerm_PyExe* +ConqueTerm_PyVersion conque_term.txt /*ConqueTerm_PyVersion* +ConqueTerm_ReadUnfocused conque_term.txt /*ConqueTerm_ReadUnfocused* +ConqueTerm_SendFileKey conque_term.txt /*ConqueTerm_SendFileKey* +ConqueTerm_SendFunctionKeys conque_term.txt /*ConqueTerm_SendFunctionKeys* +ConqueTerm_SendVisKey conque_term.txt /*ConqueTerm_SendVisKey* +ConqueTerm_SessionSupport conque_term.txt /*ConqueTerm_SessionSupport* +ConqueTerm_StartMessages conque_term.txt /*ConqueTerm_StartMessages* +ConqueTerm_Syntax conque_term.txt /*ConqueTerm_Syntax* +ConqueTerm_TERM conque_term.txt /*ConqueTerm_TERM* +ConqueTerm_ToggleKey conque_term.txt /*ConqueTerm_ToggleKey* +EXAMPLES vimpress.txt /*EXAMPLES* +ExtractSnips() snipMate.txt /*ExtractSnips()* +ExtractSnipsFile() snipMate.txt /*ExtractSnipsFile()* +Filename() snipMate.txt /*Filename()* +HTML-disable-macros HTML.txt /*HTML-disable-macros* +HTML-disable-mappings HTML.txt /*HTML-disable-mappings* +HTML-macros HTML.txt /*HTML-macros* +HTML-macros-disable HTML.txt /*HTML-macros-disable* +HTML-macros-reload HTML.txt /*HTML-macros-reload* +HTML-mappings-disable HTML.txt /*HTML-mappings-disable* +HTML-mappings-reload HTML.txt /*HTML-mappings-reload* +HTML-reload-macros HTML.txt /*HTML-reload-macros* +HTML-reload-mappings HTML.txt /*HTML-reload-mappings* +HTML.txt HTML.txt /*HTML.txt* +HTML.vim HTML.txt /*HTML.vim* +HTMLdecodeSymbol() HTML.txt /*HTMLdecodeSymbol()* +HTMLencodeString() HTML.txt /*HTMLencodeString()* +HTMLgenerateTable() HTML.txt /*HTMLgenerateTable()* +HTMLmap() HTML.txt /*HTMLmap()* +HTMLmapo() HTML.txt /*HTMLmapo()* +HTMLnextInsertPoint() HTML.txt /*HTMLnextInsertPoint()* +HTMLtemplate() HTML.txt /*HTMLtemplate()* +INSTALL vimpress.txt /*INSTALL* +NERDTree NERD_tree.txt /*NERDTree* +NERDTree-? NERD_tree.txt /*NERDTree-?* +NERDTree-A NERD_tree.txt /*NERDTree-A* +NERDTree-B NERD_tree.txt /*NERDTree-B* +NERDTree-C NERD_tree.txt /*NERDTree-C* +NERDTree-C-J NERD_tree.txt /*NERDTree-C-J* +NERDTree-C-K NERD_tree.txt /*NERDTree-C-K* +NERDTree-D NERD_tree.txt /*NERDTree-D* +NERDTree-F NERD_tree.txt /*NERDTree-F* +NERDTree-I NERD_tree.txt /*NERDTree-I* +NERDTree-J NERD_tree.txt /*NERDTree-J* +NERDTree-K NERD_tree.txt /*NERDTree-K* +NERDTree-O NERD_tree.txt /*NERDTree-O* +NERDTree-P NERD_tree.txt /*NERDTree-P* +NERDTree-R NERD_tree.txt /*NERDTree-R* +NERDTree-T NERD_tree.txt /*NERDTree-T* +NERDTree-U NERD_tree.txt /*NERDTree-U* +NERDTree-X NERD_tree.txt /*NERDTree-X* +NERDTree-cd NERD_tree.txt /*NERDTree-cd* +NERDTree-contents NERD_tree.txt /*NERDTree-contents* +NERDTree-e NERD_tree.txt /*NERDTree-e* +NERDTree-f NERD_tree.txt /*NERDTree-f* +NERDTree-gi NERD_tree.txt /*NERDTree-gi* +NERDTree-go NERD_tree.txt /*NERDTree-go* +NERDTree-gs NERD_tree.txt /*NERDTree-gs* +NERDTree-i NERD_tree.txt /*NERDTree-i* +NERDTree-m NERD_tree.txt /*NERDTree-m* +NERDTree-o NERD_tree.txt /*NERDTree-o* +NERDTree-p NERD_tree.txt /*NERDTree-p* +NERDTree-q NERD_tree.txt /*NERDTree-q* +NERDTree-r NERD_tree.txt /*NERDTree-r* +NERDTree-s NERD_tree.txt /*NERDTree-s* +NERDTree-t NERD_tree.txt /*NERDTree-t* +NERDTree-u NERD_tree.txt /*NERDTree-u* +NERDTree-x NERD_tree.txt /*NERDTree-x* +NERDTreeAPI NERD_tree.txt /*NERDTreeAPI* +NERDTreeAbout NERD_tree.txt /*NERDTreeAbout* +NERDTreeAddKeyMap() NERD_tree.txt /*NERDTreeAddKeyMap()* +NERDTreeAddMenuItem() NERD_tree.txt /*NERDTreeAddMenuItem()* +NERDTreeAddMenuSeparator() NERD_tree.txt /*NERDTreeAddMenuSeparator()* +NERDTreeAddSubmenu() NERD_tree.txt /*NERDTreeAddSubmenu()* +NERDTreeBookmarkCommands NERD_tree.txt /*NERDTreeBookmarkCommands* +NERDTreeBookmarkTable NERD_tree.txt /*NERDTreeBookmarkTable* +NERDTreeBookmarks NERD_tree.txt /*NERDTreeBookmarks* +NERDTreeChangelog NERD_tree.txt /*NERDTreeChangelog* +NERDTreeCredits NERD_tree.txt /*NERDTreeCredits* +NERDTreeFunctionality NERD_tree.txt /*NERDTreeFunctionality* +NERDTreeGlobalCommands NERD_tree.txt /*NERDTreeGlobalCommands* +NERDTreeInvalidBookmarks NERD_tree.txt /*NERDTreeInvalidBookmarks* +NERDTreeKeymapAPI NERD_tree.txt /*NERDTreeKeymapAPI* +NERDTreeLicense NERD_tree.txt /*NERDTreeLicense* +NERDTreeMappings NERD_tree.txt /*NERDTreeMappings* +NERDTreeMenu NERD_tree.txt /*NERDTreeMenu* +NERDTreeMenuAPI NERD_tree.txt /*NERDTreeMenuAPI* +NERDTreeOptionDetails NERD_tree.txt /*NERDTreeOptionDetails* +NERDTreeOptionSummary NERD_tree.txt /*NERDTreeOptionSummary* +NERDTreeOptions NERD_tree.txt /*NERDTreeOptions* +NERDTreeRender() NERD_tree.txt /*NERDTreeRender()* +NERD_tree.txt NERD_tree.txt /*NERD_tree.txt* +ResetSnippets() snipMate.txt /*ResetSnippets()* +SetIfUnset() HTML.txt /*SetIfUnset()* +TIPS vimpress.txt /*TIPS* +XHTML-macros HTML.txt /*XHTML-macros* +b:do_xhtml_mappings HTML.txt /*b:do_xhtml_mappings* +b:html_tag_case HTML.txt /*b:html_tag_case* +b:html_template HTML.txt /*b:html_template* +b:no_html_maps HTML.txt /*b:no_html_maps* +browser-control HTML.txt /*browser-control* +browser-control-macos HTML.txt /*browser-control-macos* +browser-control-unix HTML.txt /*browser-control-unix* +browser-control-windows HTML.txt /*browser-control-windows* +character-codes HTML.txt /*character-codes* +character-entities HTML.txt /*character-entities* +conque-config-general conque_term.txt /*conque-config-general* +conque-config-keyboard conque_term.txt /*conque-config-keyboard* +conque-config-unix conque_term.txt /*conque-config-unix* +conque-config-windows conque_term.txt /*conque-config-windows* +conque-term-api conque_term.txt /*conque-term-api* +conque-term-bugs conque_term.txt /*conque-term-bugs* +conque-term-close conque_term.txt /*conque-term-close* +conque-term-contribute conque_term.txt /*conque-term-contribute* +conque-term-esc conque_term.txt /*conque-term-esc* +conque-term-events conque_term.txt /*conque-term-events* +conque-term-feedback conque_term.txt /*conque-term-feedback* +conque-term-gen-usage conque_term.txt /*conque-term-gen-usage* +conque-term-get-instance conque_term.txt /*conque-term-get-instance* +conque-term-input-mode conque_term.txt /*conque-term-input-mode* +conque-term-installation conque_term.txt /*conque-term-installation* +conque-term-misc conque_term.txt /*conque-term-misc* +conque-term-open conque_term.txt /*conque-term-open* +conque-term-options conque_term.txt /*conque-term-options* +conque-term-read conque_term.txt /*conque-term-read* +conque-term-register conque_term.txt /*conque-term-register* +conque-term-requirements conque_term.txt /*conque-term-requirements* +conque-term-send conque_term.txt /*conque-term-send* +conque-term-set-callback conque_term.txt /*conque-term-set-callback* +conque-term-setup conque_term.txt /*conque-term-setup* +conque-term-special-keys conque_term.txt /*conque-term-special-keys* +conque-term-subprocess conque_term.txt /*conque-term-subprocess* +conque-term-usage conque_term.txt /*conque-term-usage* +conque-term-windows conque_term.txt /*conque-term-windows* +conque-term-write conque_term.txt /*conque-term-write* +conque-term-writeln conque_term.txt /*conque-term-writeln* +disable-HTML-macros HTML.txt /*disable-HTML-macros* +disable-HTML-mappings HTML.txt /*disable-HTML-mappings* +g:do_xhtml_mappings HTML.txt /*g:do_xhtml_mappings* +g:force_html_menu HTML.txt /*g:force_html_menu* +g:html_alinkcolor HTML.txt /*g:html_alinkcolor* +g:html_authoremail HTML.txt /*g:html_authoremail* +g:html_authoremail_encoded HTML.txt /*g:html_authoremail_encoded* +g:html_authorname HTML.txt /*g:html_authorname* +g:html_bgcolor HTML.txt /*g:html_bgcolor* +g:html_charset HTML.txt /*g:html_charset* +g:html_default_charset HTML.txt /*g:html_default_charset* +g:html_linkcolor HTML.txt /*g:html_linkcolor* +g:html_map_entity_leader HTML.txt /*g:html_map_entity_leader* +g:html_map_leader HTML.txt /*g:html_map_leader* +g:html_tag_case HTML.txt /*g:html_tag_case* +g:html_tag_case_autodetect HTML.txt /*g:html_tag_case_autodetect* +g:html_template HTML.txt /*g:html_template* +g:html_textcolor HTML.txt /*g:html_textcolor* +g:html_vlinkcolor HTML.txt /*g:html_vlinkcolor* +g:mwAutoLoadMarks mark.txt /*g:mwAutoLoadMarks* +g:mwAutoSaveMarks mark.txt /*g:mwAutoSaveMarks* +g:mwDefaultHighlightingPalette mark.txt /*g:mwDefaultHighlightingPalette* +g:mwHistAdd mark.txt /*g:mwHistAdd* +g:mwIgnoreCase mark.txt /*g:mwIgnoreCase* +g:no_html_map_override HTML.txt /*g:no_html_map_override* +g:no_html_maps HTML.txt /*g:no_html_maps* +g:no_html_menu HTML.txt /*g:no_html_menu* +g:no_html_tab_mapping HTML.txt /*g:no_html_tab_mapping* +g:no_html_toolbar HTML.txt /*g:no_html_toolbar* +g:snippets_dir snipMate.txt /*g:snippets_dir* +g:snips_author snipMate.txt /*g:snips_author* +html- HTML.txt /*html-* +html-CTRL-I HTML.txt /*html-CTRL-I* +html-author-notes HTML.txt /*html-author-notes* +html-commands HTML.txt /*html-commands* +html-configuration HTML.txt /*html-configuration* +html-customization HTML.txt /*html-customization* +html-definition-lists HTML.txt /*html-definition-lists* +html-forms HTML.txt /*html-forms* +html-frames HTML.txt /*html-frames* +html-functions HTML.txt /*html-functions* +html-headers HTML.txt /*html-headers* +html-intro HTML.txt /*html-intro* +html-misc HTML.txt /*html-misc* +html-motion-mappings HTML.txt /*html-motion-mappings* +html-operator-mappings HTML.txt /*html-operator-mappings* +html-smart-tag HTML.txt /*html-smart-tag* +html-tab HTML.txt /*html-tab* +html-tables HTML.txt /*html-tables* +html-tags HTML.txt /*html-tags* +html-template-tokens HTML.txt /*html-template-tokens* +html-tokens HTML.txt /*html-tokens* +html-variables HTML.txt /*html-variables* +i_&! HTML.txt /*i_&!* +i_&# HTML.txt /*i_&#* +i_&& HTML.txt /*i_&&* +i_&' HTML.txt /*i_&'* +i_&+- HTML.txt /*i_&+-* +i_&-- HTML.txt /*i_&--* +i_&. HTML.txt /*i_&.* +i_&/ HTML.txt /*i_&\/* +i_&12 HTML.txt /*i_&12* +i_&14 HTML.txt /*i_&14* +i_&1^ HTML.txt /*i_&1^* +i_&2- HTML.txt /*i_&2-* +i_&2< HTML.txt /*i_&2<* +i_&2> HTML.txt /*i_&2>* +i_&2^ HTML.txt /*i_&2^* +i_&3. HTML.txt /*i_&3.* +i_&34 HTML.txt /*i_&34* +i_&3^ HTML.txt /*i_&3^* +i_&< HTML.txt /*i_&<* +i_& HTML.txt /*i_&* +i_&> HTML.txt /*i_&>* +i_&? HTML.txt /*i_&?* +i_&A' HTML.txt /*i_&A'* +i_&AE HTML.txt /*i_&AE* +i_&A^ HTML.txt /*i_&A^* +i_&A` HTML.txt /*i_&A`* +i_&Al HTML.txt /*i_&Al* +i_&Ao HTML.txt /*i_&Ao* +i_&Aquote HTML.txt /*i_&Aquote* +i_&A~ HTML.txt /*i_&A~* +i_&Be HTML.txt /*i_&Be* +i_&C, HTML.txt /*i_&C,* +i_&Ch HTML.txt /*i_&Ch* +i_&De HTML.txt /*i_&De* +i_&E' HTML.txt /*i_&E'* +i_&E= HTML.txt /*i_&E=* +i_&E^ HTML.txt /*i_&E^* +i_&E` HTML.txt /*i_&E`* +i_&Ep HTML.txt /*i_&Ep* +i_&Equote HTML.txt /*i_&Equote* +i_&Et HTML.txt /*i_&Et* +i_&Ga HTML.txt /*i_&Ga* +i_&I' HTML.txt /*i_&I'* +i_&I^ HTML.txt /*i_&I^* +i_&I` HTML.txt /*i_&I`* +i_&Io HTML.txt /*i_&Io* +i_&Iquote HTML.txt /*i_&Iquote* +i_&Ka HTML.txt /*i_&Ka* +i_&Lm HTML.txt /*i_&Lm* +i_&Mu HTML.txt /*i_&Mu* +i_&Nu HTML.txt /*i_&Nu* +i_&N~ HTML.txt /*i_&N~* +i_&O' HTML.txt /*i_&O'* +i_&O/ HTML.txt /*i_&O\/* +i_&O^ HTML.txt /*i_&O^* +i_&O` HTML.txt /*i_&O`* +i_&Oc HTML.txt /*i_&Oc* +i_&Oquote HTML.txt /*i_&Oquote* +i_&O~ HTML.txt /*i_&O~* +i_&Ph HTML.txt /*i_&Ph* +i_&Pi HTML.txt /*i_&Pi* +i_&Ps HTML.txt /*i_&Ps* +i_&R1 HTML.txt /*i_&R1* +i_&R10 HTML.txt /*i_&R10* +i_&R100 HTML.txt /*i_&R100* +i_&R1000 HTML.txt /*i_&R1000* +i_&R11 HTML.txt /*i_&R11* +i_&R12 HTML.txt /*i_&R12* +i_&R2 HTML.txt /*i_&R2* +i_&R3 HTML.txt /*i_&R3* +i_&R4 HTML.txt /*i_&R4* +i_&R5 HTML.txt /*i_&R5* +i_&R50 HTML.txt /*i_&R50* +i_&R500 HTML.txt /*i_&R500* +i_&R6 HTML.txt /*i_&R6* +i_&R7 HTML.txt /*i_&R7* +i_&R8 HTML.txt /*i_&R8* +i_&R9 HTML.txt /*i_&R9* +i_&Rh HTML.txt /*i_&Rh* +i_&Si HTML.txt /*i_&Si* +i_&Ta HTML.txt /*i_&Ta* +i_&Th HTML.txt /*i_&Th* +i_&U' HTML.txt /*i_&U'* +i_&U^ HTML.txt /*i_&U^* +i_&U` HTML.txt /*i_&U`* +i_&Up HTML.txt /*i_&Up* +i_&Uquote HTML.txt /*i_&Uquote* +i_&Xi HTML.txt /*i_&Xi* +i_&Y' HTML.txt /*i_&Y'* +i_&Y= HTML.txt /*i_&Y=* +i_&Ze HTML.txt /*i_&Ze* +i_&a' HTML.txt /*i_&a'* +i_&a^ HTML.txt /*i_&a^* +i_&a` HTML.txt /*i_&a`* +i_&ae HTML.txt /*i_&ae* +i_&al HTML.txt /*i_&al* +i_&ao HTML.txt /*i_&ao* +i_&aquote HTML.txt /*i_&aquote* +i_&a~ HTML.txt /*i_&a~* +i_&be HTML.txt /*i_&be* +i_&c, HTML.txt /*i_&c,* +i_&cO HTML.txt /*i_&cO* +i_&cbar HTML.txt /*i_&cbar* +i_&ch HTML.txt /*i_&ch* +i_&dA HTML.txt /*i_&dA* +i_&da HTML.txt /*i_&da* +i_&de HTML.txt /*i_&de* +i_&dg HTML.txt /*i_&dg* +i_&e' HTML.txt /*i_&e'* +i_&e^ HTML.txt /*i_&e^* +i_&e` HTML.txt /*i_&e`* +i_&ep HTML.txt /*i_&ep* +i_&equote HTML.txt /*i_&equote* +i_&et HTML.txt /*i_&et* +i_&ga HTML.txt /*i_&ga* +i_&hA HTML.txt /*i_&hA* +i_&ha HTML.txt /*i_&ha* +i_&i' HTML.txt /*i_&i'* +i_&i^ HTML.txt /*i_&i^* +i_&i` HTML.txt /*i_&i`* +i_&io HTML.txt /*i_&io* +i_&iquote HTML.txt /*i_&iquote* +i_&ka HTML.txt /*i_&ka* +i_&lA HTML.txt /*i_&lA* +i_&la HTML.txt /*i_&la* +i_&lm HTML.txt /*i_&lm* +i_&m- HTML.txt /*i_&m-* +i_&mi HTML.txt /*i_&mi* +i_&mu HTML.txt /*i_&mu* +i_&n- HTML.txt /*i_&n-* +i_&nu HTML.txt /*i_&nu* +i_&n~ HTML.txt /*i_&n~* +i_&o' HTML.txt /*i_&o'* +i_&o/ HTML.txt /*i_&o\/* +i_&o^ HTML.txt /*i_&o^* +i_&o` HTML.txt /*i_&o`* +i_&oc HTML.txt /*i_&oc* +i_&og HTML.txt /*i_&og* +i_&oquote HTML.txt /*i_&oquote* +i_&o~ HTML.txt /*i_&o~* +i_&pa HTML.txt /*i_&pa* +i_&ph HTML.txt /*i_&ph* +i_&pi HTML.txt /*i_&pi* +i_&ps HTML.txt /*i_&ps* +i_&pv HTML.txt /*i_&pv* +i_"e HTML.txt /*i_"e* +i_&r1 HTML.txt /*i_&r1* +i_&r10 HTML.txt /*i_&r10* +i_&r100 HTML.txt /*i_&r100* +i_&r1000 HTML.txt /*i_&r1000* +i_&r11 HTML.txt /*i_&r11* +i_&r12 HTML.txt /*i_&r12* +i_&r2 HTML.txt /*i_&r2* +i_&r3 HTML.txt /*i_&r3* +i_&r4 HTML.txt /*i_&r4* +i_&r5 HTML.txt /*i_&r5* +i_&r50 HTML.txt /*i_&r50* +i_&r500 HTML.txt /*i_&r500* +i_&r6 HTML.txt /*i_&r6* +i_&r7 HTML.txt /*i_&r7* +i_&r8 HTML.txt /*i_&r8* +i_&r9 HTML.txt /*i_&r9* +i_&rA HTML.txt /*i_&rA* +i_&rO HTML.txt /*i_&rO* +i_&ra HTML.txt /*i_&ra* +i_&rh HTML.txt /*i_&rh* +i_&se HTML.txt /*i_&se* +i_&sf HTML.txt /*i_&sf* +i_&si HTML.txt /*i_&si* +i_&space HTML.txt /*i_&space* +i_&star HTML.txt /*i_&star* +i_&sz HTML.txt /*i_&sz* +i_&ta HTML.txt /*i_&ta* +i_&th HTML.txt /*i_&th* +i_&tm HTML.txt /*i_&tm* +i_&ts HTML.txt /*i_&ts* +i_&u' HTML.txt /*i_&u'* +i_&uA HTML.txt /*i_&uA* +i_&u^ HTML.txt /*i_&u^* +i_&u` HTML.txt /*i_&u`* +i_&ua HTML.txt /*i_&ua* +i_&uh HTML.txt /*i_&uh* +i_&up HTML.txt /*i_&up* +i_&uquote HTML.txt /*i_&uquote* +i_&x HTML.txt /*i_&x* +i_&xi HTML.txt /*i_&xi* +i_&y' HTML.txt /*i_&y'* +i_&yquote HTML.txt /*i_&yquote* +i_&ze HTML.txt /*i_&ze* +i_3- HTML.txt /*i_3-* +i_;# HTML.txt /*i_;#* +i_;& HTML.txt /*i_;&* +i_;/p HTML.txt /*i_;\/p* +i_;4 HTML.txt /*i_;4* +i_;; HTML.txt /*i_;;* +i_; HTML.txt /*i_;* +i_; HTML.txt /*i_;* +i_;CTRL-I HTML.txt /*i_;CTRL-I* +i_;H1 HTML.txt /*i_;H1* +i_;H2 HTML.txt /*i_;H2* +i_;H3 HTML.txt /*i_;H3* +i_;H4 HTML.txt /*i_;H4* +i_;H5 HTML.txt /*i_;H5* +i_;H6 HTML.txt /*i_;H6* +i_;Hr HTML.txt /*i_;Hr* +i_;aB HTML.txt /*i_;aB* +i_;aC HTML.txt /*i_;aC* +i_;aH HTML.txt /*i_;aH* +i_;aN HTML.txt /*i_;aN* +i_;aT HTML.txt /*i_;aT* +i_;ab HTML.txt /*i_;ab* +i_;ac HTML.txt /*i_;ac* +i_;ad HTML.txt /*i_;ad* +i_;ah HTML.txt /*i_;ah* +i_;an HTML.txt /*i_;an* +i_;at HTML.txt /*i_;at* +i_;bd HTML.txt /*i_;bd* +i_;bh HTML.txt /*i_;bh* +i_;bi HTML.txt /*i_;bi* +i_;bl HTML.txt /*i_;bl* +i_;bo HTML.txt /*i_;bo* +i_;br HTML.txt /*i_;br* +i_;bu HTML.txt /*i_;bu* +i_;ca HTML.txt /*i_;ca* +i_;ce HTML.txt /*i_;ce* +i_;ch HTML.txt /*i_;ch* +i_;ci HTML.txt /*i_;ci* +i_;cm HTML.txt /*i_;cm* +i_;co HTML.txt /*i_;co* +i_;cs HTML.txt /*i_;cs* +i_;ct HTML.txt /*i_;ct* +i_;dd HTML.txt /*i_;dd* +i_;de HTML.txt /*i_;de* +i_;df HTML.txt /*i_;df* +i_;dl HTML.txt /*i_;dl* +i_;dt HTML.txt /*i_;dt* +i_;dv HTML.txt /*i_;dv* +i_;eb HTML.txt /*i_;eb* +i_;em HTML.txt /*i_;em* +i_;fc HTML.txt /*i_;fc* +i_;fi HTML.txt /*i_;fi* +i_;fm HTML.txt /*i_;fm* +i_;fo HTML.txt /*i_;fo* +i_;fr HTML.txt /*i_;fr* +i_;fs HTML.txt /*i_;fs* +i_;h1 HTML.txt /*i_;h1* +i_;h2 HTML.txt /*i_;h2* +i_;h3 HTML.txt /*i_;h3* +i_;h4 HTML.txt /*i_;h4* +i_;h5 HTML.txt /*i_;h5* +i_;h6 HTML.txt /*i_;h6* +i_;he HTML.txt /*i_;he* +i_;hi HTML.txt /*i_;hi* +i_;hr HTML.txt /*i_;hr* +i_;ht HTML.txt /*i_;ht* +i_;iM HTML.txt /*i_;iM* +i_;if HTML.txt /*i_;if* +i_;ii HTML.txt /*i_;ii* +i_;im HTML.txt /*i_;im* +i_;in HTML.txt /*i_;in* +i_;it HTML.txt /*i_;it* +i_;js HTML.txt /*i_;js* +i_;la HTML.txt /*i_;la* +i_;li HTML.txt /*i_;li* +i_;lk HTML.txt /*i_;lk* +i_;ls HTML.txt /*i_;ls* +i_;mE HTML.txt /*i_;mE* +i_;me HTML.txt /*i_;me* +i_;mh HTML.txt /*i_;mh* +i_;mi HTML.txt /*i_;mi* +i_;ms HTML.txt /*i_;ms* +i_;nf HTML.txt /*i_;nf* +i_;ns HTML.txt /*i_;ns* +i_;ob HTML.txt /*i_;ob* +i_;og HTML.txt /*i_;og* +i_;ol HTML.txt /*i_;ol* +i_;op HTML.txt /*i_;op* +i_;pa HTML.txt /*i_;pa* +i_;pm HTML.txt /*i_;pm* +i_;pp HTML.txt /*i_;pp* +i_;pr HTML.txt /*i_;pr* +i_;qu HTML.txt /*i_;qu* +i_;ra HTML.txt /*i_;ra* +i_;re HTML.txt /*i_;re* +i_;s4 HTML.txt /*i_;s4* +i_;sa HTML.txt /*i_;sa* +i_;sb HTML.txt /*i_;sb* +i_;se HTML.txt /*i_;se* +i_;sj HTML.txt /*i_;sj* +i_;sk HTML.txt /*i_;sk* +i_;sm HTML.txt /*i_;sm* +i_;sn HTML.txt /*i_;sn* +i_;sp HTML.txt /*i_;sp* +i_;space HTML.txt /*i_;space* +i_;st HTML.txt /*i_;st* +i_;su HTML.txt /*i_;su* +i_;tH HTML.txt /*i_;tH* +i_;ta HTML.txt /*i_;ta* +i_;tab HTML.txt /*i_;tab* +i_;tb HTML.txt /*i_;tb* +i_;td HTML.txt /*i_;td* +i_;te HTML.txt /*i_;te* +i_;tf HTML.txt /*i_;tf* +i_;th HTML.txt /*i_;th* +i_;ti HTML.txt /*i_;ti* +i_;tr HTML.txt /*i_;tr* +i_;tt HTML.txt /*i_;tt* +i_;tx HTML.txt /*i_;tx* +i_;ul HTML.txt /*i_;ul* +i_;un HTML.txt /*i_;un* +i_CTRL-R_ snipMate.txt /*i_CTRL-R_* +i_html- HTML.txt /*i_html-* +i_html-CTRL-I HTML.txt /*i_html-CTRL-I* +i_html-tab HTML.txt /*i_html-tab* +list-snippets snipMate.txt /*list-snippets* +mark-colors mark.txt /*mark-colors* +mark-colors-redefine mark.txt /*mark-colors-redefine* +mark-configuration mark.txt /*mark-configuration* +mark-dependencies mark.txt /*mark-dependencies* +mark-description mark.txt /*mark-description* +mark-highlight-colors mark.txt /*mark-highlight-colors* +mark-highlighting mark.txt /*mark-highlighting* +mark-history mark.txt /*mark-history* +mark-ideas mark.txt /*mark-ideas* +mark-information mark.txt /*mark-information* +mark-installation mark.txt /*mark-installation* +mark-known-problems mark.txt /*mark-known-problems* +mark-limitations mark.txt /*mark-limitations* +mark-mappings mark.txt /*mark-mappings* +mark-palette mark.txt /*mark-palette* +mark-palette-define mark.txt /*mark-palette-define* +mark-persistence mark.txt /*mark-persistence* +mark-searching mark.txt /*mark-searching* +mark-todo mark.txt /*mark-todo* +mark-usage mark.txt /*mark-usage* +mark-whitespace-indifferent mark.txt /*mark-whitespace-indifferent* +mark.txt mark.txt /*mark.txt* +mark.vim mark.txt /*mark.vim* +multi_snip snipMate.txt /*multi_snip* +n_; HTML.txt /*n_;* +n_;# HTML.txt /*n_;#* +n_;% HTML.txt /*n_;%* +n_;& HTML.txt /*n_;&* +n_;4 HTML.txt /*n_;4* +n_;; HTML.txt /*n_;;* +n_; HTML.txt /*n_;* +n_;CTRL-I HTML.txt /*n_;CTRL-I* +n_;H1 HTML.txt /*n_;H1* +n_;H2 HTML.txt /*n_;H2* +n_;H3 HTML.txt /*n_;H3* +n_;H4 HTML.txt /*n_;H4* +n_;H5 HTML.txt /*n_;H5* +n_;H6 HTML.txt /*n_;H6* +n_;^ HTML.txt /*n_;^* +n_;aB HTML.txt /*n_;aB* +n_;aC HTML.txt /*n_;aC* +n_;aH HTML.txt /*n_;aH* +n_;aN HTML.txt /*n_;aN* +n_;aT HTML.txt /*n_;aT* +n_;ab HTML.txt /*n_;ab* +n_;ac HTML.txt /*n_;ac* +n_;ad HTML.txt /*n_;ad* +n_;ah HTML.txt /*n_;ah* +n_;an HTML.txt /*n_;an* +n_;at HTML.txt /*n_;at* +n_;bd HTML.txt /*n_;bd* +n_;bh HTML.txt /*n_;bh* +n_;bi HTML.txt /*n_;bi* +n_;bl HTML.txt /*n_;bl* +n_;bo HTML.txt /*n_;bo* +n_;bu HTML.txt /*n_;bu* +n_;ca HTML.txt /*n_;ca* +n_;ce HTML.txt /*n_;ce* +n_;ch HTML.txt /*n_;ch* +n_;ci HTML.txt /*n_;ci* +n_;cm HTML.txt /*n_;cm* +n_;co HTML.txt /*n_;co* +n_;cs HTML.txt /*n_;cs* +n_;db-macos HTML.txt /*n_;db-macos* +n_;db-windows HTML.txt /*n_;db-windows* +n_;dd HTML.txt /*n_;dd* +n_;de HTML.txt /*n_;de* +n_;df HTML.txt /*n_;df* +n_;dl HTML.txt /*n_;dl* +n_;dt HTML.txt /*n_;dt* +n_;dv HTML.txt /*n_;dv* +n_;em HTML.txt /*n_;em* +n_;fc HTML.txt /*n_;fc* +n_;ff-macos HTML.txt /*n_;ff-macos* +n_;ff-unix HTML.txt /*n_;ff-unix* +n_;fi HTML.txt /*n_;fi* +n_;fm HTML.txt /*n_;fm* +n_;fo HTML.txt /*n_;fo* +n_;fr HTML.txt /*n_;fr* +n_;fs HTML.txt /*n_;fs* +n_;gc-unix HTML.txt /*n_;gc-unix* +n_;h1 HTML.txt /*n_;h1* +n_;h2 HTML.txt /*n_;h2* +n_;h3 HTML.txt /*n_;h3* +n_;h4 HTML.txt /*n_;h4* +n_;h5 HTML.txt /*n_;h5* +n_;h6 HTML.txt /*n_;h6* +n_;he HTML.txt /*n_;he* +n_;hi HTML.txt /*n_;hi* +n_;ht HTML.txt /*n_;ht* +n_;html HTML.txt /*n_;html* +n_;iM HTML.txt /*n_;iM* +n_;ie HTML.txt /*n_;ie* +n_;if HTML.txt /*n_;if* +n_;im HTML.txt /*n_;im* +n_;in HTML.txt /*n_;in* +n_;it HTML.txt /*n_;it* +n_;lA HTML.txt /*n_;lA* +n_;la HTML.txt /*n_;la* +n_;li HTML.txt /*n_;li* +n_;lk HTML.txt /*n_;lk* +n_;ls HTML.txt /*n_;ls* +n_;ly HTML.txt /*n_;ly* +n_;mE HTML.txt /*n_;mE* +n_;me HTML.txt /*n_;me* +n_;mh HTML.txt /*n_;mh* +n_;mi HTML.txt /*n_;mi* +n_;mo HTML.txt /*n_;mo* +n_;ms HTML.txt /*n_;ms* +n_;ne HTML.txt /*n_;ne* +n_;nf HTML.txt /*n_;nf* +n_;nff-macos HTML.txt /*n_;nff-macos* +n_;nff-unix HTML.txt /*n_;nff-unix* +n_;ngc-unix HTML.txt /*n_;ngc-unix* +n_;nly HTML.txt /*n_;nly* +n_;nmo HTML.txt /*n_;nmo* +n_;nne HTML.txt /*n_;nne* +n_;noa-macos HTML.txt /*n_;noa-macos* +n_;noa-unix HTML.txt /*n_;noa-unix* +n_;ns HTML.txt /*n_;ns* +n_;nsf HTML.txt /*n_;nsf* +n_;nw3 HTML.txt /*n_;nw3* +n_;oa-macos HTML.txt /*n_;oa-macos* +n_;oa-unix HTML.txt /*n_;oa-unix* +n_;ob HTML.txt /*n_;ob* +n_;og HTML.txt /*n_;og* +n_;ol HTML.txt /*n_;ol* +n_;op HTML.txt /*n_;op* +n_;pa HTML.txt /*n_;pa* +n_;pm HTML.txt /*n_;pm* +n_;pp HTML.txt /*n_;pp* +n_;pr HTML.txt /*n_;pr* +n_;qu HTML.txt /*n_;qu* +n_;ra HTML.txt /*n_;ra* +n_;s4 HTML.txt /*n_;s4* +n_;sa HTML.txt /*n_;sa* +n_;sb HTML.txt /*n_;sb* +n_;se HTML.txt /*n_;se* +n_;sf HTML.txt /*n_;sf* +n_;sk HTML.txt /*n_;sk* +n_;sm HTML.txt /*n_;sm* +n_;sn HTML.txt /*n_;sn* +n_;sp HTML.txt /*n_;sp* +n_;st HTML.txt /*n_;st* +n_;star HTML.txt /*n_;star* +n_;tA HTML.txt /*n_;tA* +n_;tH HTML.txt /*n_;tH* +n_;ta HTML.txt /*n_;ta* +n_;tab HTML.txt /*n_;tab* +n_;tb HTML.txt /*n_;tb* +n_;td HTML.txt /*n_;td* +n_;te HTML.txt /*n_;te* +n_;tf HTML.txt /*n_;tf* +n_;tff-macos HTML.txt /*n_;tff-macos* +n_;tff-unix HTML.txt /*n_;tff-unix* +n_;tgc-unix HTML.txt /*n_;tgc-unix* +n_;th HTML.txt /*n_;th* +n_;ti HTML.txt /*n_;ti* +n_;tmo HTML.txt /*n_;tmo* +n_;toa-macos HTML.txt /*n_;toa-macos* +n_;toa-unix HTML.txt /*n_;toa-unix* +n_;tr HTML.txt /*n_;tr* +n_;tsf HTML.txt /*n_;tsf* +n_;tt HTML.txt /*n_;tt* +n_;tx HTML.txt /*n_;tx* +n_;ul HTML.txt /*n_;ul* +n_;un HTML.txt /*n_;un* +n_;w3 HTML.txt /*n_;w3* +reload-HTML-macros HTML.txt /*reload-HTML-macros* +reload-HTML-mappings HTML.txt /*reload-HTML-mappings* +snipMate snipMate.txt /*snipMate* +snipMate-$# snipMate.txt /*snipMate-$#* +snipMate-${#:} snipMate.txt /*snipMate-${#:}* +snipMate-${#} snipMate.txt /*snipMate-${#}* +snipMate-author snipMate.txt /*snipMate-author* +snipMate-commands snipMate.txt /*snipMate-commands* +snipMate-contact snipMate.txt /*snipMate-contact* +snipMate-description snipMate.txt /*snipMate-description* +snipMate-disadvantages snipMate.txt /*snipMate-disadvantages* +snipMate-expandtab snipMate.txt /*snipMate-expandtab* +snipMate-features snipMate.txt /*snipMate-features* +snipMate-filename snipMate.txt /*snipMate-filename* +snipMate-indenting snipMate.txt /*snipMate-indenting* +snipMate-placeholders snipMate.txt /*snipMate-placeholders* +snipMate-remap snipMate.txt /*snipMate-remap* +snipMate-settings snipMate.txt /*snipMate-settings* +snipMate-usage snipMate.txt /*snipMate-usage* +snipMate.txt snipMate.txt /*snipMate.txt* +snippet snipMate.txt /*snippet* +snippet-syntax snipMate.txt /*snippet-syntax* +snippets snipMate.txt /*snippets* +v_;% HTML.txt /*v_;%* +v_;& HTML.txt /*v_;&* +v_;; HTML.txt /*v_;;* +v_;H1 HTML.txt /*v_;H1* +v_;H2 HTML.txt /*v_;H2* +v_;H3 HTML.txt /*v_;H3* +v_;H4 HTML.txt /*v_;H4* +v_;H5 HTML.txt /*v_;H5* +v_;H6 HTML.txt /*v_;H6* +v_;^ HTML.txt /*v_;^* +v_;aB HTML.txt /*v_;aB* +v_;aC HTML.txt /*v_;aC* +v_;aH HTML.txt /*v_;aH* +v_;aN HTML.txt /*v_;aN* +v_;aT HTML.txt /*v_;aT* +v_;ab HTML.txt /*v_;ab* +v_;ac HTML.txt /*v_;ac* +v_;ad HTML.txt /*v_;ad* +v_;ah HTML.txt /*v_;ah* +v_;an HTML.txt /*v_;an* +v_;at HTML.txt /*v_;at* +v_;bd HTML.txt /*v_;bd* +v_;bh HTML.txt /*v_;bh* +v_;bi HTML.txt /*v_;bi* +v_;bl HTML.txt /*v_;bl* +v_;bo HTML.txt /*v_;bo* +v_;bu HTML.txt /*v_;bu* +v_;ca HTML.txt /*v_;ca* +v_;ce HTML.txt /*v_;ce* +v_;ch HTML.txt /*v_;ch* +v_;ci HTML.txt /*v_;ci* +v_;cm HTML.txt /*v_;cm* +v_;co HTML.txt /*v_;co* +v_;cs HTML.txt /*v_;cs* +v_;dd HTML.txt /*v_;dd* +v_;de HTML.txt /*v_;de* +v_;df HTML.txt /*v_;df* +v_;dl HTML.txt /*v_;dl* +v_;dt HTML.txt /*v_;dt* +v_;dv HTML.txt /*v_;dv* +v_;em HTML.txt /*v_;em* +v_;fc HTML.txt /*v_;fc* +v_;fi HTML.txt /*v_;fi* +v_;fm HTML.txt /*v_;fm* +v_;fo HTML.txt /*v_;fo* +v_;fr HTML.txt /*v_;fr* +v_;fs HTML.txt /*v_;fs* +v_;h1 HTML.txt /*v_;h1* +v_;h2 HTML.txt /*v_;h2* +v_;h3 HTML.txt /*v_;h3* +v_;h4 HTML.txt /*v_;h4* +v_;h5 HTML.txt /*v_;h5* +v_;h6 HTML.txt /*v_;h6* +v_;he HTML.txt /*v_;he* +v_;hi HTML.txt /*v_;hi* +v_;ht HTML.txt /*v_;ht* +v_;iM HTML.txt /*v_;iM* +v_;if HTML.txt /*v_;if* +v_;im HTML.txt /*v_;im* +v_;in HTML.txt /*v_;in* +v_;it HTML.txt /*v_;it* +v_;lA HTML.txt /*v_;lA* +v_;la HTML.txt /*v_;la* +v_;li HTML.txt /*v_;li* +v_;lk HTML.txt /*v_;lk* +v_;ls HTML.txt /*v_;ls* +v_;mE HTML.txt /*v_;mE* +v_;me HTML.txt /*v_;me* +v_;mh HTML.txt /*v_;mh* +v_;ms HTML.txt /*v_;ms* +v_;nf HTML.txt /*v_;nf* +v_;ns HTML.txt /*v_;ns* +v_;ob HTML.txt /*v_;ob* +v_;og HTML.txt /*v_;og* +v_;ol HTML.txt /*v_;ol* +v_;op HTML.txt /*v_;op* +v_;pa HTML.txt /*v_;pa* +v_;pm HTML.txt /*v_;pm* +v_;pp HTML.txt /*v_;pp* +v_;pr HTML.txt /*v_;pr* +v_;qu HTML.txt /*v_;qu* +v_;ra HTML.txt /*v_;ra* +v_;sa HTML.txt /*v_;sa* +v_;sb HTML.txt /*v_;sb* +v_;se HTML.txt /*v_;se* +v_;sk HTML.txt /*v_;sk* +v_;sm HTML.txt /*v_;sm* +v_;sn HTML.txt /*v_;sn* +v_;sp HTML.txt /*v_;sp* +v_;st HTML.txt /*v_;st* +v_;star HTML.txt /*v_;star* +v_;tH HTML.txt /*v_;tH* +v_;ta HTML.txt /*v_;ta* +v_;tb HTML.txt /*v_;tb* +v_;td HTML.txt /*v_;td* +v_;te HTML.txt /*v_;te* +v_;tf HTML.txt /*v_;tf* +v_;th HTML.txt /*v_;th* +v_;ti HTML.txt /*v_;ti* +v_;tr HTML.txt /*v_;tr* +v_;tt HTML.txt /*v_;tt* +v_;tx HTML.txt /*v_;tx* +v_;ul HTML.txt /*v_;ul* +v_;un HTML.txt /*v_;un* +v_, zencoding.txt /*v_,* +v_m mark.txt /*v_m* +v_r mark.txt /*v_r* +v_html- HTML.txt /*v_html-* +v_html-CTRL-I HTML.txt /*v_html-CTRL-I* +v_html-tab HTML.txt /*v_html-tab* +vimpress.txt vimpress.txt /*vimpress.txt* +zencoding zencoding.txt /*zencoding* +zencoding-balance-tag-inward zencoding.txt /*zencoding-balance-tag-inward* +zencoding-balance-tag-outward zencoding.txt /*zencoding-balance-tag-outward* +zencoding-code-pretty zencoding.txt /*zencoding-code-pretty* +zencoding-complete-tag zencoding.txt /*zencoding-complete-tag* +zencoding-contents zencoding.txt /*zencoding-contents* +zencoding-customize zencoding.txt /*zencoding-customize* +zencoding-customize-keymappings zencoding.txt /*zencoding-customize-keymappings* +zencoding-define-tags-behavior zencoding.txt /*zencoding-define-tags-behavior* +zencoding-expandabbr zencoding.txt /*zencoding-expandabbr* +zencoding-goto-next-point zencoding.txt /*zencoding-goto-next-point* +zencoding-goto-previous-point zencoding.txt /*zencoding-goto-previous-point* +zencoding-indent-size zencoding.txt /*zencoding-indent-size* +zencoding-install zencoding.txt /*zencoding-install* +zencoding-introduction zencoding.txt /*zencoding-introduction* +zencoding-links zencoding.txt /*zencoding-links* +zencoding-make-anchor-url zencoding.txt /*zencoding-make-anchor-url* +zencoding-merge-lines zencoding.txt /*zencoding-merge-lines* +zencoding-quoted-text-url zencoding.txt /*zencoding-quoted-text-url* +zencoding-remove-tag zencoding.txt /*zencoding-remove-tag* +zencoding-split-join-tag zencoding.txt /*zencoding-split-join-tag* +zencoding-todo zencoding.txt /*zencoding-todo* +zencoding-toggle-comment zencoding.txt /*zencoding-toggle-comment* +zencoding-tutorial zencoding.txt /*zencoding-tutorial* +zencoding-update-image-size zencoding.txt /*zencoding-update-image-size* +zencoding-wrap-wtih-abbreviation zencoding.txt /*zencoding-wrap-wtih-abbreviation* +zencoding.txt zencoding.txt /*zencoding.txt* diff --git a/doc/tags-cn b/doc/tags-cn old mode 100755 new mode 100644 index dc19d1f8..24df40ed --- a/doc/tags-cn +++ b/doc/tags-cn @@ -6041,7 +6041,6 @@ hebrew.txt hebrew.cnx /*hebrew.txt* help helphelp.cnx /*help* help-context help.cnx /*help-context* help-summary usr_02.cnx /*help-summary* -help-tags tags-cn 1 help-translated helphelp.cnx /*help-translated* help-writing helphelp.cnx /*help-writing* help-xterm-window helphelp.cnx /*help-xterm-window* diff --git a/doc/tagsrch.cnx b/doc/tagsrch.cnx old mode 100755 new mode 100644 diff --git a/doc/term.cnx b/doc/term.cnx old mode 100755 new mode 100644 diff --git a/doc/tips.cnx b/doc/tips.cnx old mode 100755 new mode 100644 diff --git a/doc/todo.cnx b/doc/todo.cnx old mode 100755 new mode 100644 diff --git a/doc/uganda.cnx b/doc/uganda.cnx old mode 100755 new mode 100644 diff --git a/doc/undo.cnx b/doc/undo.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_01.cnx b/doc/usr_01.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_02.cnx b/doc/usr_02.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_03.cnx b/doc/usr_03.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_04.cnx b/doc/usr_04.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_05.cnx b/doc/usr_05.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_06.cnx b/doc/usr_06.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_07.cnx b/doc/usr_07.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_08.cnx b/doc/usr_08.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_09.cnx b/doc/usr_09.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_10.cnx b/doc/usr_10.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_11.cnx b/doc/usr_11.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_12.cnx b/doc/usr_12.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_20.cnx b/doc/usr_20.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_21.cnx b/doc/usr_21.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_22.cnx b/doc/usr_22.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_23.cnx b/doc/usr_23.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_24.cnx b/doc/usr_24.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_25.cnx b/doc/usr_25.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_26.cnx b/doc/usr_26.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_27.cnx b/doc/usr_27.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_28.cnx b/doc/usr_28.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_29.cnx b/doc/usr_29.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_30.cnx b/doc/usr_30.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_31.cnx b/doc/usr_31.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_32.cnx b/doc/usr_32.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_40.cnx b/doc/usr_40.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_41.cnx b/doc/usr_41.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_42.cnx b/doc/usr_42.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_43.cnx b/doc/usr_43.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_44.cnx b/doc/usr_44.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_45.cnx b/doc/usr_45.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_90.cnx b/doc/usr_90.cnx old mode 100755 new mode 100644 diff --git a/doc/usr_toc.cnx b/doc/usr_toc.cnx old mode 100755 new mode 100644 diff --git a/doc/various.cnx b/doc/various.cnx old mode 100755 new mode 100644 diff --git a/doc/version4.cnx b/doc/version4.cnx old mode 100755 new mode 100644 diff --git a/doc/version5.cnx b/doc/version5.cnx old mode 100755 new mode 100644 diff --git a/doc/version6.cnx b/doc/version6.cnx old mode 100755 new mode 100644 diff --git a/doc/version7.cnx b/doc/version7.cnx old mode 100755 new mode 100644 diff --git a/doc/vi_diff.cnx b/doc/vi_diff.cnx old mode 100755 new mode 100644 diff --git a/doc/vimpress.txt b/doc/vimpress.txt old mode 100755 new mode 100644 diff --git a/doc/visual.cnx b/doc/visual.cnx old mode 100755 new mode 100644 diff --git a/doc/windows.cnx b/doc/windows.cnx old mode 100755 new mode 100644 diff --git a/doc/wmgraphviz.txt b/doc/wmgraphviz.txt new file mode 100644 index 00000000..606def1a --- /dev/null +++ b/doc/wmgraphviz.txt @@ -0,0 +1,143 @@ +*wmgraphviz.txt* Plugin for Graphviz +*wmgraphviz* + +This plugin provides: +- Compilation for Graphviz dot-files. +- Omnicompletion for the attribute names and specific values. +- Extensions for working with SnipMate and dot2tex. + +============================================================================== + +|wmgraphviz-requirements| REQUIREMENTS +|wmgraphviz-mappings| MAPPINGS +|wmgraphviz-commands| COMMANDS +|wmgraphviz-omnicompletion| OMNICOMPLETION +|wmgraphviz-settings| SETTINGS + +|wmgraphviz-snipmate| SNIPMATE +|wmgraphviz-dot2tex| DOT2TEX + +|wmgraphviz-contact| CONTACT + +============================================================================== + +REQUIREMENTS *wmgraphviz-requirements* + +This plugin expects Graphviz dot (http://www.graphviz.org/) to be installed in +the path. If dot is installed, but not found an explicit path can be given +by means of the |g:WMGraphviz_dot| setting. + +Installing instruction for Graphviz are available on +http://www.graphviz.org/Download.php. Mac users can also install from +http://www.macports.org. + +============================================================================== + +MAPPINGS *wmgraphviz-mappings* + +ll |:GraphvizCompile| + Create the graph in the same directory as the current dot-file. + +lv |:GraphvizView| + View the graph in the current dot-file. + +============================================================================== + +COMMANDS *wmgraphviz-commands* + +*:GraphvizCompile* + Create the graph in the same directory as the current dot-file. + +*:GraphvizCompilePDF* + Same as |:GraphvizCompile| but ignores the |g:WMGraphviz_output| + setting and uses 'pdf' as output setting. + +*:GraphvizCompilePS* + Same as |:GraphvizCompile| but ignores the |g:WMGraphviz_output| + setting and uses 'ps' as output setting. + +*:GraphvizView* + View the graph in the current dot-file. + +============================================================================== + +OMNICOMPLETION *wmgraphviz-omnicompletion* + +The plugin supports Vim omnicompletion () for attributes of nodes, +edges and the graph and for the values for some of these attributes (e.g., +shapes, styles, fonts, colors, and more). + +For example, > + node[sh +completes to > + node[shape= +And, > + node[shape=pl +completes to > + node[shape=plaintext + +============================================================================== + +SETTINGS *wmgraphviz-settings* + +*g:WMGraphviz_dot* Default: 'dot' + + Set the path to dot (or neato). + +*g:WMGraphviz_output* Default: 'pdf' + + Set the output for dot. For acceptable formats see + http://www.graphviz.org/doc/info/output.html. + +*g:WMGraphviz_viewer* Default: 'open'/'xdg-open' + + Set the viewer application. Default is 'open' on Mac and 'xdg-open' + on *NIX. If 'xdg-open' is not found, the plugin will fall back to + 'acroread' for 'pdf' and 'gv' for 'ps' files. + +*g:WMGraphviz_shelloptions* Default: '' + + Set the options passed on to dot. + +============================================================================== + +SNIPMATE *wmgraphviz-snipmate* + +If the snipMate plugin (http://www.vim.org/scripts/script.php?script_id=2540) +is installed, there are some snippets provided. For example > + graph + digraph + +============================================================================== + +DOT2TEX *wmgraphviz-dot2tex* + +If the dot2tex binary (http://www.fauskes.net/code/dot2tex/) is installed, +you can use an extra command: + +*:GraphvizCompileLaTeX* + Compiles the dot-file to a LaTeX-file. + +Available keymapping: + +lt |:GraphvizCompileLaTeX| + +Available settings: + +*g:WMGraphviz_tex2dot* Default: 'dot2tex' + + Path to dot2tex binary. + +*g:WMGraphviz_tex2dotoptions* Default: '-tmath' + + Options for tex2dot. + +============================================================================== + +CONTACT *wmgraphviz-contact* + +Plugin by Wannes Meert, mailto:wannesm@gmail.com, 2010. + +============================================================================== + +vim:tw=78:ts=8:sw=8:ft=help:norl:noet: diff --git a/doc/workshop.cnx b/doc/workshop.cnx old mode 100755 new mode 100644 diff --git a/doc/zencoding.txt b/doc/zencoding.txt old mode 100755 new mode 100644 diff --git a/ftdetect/markdown.vim b/ftdetect/markdown.vim new file mode 100644 index 00000000..8e10a063 --- /dev/null +++ b/ftdetect/markdown.vim @@ -0,0 +1,2 @@ +" Markdown +autocmd BufNewFile,BufRead *.{md,mkd,mkdn,mark*} set filetype=markdown diff --git a/ftplugin/dot.vim b/ftplugin/dot.vim new file mode 100644 index 00000000..9b33d39a --- /dev/null +++ b/ftplugin/dot.vim @@ -0,0 +1,491 @@ +" wmgraphviz.vim plugin +" Author: Wannes Meert +" Email: wannesm@gmail.com +" Version: 1.0.3 + +if exists('s:loaded') + finish +endif +let s:loaded = 1 + +" Settings + +if !exists('g:WMGraphviz_dot') + let g:WMGraphviz_dot = 'dot' +endif + +if !exists('g:WMGraphviz_output') + let g:WMGraphviz_output = 'pdf' +endif + +if !exists('g:WMGraphviz_viewer') + if has('mac') + let g:WMGraphviz_viewer = 'open' + elseif has ('unix') + if executable('xdg-open') + let g:WMGraphviz_viewer = 'xdg-open' + else + if g:WMGraphviz_output == 'ps' + let g:WMGraphviz_viewer = 'gv' + else + let g:WMGraphviz_viewer = 'acroread' + endif + endif + else + let g:WMGraphviz_viewer = 'open' + endif +endif + +if !exists('g:WMGraphviz_shelloptions') + let g:WMGraphviz_shelloptions = '' +endif + +if !exists('g:WMGraphviz_dot2tex') + let g:WMGraphviz_dot2tex = 'dot2tex' +endif + +if !exists('g:WMGraphviz_dot2texoptions') + let g:WMGraphviz_dot2texoptions = '-tmath' +endif + +" Compilation +" If argument given, use it as output +fu! GraphvizCompile(...) + if !executable(g:WMGraphviz_dot) + echoerr 'The "'.g:WMGraphviz_dot.'" executable was not found.' + return + endif + + let s:output = a:0 >= 1 ? a:1 : g:WMGraphviz_output + let s:logfile = expand('%:p:r').'.log' + " DOT command uses -O option instead of -o because this doesn't work if + " there are multiple graphs in the file. + let cmd = '!('.g:WMGraphviz_dot.' -O -T'.s:output.' '.g:WMGraphviz_shelloptions.' '.shellescape(expand('%:p')).' 2>&1) | tee '.shellescape(expand('%:p:r').'.log') + exec cmd + exec 'cfile '.escape(s:logfile, ' \"!?''') +endfu + +fu! GraphvizCompileToLaTeX(...) + if !executable(g:WMGraphviz_dot2tex) + echoerr 'The "'.g:WMGraphviz_dot2tex.'" executable was not found.' + return + endif + + let s:logfile = expand('%:p:r').'.log' + " DOT command uses -O option instead of -o because this doesn't work if + " there are multiple graphs in the file. + let cmd = '!(('.g:WMGraphviz_dot2tex.' '.g:WMGraphviz_dot2texoptions.' '.shellescape(expand('%:p')).' > '.shellescape(expand('%:p:r').'.tex').') 2>&1) | tee '.shellescape(expand('%:p:r').'.log') + exec cmd + exec 'cfile '.escape(s:logfile, ' \"!?''') +endfu + +" Viewing +fu! GraphvizShow() + if !filereadable(expand('%:p').'.'.g:WMGraphviz_output) + call GraphvizCompile() + endif + + if !executable(g:WMGraphviz_viewer) + echoerr 'Viewer program not found: "'.g:WMGraphviz_viewer.'"' + return + endif + + exec '!'.g:WMGraphviz_viewer.' '.shellescape(expand('%:p').'.'.g:WMGraphviz_output) +endfu + +" Available functions +com! -nargs=0 GraphvizCompile :call GraphvizCompile() +com! -nargs=0 GraphvizCompilePS :call GraphvizCompile('ps') +com! -nargs=0 GraphvizCompilePDF :call GraphvizCompile('pdf') +com! -nargs=0 GraphvizCompileToLaTeX :call GraphvizCompileToLaTeX() +com! -nargs=0 GraphvizShow : call GraphvizShow() + +" Mappings +nmap ll :GraphvizCompile +nmap lt :GraphvizCompileToLaTeX +nmap lv :GraphvizShow + +" Completion +let s:completion_type = '' + +" Completion dictionaries + +let s:attrs = [ +\ {'word': 'arrowhead=', 'menu': 'Style of arrowhead at head end [E]'}, +\ {'word': 'arrowsize=', 'menu': 'Scaling factor for arrowheads [E]'}, +\ {'word': 'arrowtail=', 'menu': 'Style of arrowhead at tail end [E]'}, +\ {'word': 'bgcolor=', 'menu': 'Background color [G]'}, +\ {'word': 'color=', 'menu': 'Node shape/edge/cluster color [E,G,N]'}, +\ {'word': 'comment=', 'menu': 'Any string [E,G,N]'}, +\ {'word': 'compound=', 'menu': 'Allow edges between clusters [G]'}, +\ {'word': 'concentrate=', 'menu': 'Enables edge concentrators [G]'}, +\ {'word': 'constraints=', 'menu': 'Use edge to affect node ranking [E]'}, +\ {'word': 'decorate=', 'menu': 'If set, line between label and edge [E]'}, +\ {'word': 'dir=', 'menu': 'Direction of edge [E]'}, +\ {'word': 'distortion=', 'menu': 'Node distortion [N]'}, +\ {'word': 'fillcolor=', 'menu': 'Node/cluster fill color [G,N]'}, +\ {'word': 'fixedsize=', 'menu': 'Label text has no effect on node size [N]'}, +\ {'word': 'fontcolor=', 'menu': 'Font face color [E,G,N]'}, +\ {'word': 'fontname=', 'menu': 'Font family [E,G,N]'}, +\ {'word': 'fontsize=', 'menu': 'Point size of label [E,G,N]'}, +\ {'word': 'group=', 'menu': 'Name of node group [N]'}, +\ {'word': 'headlabel=', 'menu': 'Label placed near head of edge [E]'}, +\ {'word': 'headport=', 'menu': 'Location of label [E]'}, +\ {'word': 'height=', 'menu': 'Height in inches [N]'}, +\ {'word': 'label=', 'menu': 'Any string [E,N]'}, +\ {'word': 'labelangle=', 'menu': 'Ange in degrees [E]'}, +\ {'word': 'labeldistance=', 'menu': 'Scaling factor for distance for head or tail label [E]'}, +\ {'word': 'labelfontcolor=','menu': 'Type face color for head and tail labels [E]'}, +\ {'word': 'labelfontname=', 'menu': 'Font family for head and tail labels [E]'}, +\ {'word': 'labelfontsize=', 'menu': 'Point size for head and tail labels [E]'}, +\ {'word': 'labeljust=', 'menu': 'Label justficiation [G]'}, +\ {'word': 'labelloc=', 'menu': 'Label vertical justficiation [G]'}, +\ {'word': 'layer=', 'menu': 'Overlay range [E,N]'}, +\ {'word': 'lhead=', 'menu': '[E]'}, +\ {'word': 'ltail=', 'menu': '[E]'}, +\ {'word': 'minlen=', 'menu': '[E]'}, +\ {'word': 'nodesep=', 'menu': 'Separation between nodes, in inches [G]'}, +\ {'word': 'orientation=', 'menu': 'Node rotation angle [N]'}, +\ {'word': 'peripheries=', 'menu': 'Number of node boundaries [N]'}, +\ {'word': 'rank=', 'menu': '[G]'}, +\ {'word': 'rankdir=', 'menu': '[G]'}, +\ {'word': 'ranksep=', 'menu': 'Separation between ranks, in inches [G]'}, +\ {'word': 'ratio=', 'menu': 'Aspect ratio [G]'}, +\ {'word': 'regular=', 'menu': 'Force polygon to be regular [N]'}, +\ {'word': 'rotate=', 'menu': 'If 90, set orientation to landscape [G]'}, +\ {'word': 'samehead=', 'menu': '[E]'}, +\ {'word': 'sametail=', 'menu': '[E]'}, +\ {'word': 'shape=', 'menu': 'Node shape [N]'}, +\ {'word': 'shapefile=', 'menu': 'External custom shape file [N]'}, +\ {'word': 'sides=', 'menu': 'Number of sides for shape=polygon [N]'}, +\ {'word': 'skew=', 'menu': 'Skewing node for for shape=polygon [N]'}, +\ {'word': 'style=', 'menu': 'Graphics options [E,N]'}, +\ {'word': 'taillabel=', 'menu': 'Label placed near tail of edge [E]'}, +\ {'word': 'tailport=', 'menu': '[E]'}, +\ {'word': 'weight=', 'menu': 'Integer cost of stretching an edge [E]'}, +\ {'word': 'width=', 'menu': 'width in inches [N]'} +\ ] + +let s:shapes = [ +\ {'word': 'box'}, +\ {'word': 'circle'}, +\ {'word': 'diamond'}, +\ {'word': 'doublecircle'}, +\ {'word': 'doubleoctagon'}, +\ {'word': 'egg'}, +\ {'word': 'ellipse'}, +\ {'word': 'hexagon'}, +\ {'word': 'house'}, +\ {'word': 'invhouse'}, +\ {'word': 'invtrapezium'}, +\ {'word': 'invtriangle'}, +\ {'word': 'octagon'}, +\ {'word': 'plaintext'}, +\ {'word': 'parallelogram'}, +\ {'word': 'point'}, +\ {'word': 'polygon'}, +\ {'word': 'record'}, +\ {'word': 'traingle'}, +\ {'word': 'trapezium'}, +\ {'word': 'tripleoctagon'}, +\ {'word': 'Mcircle'}, +\ {'word': 'Mdiamon'}, +\ {'word': 'Mrecord'}, +\ {'word': 'Msquare'} +\ ] + +let s:arrowheads = [ +\ {'word': 'normal'}, +\ {'word': 'dot'}, +\ {'word': 'odot'}, +\ {'word': 'inv'}, +\ {'word': 'invdot'}, +\ {'word': 'invodot'}, +\ {'word': 'none'} +\ ] + +" More colornames are available but make the menu too long. +let s:colors = [ +\ {'word': '#000000'}, +\ {'word': '0.0 0.0 0.0'}, +\ {'word': 'beige'}, +\ {'word': 'black'}, +\ {'word': 'blue'}, +\ {'word': 'brown'}, +\ {'word': 'cyan'}, +\ {'word': 'gray'}, +\ {'word': 'gray[0-100]'}, +\ {'word': 'green'}, +\ {'word': 'magenta'}, +\ {'word': 'orange'}, +\ {'word': 'orchid'}, +\ {'word': 'red'}, +\ {'word': 'violet'}, +\ {'word': 'white'}, +\ {'word': 'yellow'} +\ ] + +let s:fonts = [ +\ {'abbr': 'Courier' , 'word': '"Courier"'}, +\ {'abbr': 'Courier-Bold' , 'word': '"Courier-Bold"'}, +\ {'abbr': 'Courier-Oblique' , 'word': '"Courier-Oblique"'}, +\ {'abbr': 'Helvetica' , 'word': '"Helvetica"'}, +\ {'abbr': 'Helvetica-Bold' , 'word': '"Helvetica-Bold"'}, +\ {'abbr': 'Helvetica-Narrow' , 'word': '"Helvetica-Narrow"'}, +\ {'abbr': 'Helvetica-Oblique', 'word': '"Helvetica-Oblique"'}, +\ {'abbr': 'Symbol' , 'word': '"Symbol"'}, +\ {'abbr': 'Times-Bold' , 'word': '"Times-Bold"'}, +\ {'abbr': 'Times-BoldItalic' , 'word': '"Times-BoldItalic"'}, +\ {'abbr': 'Times-Italic' , 'word': '"Times-Italic"'}, +\ {'abbr': 'Times-Roman' , 'word': '"Times-Roman"'} +\ ] + +let s:style = [ +\ {'word': 'bold'}, +\ {'word': 'dotted'}, +\ {'word': 'filled'} +\ ] + +let s:dir = [ +\ {'word': 'forward'}, +\ {'word': 'back'}, +\ {'word': 'both'}, +\ {'word': 'none'} +\ ] + +let s:port = [ +\ {'word': '_', 'menu': 'appropriate side or center (default)' }, +\ {'word': 'c', 'menu': 'center'}, +\ {'word': 'e'}, +\ {'word': 'n'}, +\ {'word': 'ne'}, +\ {'word': 'nw'}, +\ {'word': 's'}, +\ {'word': 'se'}, +\ {'word': 'sw'}, +\ {'word': 'w'}, +\ ] + +let s:rank = [ +\ {'word': 'same'}, +\ {'word': 'min'}, +\ {'word': 'max'}, +\ {'word': 'source'}, +\ {'word': 'sink'} +\ ] + +let s:rankdir = [ +\ {'word': 'BT'}, +\ {'word': 'LR'}, +\ {'word': 'RL'}, +\ {'word': 'TB'}, +\ ] + +let s:just = [ +\ {'word': 'centered'}, +\ {'word': 'l'}, +\ {'word': 'r'} +\ ] + +let s:loc = [ +\ {'word': 'b', 'menu': 'bottom'}, +\ {'word': 'c', 'menu': 'center'}, +\ {'word': 't', 'menu': 'top'}, +\ ] + +let s:boolean = [ +\ {'word': 'true'}, +\ {'word': 'false'} +\ ] + +fu! GraphvizComplete(findstart, base) + "echomsg 'findstart='.a:findstart.', base='.a:base + if a:findstart + " return the starting point of the word + let line = getline('.') + let pos = col('.') - 1 + while pos > 0 && line[pos - 1] !~ '=\|,\|\[\|\s' + let pos -= 1 + endwhile + let withspacepos = pos + if line[withspacepos - 1] =~ '\s' + while withspacepos > 0 && line[withspacepos - 1] !~ '=\|,\|\[' + let withspacepos -= 1 + endwhile + endif + + if line[withspacepos - 1] == '=' + " label=...? + let labelpos = withspacepos - 1 + " ignore spaces + while labelpos > 0 && line[labelpos - 1] =~ '\s' + let labelpos -= 1 + let withspacepos -= 1 + endwhile + while labelpos > 0 && line[labelpos - 1] =~ '[a-z]' + let labelpos -= 1 + endwhile + let labelstr=strpart(line, labelpos, withspacepos - 1 - labelpos) + + if labelstr == 'shape' + let s:completion_type = 'shape' + elseif labelstr =~ 'fontname' + let s:completion_type = 'font' + elseif labelstr =~ 'color' + let s:completion_type = 'color' + elseif labelstr == 'arrowhead' + let s:completion_type = 'arrowhead' + elseif labelstr == 'rank' + let s:completion_type = 'rank' + elseif labelstr == 'port' + let s:completion_type = 'port' + elseif labelstr == 'rankdir' + let s:completion_type = 'rankdir' + elseif labelstr == 'style' + let s:completion_type = 'style' + elseif labelstr == 'labeljust' + let s:completion_type = 'just' + elseif labelstr == 'fixedsize' || labelstr == 'regular' || labelstr == 'constraint' || labelstr == 'labelfloat' || labelstr == 'center' || labelstr == 'compound' || labelstr == 'concentrate' + let s:completion_type = 'boolean' + elseif labelstr == 'labelloc' + let s:completion_type = 'loc' + else + let s:completion_type = '' + endif + elseif line[withspacepos - 1] =~ ',\|\[' + " attr + let attrstr=line[0:withspacepos - 1] + " skip spaces + while line[withspacepos] =~ '\s' + let withspacepos += 1 + endwhile + + if attrstr =~ '^\s*node' + let s:completion_type = 'attrnode' + elseif attrstr =~ '^\s*edge' + let s:completion_type = 'attredge' + elseif attrstr =~ '\( -> \)\|\( -- \)' + let s:completion_type = 'attredge' + elseif attrstr =~ '^\s*graph' + let s:completion_type = 'attrgraph' + else + let s:completion_type = 'attrnode' + endif + else + let s:completion_type = '' + endif + + return pos + else + " return suggestions in an array + let suggestions = [] + + if s:completion_type == 'shape' + for entry in s:shapes + if entry.word =~ '^'.escape(a:base, '/') + call add(suggestions, entry) + endif + endfor + elseif s:completion_type == 'arrowhead' + for entry in s:arrowheads + if entry.word =~ '^'.escape(a:base, '/') + call add(suggestions, entry) + endif + endfor + elseif s:completion_type == 'boolean' + for entry in s:boolean + if entry.word =~ '^'.escape(a:base, '/') + call add(suggestions, entry) + endif + endfor + elseif s:completion_type == 'font' + for entry in s:fonts + if entry.word =~ '^'.escape(a:base, '/') + call add(suggestions, entry) + endif + endfor + elseif s:completion_type == 'color' + for entry in s:colors + if entry.word =~ '^'.escape(a:base, '/') + call add(suggestions, entry) + endif + endfor + elseif s:completion_type == 'rank' + for entry in s:rank + if entry.word =~ '^'.escape(a:base, '/') + call add(suggestions, entry) + endif + endfor + elseif s:completion_type == 'rankdir' + for entry in s:rankdir + if entry.word =~ '^'.escape(a:base, '/') + call add(suggestions, entry) + endif + endfor + elseif s:completion_type == 'style' + for entry in s:style + if entry.word =~ '^'.escape(a:base, '/') + call add(suggestions, entry) + endif + endfor + elseif s:completion_type == 'port' + for entry in s:port + if entry.word =~ '^'.escape(a:base, '/') + call add(suggestions, entry) + endif + endfor + elseif s:completion_type == 'just' + for entry in s:just + if entry.word =~ '^'.escape(a:base, '/') + call add(suggestions, entry) + endif + endfor + elseif s:completion_type == 'loc' + for entry in s:loc + if entry.word =~ '^'.escape(a:base, '/') + call add(suggestions, entry) + endif + endfor + elseif s:completion_type == 'attr' + for entry in s:attrs + if entry.word =~ '^'.escape(a:base, '/') + call add(suggestions, entry) + endif + endfor + elseif s:completion_type == 'attrnode' + for entry in s:attrs + if entry.word =~ '^'.escape(a:base, '/') && entry.menu =~ '\[.*N.*\]' + call add(suggestions, entry) + endif + endfor + elseif s:completion_type == 'attredge' + for entry in s:attrs + if entry.word =~ '^'.escape(a:base, '/') && entry.menu =~ '\[.*E.*\]' + call add(suggestions, entry) + endif + endfor + elseif s:completion_type == 'attrgraph' + for entry in s:attrs + if entry.word =~ '^'.escape(a:base, '/') && entry.menu =~ '\[.*G.*\]' + call add(suggestions, entry) + endif + endfor + endif + if !has('gui_running') + redraw! + endif + return suggestions + endif +endfu + +setlocal omnifunc=GraphvizComplete + +" Quickfix list + +setlocal errorformat=%EError:\ %f:%l:%m,%+Ccontext:\ %.%#,%WWarning:\ %m + +" Comments + +set commentstring="// %s" + + diff --git a/ftplugin/python/pyflakes.vim b/ftplugin/python/pyflakes.vim old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/LICENSE b/ftplugin/python/pyflakes/LICENSE old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/NEWS.txt b/ftplugin/python/pyflakes/NEWS.txt old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/bin/pyflakes b/ftplugin/python/pyflakes/bin/pyflakes old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/__init__.py b/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/__init__.py old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/checker.py b/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/checker.py old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/messages.py b/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/messages.py old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/scripts/__init__.py b/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/scripts/__init__.py old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/scripts/pyflakes.py b/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/scripts/pyflakes.py old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/__init__.py b/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/__init__.py old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/harness.py b/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/harness.py old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/test_imports.py b/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/test_imports.py old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/test_other.py b/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/test_other.py old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/test_script.py b/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/test_script.py old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/test_undefined_names.py b/ftplugin/python/pyflakes/build/lib.linux-x86_64-2.7/pyflakes/test/test_undefined_names.py old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/build/scripts-2.7/pyflakes b/ftplugin/python/pyflakes/build/scripts-2.7/pyflakes old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/pyflakes/__init__.py b/ftplugin/python/pyflakes/pyflakes/__init__.py old mode 100755 new mode 100644 diff --git a/ftplugin/python/pyflakes/pyflakes/__init__.pyc b/ftplugin/python/pyflakes/pyflakes/__init__.pyc old mode 100755 new mode 100644 index 6cc56f20d9f389994c70d559785c75e3ef217739..206bae0a25b20397073902d9299cc957985e1f9e GIT binary patch delta 41 wcmdnSxQCIQ`7|tWA3=9nV8Tq-X`nic_hUO;vk)eK`{u6UO0rTGr$N&HU delta 35 qcmdnPxQ&sW`7*l%mdL;Va69 z)lA2Zl$BDF2vKaTMaD)c`~mm3e(v)-_uP9r(U|d#jf&~hntCM0^z8|OqaG+bYviV1YkDi)WGilD=g-E zK?Hs04g<`)_Q52;>8}F&^K-!D3EC<6l1B)>D@=e*IEsRDU8CcoIe>Y_c>^w|(TZzL zt_up5%p;svdML*lrMg!E<|lVC=v;7P*#+Plb$P&W3;yxcCd$hTp0CUY@q%8wF}beO zy?z2PKUT#-x<;A4J&Dd|zI8Bkf;Z|nLA2mm|0DWyjs(KUr>5pp$<_WhEd^S@$Y^YD q%>>nTnru5l>7(rr2rqWr1I$~U@2EAt>W-s@$L3xa@O7H*^Zf$E&hE^6XczOW1HEVoE$zGoJj6V=`8W&4)NIFk+RNe4E<_yF>!dVyqIIeR$h&m?h1h zfnCcP{>4~=1?1u#!cJJVOm-G|j9nsMG#k5wvY0=1iQQr;SS2=Rh+E?D$twvftXd}L zN+x5K*eod(!-idEpMo@wm{(H%im3&ZSQ1p2a5!wWY8<8(P(TK$RbohNeyGNZBi!}1 z`Z1J)(&=P&?HcS7XS7#gN`P$MuhWNBV)HazH7vexbT!}1secTM49GAELo7)M6eK4N zZCEg^0m=B8DPS=SPIDFJlqW<4K%90{(?ZwICpP)N1= k-@q=hBH%h!iOnYhKVWz8X2y^&I6P?=p@Ch`Yat6PotJwDyBeE4*4zRqWX*XiK`c(q>?V8p9kN(is^DMGw>wCCaW nm&xX25&Q{eohV+LHN-M;+PqM_3Xjc`<0T4kOB+uXlGFhJ>y_n` delta 667 zcmca*yw8Z8`77L%v5nqiYL*(}Z`hC@p=I}R)33_Z-K*E+XZlFF&AXSp`}d-hZZ(rUL0ByMQ~_&D1s{@ djl^(h*(8>U)s`yEFgYl(1XB={;?_y(006t +" +" Dependencies: +" - SearchSpecial.vim autoload script (optional, for improved search messages). +" +" Version: 2.7.0 +" Changes: +" 04-Jul-2012, Ingo Karkat +" - ENH: Handle on-the-fly change of mark highlighting via mark#ReInit(), which +" truncates / expands s:pattern and corrects the indices. Also, w:mwMatch List +" size mismatches must be handled in s:MarkMatch(). +" +" 23-Apr-2012, Ingo Karkat + fanhe +" - Force case via \c / \C instead of temporarily unsetting 'smartcase'. +" - Allow to override 'ignorecase' setting via g:mwIgnoreCase. Thanks to fanhe +" for the idea and sending a patch. +" +" 26-Mar-2012, Ingo Karkat +" - ENH: When a [count] exceeding the number of available mark groups is given, +" a summary of marks is given and the user is asked to select a mark group. +" This allows to interactively choose a color via 99m. +" - ENH: Include count of alternative patterns in :Marks list. +" - CHG: Use ">" for next mark and "/" for last search in :Marks. +" +" 23-Mar-2012, Ingo Karkat +" - ENH: Add :Marks command that prints all mark highlight groups and their +" search patterns, plus information about the current search mark, next mark +" group, and whether marks are disabled. +" - ENH: Show which mark group a pattern was set / added / removed / cleared. +" - Refactoring: Store index into s:pattern instead of pattern itself in +" s:lastSearch. For that, mark#CurrentMark() now additionally returns the +" index. +" - CHG: Show mark group number in same-mark search and rename search types from +" "any-mark", "same-mark", and "new-mark" to the shorter "mark-*", "mark-N", +" and "mark-N!", respectively. +" +" 22-Mar-2012, Ingo Karkat +" - ENH: Allow [count] for m and :Mark to add / subtract match to / from +" highlight group [count], and use [count]n to clear only highlight +" group [count]. This was also requested by Philipp Marek. +" - FIX: :Mark and n actually toggled marks back on when they were +" already off. Now, they stay off on multiple invocations. Use :call +" mark#Toggle() / MarkToggle if you want toggling. +" +" 09-Nov-2011, Ingo Karkat +" - BUG: With a single match and 'wrapscan' set, a search error was issued +" instead of the wrap message. Add check for l:isStuckAtCurrentMark && +" l:isWrapped in the no-match part of s:Search(). +" - FIX: In backwards search with single match, the :break short-circuits the +" l:isWrapped logic, resets l:line and therefore also confuses the logic and +" leads to wrong error message instead of wrap message. Don't reset l:line, +" set l:isWrapped instead. +" - FIX: Wrong logic for determining l:isWrapped lets wrap-around go undetected +" when v:count >= number of total matches. [l:startLine, l:startCol] must +" be updated on every iteration, and should therefore be named [l:prevLine, +" l:prevCol]. +" +" 17-May-2011, Ingo Karkat +" - Make s:GetVisualSelection() public to allow use in suggested +" MarkSpaceIndifferent vmap. +" - FIX: == comparison in s:DoMark() leads to wrong regexp (\A vs. \a) being +" cleared when 'ignorecase' is set. Use case-sensitive comparison ==# instead. +" +" 10-May-2011, Ingo Karkat +" - Refine :MarkLoad messages: Differentiate between nonexistent and empty +" g:MARK_MARKS; add note when marks are disabled. +" +" 06-May-2011, Ingo Karkat +" - Also print status message on :MarkClear to be consistent with :MarkToggle. +" +" 21-Apr-2011, Ingo Karkat +" - Implement toggling of mark display (keeping the mark patterns, unlike the +" clearing of marks), determined by s:enable. s:DoMark() now toggles on empty +" regexp, affecting the \n mapping and :Mark. Introduced +" s:EnableAndMarkScope() wrapper to correctly handle the highlighting updates +" depending on whether marks were previously disabled. +" - Implement persistence of s:enable via g:MARK_ENABLED. +" - Generalize s:Enable() and combine with intermediate s:Disable() into +" s:MarkEnable(), which also performs the persistence of s:enabled. +" - Implement lazy-loading of disabled persistent marks via g:mwDoDeferredLoad +" flag passed from plugin/mark.vim. +" +" 20-Apr-2011, Ingo Karkat +" - Extract setting of s:pattern into s:SetPattern() and implement the automatic +" persistence there. +" +" 19-Apr-2011, Ingo Karkat +" - ENH: Add enabling functions for mark persistence: mark#Load() and +" mark#ToPatternList(). +" - Implement :MarkLoad and :MarkSave commands in mark#LoadCommand() and +" mark#SaveCommand(). +" - Remove superfluous update autocmd on VimEnter: Persistent marks trigger the +" update themselves, same for :Mark commands which could potentially be issued +" e.g. in .vimrc. Otherwise, when no marks are defined after startup, the +" autosource script isn't even loaded yet, so the autocmd on the VimEnter +" event isn't yet defined. +" +" 18-Apr-2011, Ingo Karkat +" - BUG: Include trailing newline character in check for current mark, so that a +" mark that matches the entire line (e.g. created by Vm) can be +" cleared via n. Thanks to ping for reporting this. +" - Minor restructuring of mark#MarkCurrentWord(). +" - FIX: On overlapping marks, mark#CurrentMark() returned the lowest, not the +" highest visible mark. So on overlapping marks, the one that was not visible +" at the cursor position was removed; very confusing! Use reverse iteration +" order. +" - FIX: To avoid an arbitrary ordering of highlightings when the highlighting +" group names roll over, and to avoid order inconsistencies across different +" windows and tabs, we assign a different priority based on the highlighting +" group. +" - Rename s:cycleMax to s:markNum; the previous name was too +" implementation-focused and off-by-one with regards to the actual value. +" +" 16-Apr-2011, Ingo Karkat +" - Move configuration variable g:mwHistAdd to plugin/mark.vim (as is customary) +" and make the remaining g:mw... variables script-local, as these contain +" internal housekeeping information that does not need to be accessible by the +" user. +" - Add :MarkSave warning if 'viminfo' doesn't enable global variable +" persistence. +" +" 15-Apr-2011, Ingo Karkat +" - Robustness: Move initialization of w:mwMatch from mark#UpdateMark() to +" s:MarkMatch(), where the variable is actually used. I had encountered cases +" where it w:mwMatch was undefined when invoked through mark#DoMark() -> +" s:MarkScope() -> s:MarkMatch(). This can be forced by :unlet w:mwMatch +" followed by :Mark foo. +" - Robustness: Checking for s:markNum == 0 in mark#DoMark(), trying to +" re-detect the mark highlightings and finally printing an error instead of +" choking. This can happen when somehow no mark highlightings are defined. +" +" 14-Jan-2011, Ingo Karkat +" - FIX: Capturing the visual selection could still clobber the blockwise yank +" mode of the unnamed register. +" +" 13-Jan-2011, Ingo Karkat +" - FIX: Using a named register for capturing the visual selection on +" {Visual}m and {Visual}r clobbered the unnamed register. Now +" using the unnamed register. +" +" 13-Jul-2010, Ingo Karkat +" - ENH: The MarkSearch mappings ([*#/?]) add the original cursor +" position to the jump list, like the built-in [/?*#nN] commands. This allows +" to use the regular jump commands for mark matches, like with regular search +" matches. +" +" 19-Feb-2010, Andy Wokula +" - BUG: Clearing of an accidental zero-width match (e.g. via :Mark \zs) results +" in endless loop. Thanks to Andy Wokula for the patch. +" +" 17-Nov-2009, Ingo Karkat + Andy Wokula +" - BUG: Creation of literal pattern via '\V' in {Visual}m mapping +" collided with individual escaping done in m mapping so that an +" escaped '\*' would be interpreted as a multi item when both modes are used +" for marking. Replaced \V with s:EscapeText() to be consistent. Replaced the +" (overly) generic mark#GetVisualSelectionEscaped() with +" mark#GetVisualSelectionAsRegexp() and +" mark#GetVisualSelectionAsLiteralPattern(). Thanks to Andy Wokula for the +" patch. +" +" 06-Jul-2009, Ingo Karkat +" - Re-wrote s:AnyMark() in functional programming style. +" - Now resetting 'smartcase' before the search, this setting should not be +" considered for *-command-alike searches and cannot be supported because all +" mark patterns are concatenated into one large regexp, anyway. +" +" 04-Jul-2009, Ingo Karkat +" - Re-wrote s:Search() to handle v:count: +" - Obsoleted s:current_mark_position; mark#CurrentMark() now returns both the +" mark text and start position. +" - s:Search() now checks for a jump to the current mark during a backward +" search; this eliminates a lot of logic at its calling sites. +" - Reverted negative logic at calling sites; using empty() instead of != "". +" - Now passing a:isBackward instead of optional flags into s:Search() and +" around its callers. +" - ':normal! zv' moved from callers into s:Search(). +" - Removed delegation to SearchSpecial#ErrorMessage(), because the fallback +" implementation is perfectly fine and the SearchSpecial routine changed its +" output format into something unsuitable anyway. +" - Using descriptive text instead of "@" (and appropriate highlighting) when +" querying for the pattern to mark. +" +" 02-Jul-2009, Ingo Karkat +" - Split off functions into autoload script. + +"- functions ------------------------------------------------------------------ + +silent! call SearchSpecial#DoesNotExist() " Execute a function to force autoload. +if exists('*SearchSpecial#WrapMessage') + function! s:WrapMessage( searchType, searchPattern, isBackward ) + redraw + call SearchSpecial#WrapMessage(a:searchType, a:searchPattern, a:isBackward) + endfunction + function! s:EchoSearchPattern( searchType, searchPattern, isBackward ) + call SearchSpecial#EchoSearchPattern(a:searchType, a:searchPattern, a:isBackward) + endfunction +else + function! s:Trim( message ) + " Limit length to avoid "Hit ENTER" prompt. + return strpart(a:message, 0, (&columns / 2)) . (len(a:message) > (&columns / 2) ? "..." : "") + endfunction + function! s:WrapMessage( searchType, searchPattern, isBackward ) + redraw + let v:warningmsg = printf('%s search hit %s, continuing at %s', a:searchType, (a:isBackward ? 'TOP' : 'BOTTOM'), (a:isBackward ? 'BOTTOM' : 'TOP')) + echohl WarningMsg + echo s:Trim(v:warningmsg) + echohl None + endfunction + function! s:EchoSearchPattern( searchType, searchPattern, isBackward ) + let l:message = (a:isBackward ? '?' : '/') . a:searchPattern + echohl SearchSpecialSearchType + echo a:searchType + echohl None + echon s:Trim(l:message) + endfunction +endif + +function! s:EscapeText( text ) + return substitute( escape(a:text, '\' . '^$.*[~'), "\n", '\\n', 'ge' ) +endfunction +function! s:IsIgnoreCase( expr ) + return ((exists('g:mwIgnoreCase') ? g:mwIgnoreCase : &ignorecase) && a:expr !~# '\\\@') + if ! empty(l:cword) + let l:regexp = s:EscapeText(l:cword) + " The star command only creates a \ search pattern if the + " actually only consists of keyword characters. + if l:cword =~# '^\k\+$' + let l:regexp = '\<' . l:regexp . '\>' + endif + endif + endif + return (empty(l:regexp) ? 0 : mark#DoMark(a:groupNum, l:regexp)) +endfunction + +function! mark#GetVisualSelection() + let save_clipboard = &clipboard + set clipboard= " Avoid clobbering the selection and clipboard registers. + let save_reg = getreg('"') + let save_regmode = getregtype('"') + silent normal! gvy + let res = getreg('"') + call setreg('"', save_reg, save_regmode) + let &clipboard = save_clipboard + return res +endfunction +function! mark#GetVisualSelectionAsLiteralPattern() + return s:EscapeText(mark#GetVisualSelection()) +endfunction +function! mark#GetVisualSelectionAsRegexp() + return substitute(mark#GetVisualSelection(), '\n', '', 'g') +endfunction + +" Manually input a regular expression. +function! mark#MarkRegex( regexpPreset ) + call inputsave() + echohl Question + let l:regexp = input('Input pattern to mark: ', a:regexpPreset) + echohl None + call inputrestore() + if ! empty(l:regexp) + call mark#DoMark(0, l:regexp) + endif +endfunction + +function! s:Cycle( ... ) + let l:currentCycle = s:cycle + let l:newCycle = (a:0 ? a:1 : s:cycle) + 1 + let s:cycle = (l:newCycle < s:markNum ? l:newCycle : 0) + return l:currentCycle +endfunction +function! s:FreeGroupIndex() + let i = 0 + while i < s:markNum + if empty(s:pattern[i]) + return i + endif + let i += 1 + endwhile + return -1 +endfunction + +" Set match / clear matches in the current window. +function! s:MarkMatch( indices, expr ) + if ! exists('w:mwMatch') + let w:mwMatch = repeat([0], s:markNum) + elseif len(w:mwMatch) != s:markNum + " The number of marks has changed. + if len(w:mwMatch) > s:markNum + " Truncate the matches. + for l:match in filter(w:mwMatch[s:markNum : ], 'v:val > 0') + silent! call matchdelete(l:match) + endfor + let w:mwMatch = w:mwMatch[0 : (s:markNum - 1)] + else + " Expand the matches. + let w:mwMatch += repeat([0], (s:markNum - len(w:mwMatch))) + endif + endif + + for l:index in a:indices + if w:mwMatch[l:index] > 0 + silent! call matchdelete(w:mwMatch[l:index]) + let w:mwMatch[l:index] = 0 + endif + endfor + + if ! empty(a:expr) + let l:index = a:indices[0] " Can only set one index for now. + + " Info: matchadd() does not consider the 'magic' (it's always on), + " 'ignorecase' and 'smartcase' settings. + " Make the match according to the 'ignorecase' setting, like the star command. + " (But honor an explicit case-sensitive regexp via the /\C/ atom.) + let l:expr = (s:IsIgnoreCase(a:expr) ? '\c' : '') . a:expr + + " To avoid an arbitrary ordering of highlightings, we assign a different + " priority based on the highlight group, and ensure that the highest + " priority is -10, so that we do not override the 'hlsearch' of 0, and still + " allow other custom highlightings to sneak in between. + let l:priority = -10 - s:markNum + 1 + l:index + + let w:mwMatch[l:index] = matchadd('MarkWord' . (l:index + 1), l:expr, l:priority) + endif +endfunction +" Initialize mark colors in a (new) window. +function! mark#UpdateMark() + let i = 0 + while i < s:markNum + if ! s:enabled || empty(s:pattern[i]) + call s:MarkMatch([i], '') + else + call s:MarkMatch([i], s:pattern[i]) + endif + let i += 1 + endwhile +endfunction +" Set / clear matches in all windows. +function! s:MarkScope( indices, expr ) + let l:currentWinNr = winnr() + + " By entering a window, its height is potentially increased from 0 to 1 (the + " minimum for the current window). To avoid any modification, save the window + " sizes and restore them after visiting all windows. + let l:originalWindowLayout = winrestcmd() + + noautocmd windo call s:MarkMatch(a:indices, a:expr) + execute l:currentWinNr . 'wincmd w' + silent! execute l:originalWindowLayout +endfunction +" Update matches in all windows. +function! mark#UpdateScope() + let l:currentWinNr = winnr() + + " By entering a window, its height is potentially increased from 0 to 1 (the + " minimum for the current window). To avoid any modification, save the window + " sizes and restore them after visiting all windows. + let l:originalWindowLayout = winrestcmd() + + noautocmd windo call mark#UpdateMark() + execute l:currentWinNr . 'wincmd w' + silent! execute l:originalWindowLayout +endfunction + +function! s:MarkEnable( enable, ...) + if s:enabled != a:enable + " En-/disable marks and perform a full refresh in all windows, unless + " explicitly suppressed by passing in 0. + let s:enabled = a:enable + if g:mwAutoSaveMarks + let g:MARK_ENABLED = s:enabled + endif + + if ! a:0 || ! a:1 + call mark#UpdateScope() + endif + endif +endfunction +function! s:EnableAndMarkScope( indices, expr ) + if s:enabled + " Marks are already enabled, we just need to push the changes to all + " windows. + call s:MarkScope(a:indices, a:expr) + else + call s:MarkEnable(1) + endif +endfunction + +" Toggle visibility of marks, like :nohlsearch does for the regular search +" highlighting. +function! mark#Toggle() + if s:enabled + call s:MarkEnable(0) + echo 'Disabled marks' + else + call s:MarkEnable(1) + + let l:markCnt = len(filter(copy(s:pattern), '! empty(v:val)')) + echo 'Enabled' (l:markCnt > 0 ? l:markCnt . ' ' : '') . 'marks' + endif +endfunction + + +" Mark or unmark a regular expression. +function! s:SetPattern( index, pattern ) + let s:pattern[a:index] = a:pattern + + if g:mwAutoSaveMarks + call s:SavePattern() + endif +endfunction +function! mark#ClearAll() + let i = 0 + let indices = [] + while i < s:markNum + if ! empty(s:pattern[i]) + call s:SetPattern(i, '') + call add(indices, i) + endif + let i += 1 + endwhile + let s:lastSearch = -1 + +" Re-enable marks; not strictly necessary, since all marks have just been +" cleared, and marks will be re-enabled, anyway, when the first mark is added. +" It's just more consistent for mark persistence. But save the full refresh, as +" we do the update ourselves. + call s:MarkEnable(0, 0) + + call s:MarkScope(l:indices, '') + + if len(indices) > 0 + echo 'Cleared all' len(indices) 'marks' + else + echo 'All marks cleared' + endif +endfunction +function! s:SetMark( index, regexp, ... ) + if a:0 + if s:lastSearch == a:index + let s:lastSearch = a:1 + endif + endif + call s:SetPattern(a:index, a:regexp) + call s:EnableAndMarkScope([a:index], a:regexp) +endfunction +function! s:ClearMark( index ) + " A last search there is reset. + call s:SetMark(a:index, '', -1) +endfunction +function! s:EchoMark( groupNum, regexp ) + call s:EchoSearchPattern('mark-' . a:groupNum, a:regexp, 0) +endfunction +function! s:EchoMarkCleared( groupNum ) + echohl SearchSpecialSearchType + echo 'mark-' . a:groupNum + echohl None + echon ' cleared' +endfunction +function! s:EchoMarksDisabled() + echo 'All marks disabled' +endfunction +function! mark#DoMark( groupNum, ...) + if s:markNum <= 0 + " Uh, somehow no mark highlightings were defined. Try to detect them again. + call mark#Init() + if s:markNum <= 0 + " Still no mark highlightings; complain. + let v:errmsg = 'No mark highlightings defined' + echohl ErrorMsg + echomsg v:errmsg + echohl None + return 0 + endif + endif + + let l:groupNum = a:groupNum + if l:groupNum > s:markNum + " This highlight group does not exist. + let l:groupNum = mark#QueryMarkGroupNum() + if l:groupNum < 1 || l:groupNum > s:markNum + return 0 + endif + endif + + let regexp = (a:0 ? a:1 : '') + if empty(regexp) + if l:groupNum == 0 + " Disable all marks. + call s:MarkEnable(0) + call s:EchoMarksDisabled() + else + " Clear the mark represented by the passed highlight group number. + call s:ClearMark(l:groupNum - 1) + call s:EchoMarkCleared(l:groupNum) + endif + + return 1 + endif + + if l:groupNum == 0 + " Clear the mark if it has been marked. + let i = 0 + while i < s:markNum + if regexp ==# s:pattern[i] + call s:ClearMark(i) + call s:EchoMarkCleared(i + 1) + return 1 + endif + let i += 1 + endwhile + else + " Add / subtract the pattern as an alternative to the mark represented + " by the passed highlight group number. + let existingPattern = s:pattern[l:groupNum - 1] + if ! empty(existingPattern) + " Split only on \|, but not on \\|. + let alternatives = split(existingPattern, '\%(\%(^\|[^\\]\)\%(\\\\\)*\\\)\@= 0 + call histadd('/', regexp) + endif + if stridx(g:mwHistAdd, '@') >= 0 + call histadd('@', regexp) + endif + + if l:groupNum == 0 + let i = s:FreeGroupIndex() + if i != -1 + " Choose an unused highlight group. The last search is kept untouched. + call s:Cycle(i) + call s:SetMark(i, regexp) + else + " Choose a highlight group by cycle. A last search there is reset. + let i = s:Cycle() + call s:SetMark(i, regexp, -1) + endif + else + let i = l:groupNum - 1 + " Use and extend the passed highlight group. A last search is updated + " and thereby kept active. + call s:SetMark(i, regexp, i) + endif + + call s:EchoMark(i + 1, regexp) + return 1 +endfunction + +" Return [mark text, mark start position, mark index] of the mark under the +" cursor (or ['', [], -1] if there is no mark). +" The mark can include the trailing newline character that concludes the line, +" but marks that span multiple lines are not supported. +function! mark#CurrentMark() + let line = getline('.') . "\n" + + " Highlighting groups with higher numbers take precedence over lower numbers, + " and therefore its marks appear "above" other marks. To retrieve the visible + " mark in case of overlapping marks, we need to check from highest to lowest + " highlight group. + let i = s:markNum - 1 + while i >= 0 + if ! empty(s:pattern[i]) + let matchPattern = (s:IsIgnoreCase(s:pattern[i]) ? '\c' : '\C') . s:pattern[i] + " Note: col() is 1-based, all other indexes zero-based! + let start = 0 + while start >= 0 && start < strlen(line) && start < col('.') + let b = match(line, matchPattern, start) + let e = matchend(line, matchPattern, start) + if b < col('.') && col('.') <= e + return [s:pattern[i], [line('.'), (b + 1)], i] + endif + if b == e + break + endif + let start = e + endwhile + endif + let i -= 1 + endwhile + return ['', [], -1] +endfunction + +" Search current mark. +function! mark#SearchCurrentMark( isBackward ) + let [l:markText, l:markPosition, l:markIndex] = mark#CurrentMark() + if empty(l:markText) + if s:lastSearch == -1 + call mark#SearchAnyMark(a:isBackward) + let s:lastSearch = mark#CurrentMark()[2] + else + call s:Search(s:pattern[s:lastSearch], a:isBackward, [], 'mark-' . (s:lastSearch + 1)) + endif + else + call s:Search(l:markText, a:isBackward, l:markPosition, 'mark-' . (l:markIndex + 1) . (l:markIndex ==# s:lastSearch ? '' : '!')) + let s:lastSearch = l:markIndex + endif +endfunction + +function! s:ErrorMessage( searchType, searchPattern, isBackward ) + if &wrapscan + let v:errmsg = a:searchType . ' not found: ' . a:searchPattern + else + let v:errmsg = printf('%s search hit %s without match for: %s', a:searchType, (a:isBackward ? 'TOP' : 'BOTTOM'), a:searchPattern) + endif + echohl ErrorMsg + echomsg v:errmsg + echohl None +endfunction + +" Wrapper around search() with additonal search and error messages and "wrapscan" warning. +function! s:Search( pattern, isBackward, currentMarkPosition, searchType ) + let l:save_view = winsaveview() + + " searchpos() obeys the 'smartcase' setting; however, this setting doesn't + " make sense for the mark search, because all patterns for the marks are + " concatenated as branches in one large regexp, and because patterns that + " result from the *-command-alike mappings should not obey 'smartcase' (like + " the * command itself), anyway. If the :Mark command wants to support + " 'smartcase', it'd have to emulate that into the regular expression. + " Instead of temporarily unsetting 'smartcase', we force the correct + " case-matching behavior through \c / \C. + let l:searchPattern = (s:IsIgnoreCase(a:pattern) ? '\c' : '\C') . a:pattern + + let l:count = v:count1 + let l:isWrapped = 0 + let l:isMatch = 0 + let l:line = 0 + while l:count > 0 + let [l:prevLine, l:prevCol] = [line('.'), col('.')] + + " Search for next match, 'wrapscan' applies. + let [l:line, l:col] = searchpos( l:searchPattern, (a:isBackward ? 'b' : '') ) + +"****D echomsg '****' a:isBackward string([l:line, l:col]) string(a:currentMarkPosition) l:count + if a:isBackward && l:line > 0 && [l:line, l:col] == a:currentMarkPosition && l:count == v:count1 + " On a search in backward direction, the first match is the start of the + " current mark (if the cursor was positioned on the current mark text, and + " not at the start of the mark text). + " In contrast to the normal search, this is not considered the first + " match. The mark text is one entity; if the cursor is positioned anywhere + " inside the mark text, the mark text is considered the current mark. The + " built-in '*' and '#' commands behave in the same way; the entire + " text is considered the current match, and jumps move outside that text. + " In normal search, the cursor can be positioned anywhere (via offsets) + " around the search, and only that single cursor position is considered + " the current match. + " Thus, the search is retried without a decrease of l:count, but only if + " this was the first match; repeat visits during wrapping around count as + " a regular match. The search also must not be retried when this is the + " first match, but we've been here before (i.e. l:isMatch is set): This + " means that there is only the current mark in the buffer, and we must + " break out of the loop and indicate that search wrapped around and no + " other mark was found. + if l:isMatch + let l:isWrapped = 1 + break + endif + + " The l:isMatch flag is set so if the final mark cannot be reached, the + " original cursor position is restored. This flag also allows us to detect + " whether we've been here before, which is checked above. + let l:isMatch = 1 + elseif l:line > 0 + let l:isMatch = 1 + let l:count -= 1 + + " Note: No need to check 'wrapscan'; the wrapping can only occur if + " 'wrapscan' is actually on. + if ! a:isBackward && (l:prevLine > l:line || l:prevLine == l:line && l:prevCol >= l:col) + let l:isWrapped = 1 + elseif a:isBackward && (l:prevLine < l:line || l:prevLine == l:line && l:prevCol <= l:col) + let l:isWrapped = 1 + endif + else + break + endif + endwhile + + " We're not stuck when the search wrapped around and landed on the current + " mark; that's why we exclude a possible wrap-around via v:count1 == 1. + let l:isStuckAtCurrentMark = ([l:line, l:col] == a:currentMarkPosition && v:count1 == 1) +"****D echomsg '****' l:line l:isStuckAtCurrentMark l:isWrapped l:isMatch string([l:line, l:col]) string(a:currentMarkPosition) + if l:line > 0 && ! l:isStuckAtCurrentMark + let l:matchPosition = getpos('.') + + " Open fold at the search result, like the built-in commands. + normal! zv + + " Add the original cursor position to the jump list, like the + " [/?*#nN] commands. + " Implementation: Memorize the match position, restore the view to the state + " before the search, then jump straight back to the match position. This + " also allows us to set a jump only if a match was found. (:call + " setpos("''", ...) doesn't work in Vim 7.2) + call winrestview(l:save_view) + normal! m' + call setpos('.', l:matchPosition) + + " Enable marks (in case they were disabled) after arriving at the mark (to + " avoid unnecessary screen updates) but before the error message (to avoid + " it getting lost due to the screen updates). + call s:MarkEnable(1) + + if l:isWrapped + call s:WrapMessage(a:searchType, a:pattern, a:isBackward) + else + call s:EchoSearchPattern(a:searchType, a:pattern, a:isBackward) + endif + return 1 + else + if l:isMatch + " The view has been changed by moving through matches until the end / + " start of file, when 'nowrapscan' forced a stop of searching before the + " l:count'th match was found. + " Restore the view to the state before the search. + call winrestview(l:save_view) + endif + + " Enable marks (in case they were disabled) after arriving at the mark (to + " avoid unnecessary screen updates) but before the error message (to avoid + " it getting lost due to the screen updates). + call s:MarkEnable(1) + + if l:line > 0 && l:isStuckAtCurrentMark && l:isWrapped + call s:WrapMessage(a:searchType, a:pattern, a:isBackward) + return 1 + else + call s:ErrorMessage(a:searchType, a:pattern, a:isBackward) + return 0 + endif + endif +endfunction + +" Combine all marks into one regexp. +function! s:AnyMark() + return join(filter(copy(s:pattern), '! empty(v:val)'), '\|') +endfunction + +" Search any mark. +function! mark#SearchAnyMark( isBackward ) + let l:markPosition = mark#CurrentMark()[1] + let l:markText = s:AnyMark() + call s:Search(l:markText, a:isBackward, l:markPosition, 'mark-*') + let s:lastSearch = -1 +endfunction + +" Search last searched mark. +function! mark#SearchNext( isBackward ) + let l:markText = mark#CurrentMark()[0] + if empty(l:markText) + return 0 + else + if s:lastSearch == -1 + call mark#SearchAnyMark(a:isBackward) + else + call mark#SearchCurrentMark(a:isBackward) + endif + return 1 + endif +endfunction + +" Load mark patterns from list. +function! mark#Load( pattern, enabled ) + if s:markNum > 0 && len(a:pattern) > 0 + " Initialize mark patterns with the passed list. Ensure that, regardless of + " the list length, s:pattern contains exactly s:markNum elements. + let s:pattern = a:pattern[0:(s:markNum - 1)] + let s:pattern += repeat([''], (s:markNum - len(s:pattern))) + + let s:enabled = a:enabled + + call mark#UpdateScope() + + " The list of patterns may be sparse, return only the actual patterns. + return len(filter(copy(a:pattern), '! empty(v:val)')) + endif + return 0 +endfunction + +" Access the list of mark patterns. +function! mark#ToPatternList() + " Trim unused patterns from the end of the list, the amount of available marks + " may differ on the next invocation (e.g. due to a different number of + " highlight groups in Vim and GVIM). We want to keep empty patterns in the + " front and middle to maintain the mapping to highlight groups, though. + let l:highestNonEmptyIndex = s:markNum -1 + while l:highestNonEmptyIndex >= 0 && empty(s:pattern[l:highestNonEmptyIndex]) + let l:highestNonEmptyIndex -= 1 + endwhile + + return (l:highestNonEmptyIndex < 0 ? [] : s:pattern[0:l:highestNonEmptyIndex]) +endfunction + +" :MarkLoad command. +function! mark#LoadCommand( isShowMessages ) + if exists('g:MARK_MARKS') + try + " Persistent global variables cannot be of type List, so we actually store + " the string representation, and eval() it back to a List. + execute 'let l:loadedMarkNum = mark#Load(' . g:MARK_MARKS . ', ' . (exists('g:MARK_ENABLED') ? g:MARK_ENABLED : 1) . ')' + if a:isShowMessages + if l:loadedMarkNum == 0 + echomsg 'No persistent marks defined' + else + echomsg printf('Loaded %d mark%s', l:loadedMarkNum, (l:loadedMarkNum == 1 ? '' : 's')) . (s:enabled ? '' : '; marks currently disabled') + endif + endif + catch /^Vim\%((\a\+)\)\=:E/ + let v:errmsg = 'Corrupted persistent mark info in g:MARK_MARKS and g:MARK_ENABLED' + echohl ErrorMsg + echomsg v:errmsg + echohl None + + unlet! g:MARK_MARKS + unlet! g:MARK_ENABLED + endtry + elseif a:isShowMessages + let v:errmsg = 'No persistent marks found' + echohl ErrorMsg + echomsg v:errmsg + echohl None + endif +endfunction + +" :MarkSave command. +function! s:SavePattern() + let l:savedMarks = mark#ToPatternList() + let g:MARK_MARKS = string(l:savedMarks) + let g:MARK_ENABLED = s:enabled + return ! empty(l:savedMarks) +endfunction +function! mark#SaveCommand() + if index(split(&viminfo, ','), '!') == -1 + let v:errmsg = "Cannot persist marks, need ! flag in 'viminfo': :set viminfo+=!" + echohl ErrorMsg + echomsg v:errmsg + echohl None + return + endif + + if ! s:SavePattern() + let v:warningmsg = 'No marks defined' + echohl WarningMsg + echomsg v:warningmsg + echohl None + endif +endfunction + + +" Query mark group number. +function! s:GetNextGroupIndex() + let l:nextGroupIndex = s:FreeGroupIndex() + if l:nextGroupIndex == -1 + let l:nextGroupIndex = s:cycle + endif + return l:nextGroupIndex +endfunction +function! s:GetMarker( index, nextGroupIndex ) + let l:marker = '' + if s:lastSearch == a:index + let l:marker .= '/' + endif + if a:index == a:nextGroupIndex + let l:marker .= '>' + endif + return l:marker +endfunction +function! s:GetAlternativeCount( pattern ) + return len(split(a:pattern, '\%(\%(^\|[^\\]\)\%(\\\\\)*\\\)\@ 1 ? c : '') . '*' : ''), (i + 1)) + echohl None + endfor +endfunction +function! mark#QueryMarkGroupNum() + echohl Question + echo 'Mark?' + echohl None + let l:nextGroupIndex = s:GetNextGroupIndex() + call s:PrintMarkGroup(l:nextGroupIndex) + + let l:nr = 0 + while 1 + let l:char = nr2char(getchar()) + + if l:char ==# "\" + return (l:nr == 0 ? l:nextGroupIndex + 1 : l:nr) + elseif l:char !~# '\d' + return -1 + endif + echon l:char + + let l:nr = 10 * l:nr + l:char + if s:markNum < 10 * l:nr + return l:nr + endif + endwhile +endfunction + +" :Marks command. +function! mark#List() + echohl Title + echo 'mark cnt Pattern' + echohl None + echon ' (> next mark group / current search mark)' + let l:nextGroupIndex = s:GetNextGroupIndex() + for i in range(s:markNum) + execute 'echohl MarkWord' . (i + 1) + let c = s:GetAlternativeCount(s:pattern[i]) + echo printf('%1s%3d%4s %s', s:GetMarker(i, l:nextGroupIndex), (i + 1), (c > 1 ? '('.c.')' : ''), s:pattern[i]) + echohl None + endfor + + if ! s:enabled + echo 'Marks are currently disabled.' + endif +endfunction + +function! mark#GetGroupNum() + return s:markNum +endfunction + + +"- initializations ------------------------------------------------------------ +augroup Mark + autocmd! + autocmd WinEnter * if ! exists('w:mwMatch') | call mark#UpdateMark() | endif + autocmd TabEnter * call mark#UpdateScope() +augroup END + +" Define global variables and initialize current scope. +function! mark#Init() + let s:markNum = 0 + while hlexists('MarkWord' . (s:markNum + 1)) + let s:markNum += 1 + endwhile + let s:pattern = repeat([''], s:markNum) + let s:cycle = 0 + let s:lastSearch = -1 + let s:enabled = 1 +endfunction +function! mark#ReInit( newMarkNum ) + if a:newMarkNum < s:markNum " There are less marks than before. + " Clear the additional highlight groups. + for i in range(a:newMarkNum + 1, s:markNum) + execute 'highlight clear MarkWord' . (i + 1) + endfor + + " Truncate the mark patterns. + let s:pattern = s:pattern[0 : (a:newMarkNum - 1)] + + " Correct any indices. + let s:cycle = min([s:cycle, (a:newMarkNum - 1)]) + let s:lastSearch = (s:lastSearch < a:newMarkNum ? s:lastSearch : -1) + elseif a:newMarkNum > s:markNum " There are more marks than before. + " Expand the mark patterns. + let s:pattern += repeat([''], (a:newMarkNum - s:markNum)) + endif + + let s:markNum = a:newMarkNum +endfunction + +call mark#Init() +if exists('g:mwDoDeferredLoad') && g:mwDoDeferredLoad + unlet g:mwDoDeferredLoad + call mark#LoadCommand(0) +else + call mark#UpdateScope() +endif + +" vim: ts=4 sts=0 sw=4 noet +autoload/mark/palettes.vim [[[1 +136 +" mark/palettes.vim: Additional palettes for mark highlighting. +" +" DEPENDENCIES: +" +" Copyright: (C) 2012 Ingo Karkat +" The VIM LICENSE applies to this script; see ':help copyright'. +" +" Maintainer: Ingo Karkat +" Contributors: rockybalboa4 +" +" Version: 2.7.0 +" Changes: +" 04-Jul-2012, Ingo Karkat +" - Add "maximum" palette contributed by rockybalboa4 and move it and the +" "extended" palette to a separate mark/palettes.vim autoload script. + +function! mark#palettes#Extended() + return [ + \ { 'ctermbg':'Blue', 'ctermfg':'Black', 'guibg':'#A1B7FF', 'guifg':'#001E80' }, + \ { 'ctermbg':'Magenta', 'ctermfg':'Black', 'guibg':'#FFA1C6', 'guifg':'#80005D' }, + \ { 'ctermbg':'Green', 'ctermfg':'Black', 'guibg':'#ACFFA1', 'guifg':'#0F8000' }, + \ { 'ctermbg':'Yellow', 'ctermfg':'Black', 'guibg':'#FFE8A1', 'guifg':'#806000' }, + \ { 'ctermbg':'DarkCyan', 'ctermfg':'Black', 'guibg':'#D2A1FF', 'guifg':'#420080' }, + \ { 'ctermbg':'Cyan', 'ctermfg':'Black', 'guibg':'#A1FEFF', 'guifg':'#007F80' }, + \ { 'ctermbg':'DarkBlue', 'ctermfg':'Black', 'guibg':'#A1DBFF', 'guifg':'#004E80' }, + \ { 'ctermbg':'DarkMagenta','ctermfg':'Black', 'guibg':'#A29CCF', 'guifg':'#120080' }, + \ { 'ctermbg':'DarkRed', 'ctermfg':'Black', 'guibg':'#F5A1FF', 'guifg':'#720080' }, + \ { 'ctermbg':'Brown', 'ctermfg':'Black', 'guibg':'#FFC4A1', 'guifg':'#803000' }, + \ { 'ctermbg':'DarkGreen', 'ctermfg':'Black', 'guibg':'#D0FFA1', 'guifg':'#3F8000' }, + \ { 'ctermbg':'Red', 'ctermfg':'Black', 'guibg':'#F3FFA1', 'guifg':'#6F8000' }, + \ { 'ctermbg':'White', 'ctermfg':'Gray', 'guibg':'#E3E3D2', 'guifg':'#999999' }, + \ { 'ctermbg':'LightGray', 'ctermfg':'White', 'guibg':'#D3D3C3', 'guifg':'#666666' }, + \ { 'ctermbg':'Gray', 'ctermfg':'Black', 'guibg':'#A3A396', 'guifg':'#222222' }, + \ { 'ctermbg':'Black', 'ctermfg':'White', 'guibg':'#53534C', 'guifg':'#DDDDDD' }, + \ { 'ctermbg':'Black', 'ctermfg':'Gray', 'guibg':'#131311', 'guifg':'#AAAAAA' }, + \ { 'ctermbg':'Blue', 'ctermfg':'White', 'guibg':'#0000FF', 'guifg':'#F0F0FF' }, + \ { 'ctermbg':'DarkRed', 'ctermfg':'White', 'guibg':'#FF0000', 'guifg':'#FFFFFF' }, + \] +endfunction + +function! mark#palettes#Maximum() + let l:palette = [ + \ { 'ctermbg':'Cyan', 'ctermfg':'Black', 'guibg':'#8CCBEA', 'guifg':'Black' }, + \ { 'ctermbg':'Green', 'ctermfg':'Black', 'guibg':'#A4E57E', 'guifg':'Black' }, + \ { 'ctermbg':'Yellow', 'ctermfg':'Black', 'guibg':'#FFDB72', 'guifg':'Black' }, + \ { 'ctermbg':'Red', 'ctermfg':'Black', 'guibg':'#FF7272', 'guifg':'Black' }, + \ { 'ctermbg':'Magenta', 'ctermfg':'Black', 'guibg':'#FFB3FF', 'guifg':'Black' }, + \ { 'ctermbg':'Blue', 'ctermfg':'Black', 'guibg':'#9999FF', 'guifg':'Black' }, + \] + if has('gui_running') || &t_Co >= 88 + let l:palette += [ + \ { 'ctermfg':'White', 'ctermbg':'17', 'guifg':'White', 'guibg':'#00005f' }, + \ { 'ctermfg':'White', 'ctermbg':'22', 'guifg':'White', 'guibg':'#005f00' }, + \ { 'ctermfg':'White', 'ctermbg':'23', 'guifg':'White', 'guibg':'#005f5f' }, + \ { 'ctermfg':'White', 'ctermbg':'27', 'guifg':'White', 'guibg':'#005fff' }, + \ { 'ctermfg':'White', 'ctermbg':'29', 'guifg':'White', 'guibg':'#00875f' }, + \ { 'ctermfg':'White', 'ctermbg':'34', 'guifg':'White', 'guibg':'#00af00' }, + \ { 'ctermfg':'Black', 'ctermbg':'37', 'guifg':'Black', 'guibg':'#00afaf' }, + \ { 'ctermfg':'Black', 'ctermbg':'43', 'guifg':'Black', 'guibg':'#00d7af' }, + \ { 'ctermfg':'Black', 'ctermbg':'47', 'guifg':'Black', 'guibg':'#00ff5f' }, + \ { 'ctermfg':'White', 'ctermbg':'52', 'guifg':'White', 'guibg':'#5f0000' }, + \ { 'ctermfg':'White', 'ctermbg':'53', 'guifg':'White', 'guibg':'#5f005f' }, + \ { 'ctermfg':'White', 'ctermbg':'58', 'guifg':'White', 'guibg':'#5f5f00' }, + \ { 'ctermfg':'White', 'ctermbg':'60', 'guifg':'White', 'guibg':'#5f5f87' }, + \ { 'ctermfg':'White', 'ctermbg':'64', 'guifg':'White', 'guibg':'#5f8700' }, + \ { 'ctermfg':'White', 'ctermbg':'65', 'guifg':'White', 'guibg':'#5f875f' }, + \ { 'ctermfg':'Black', 'ctermbg':'66', 'guifg':'Black', 'guibg':'#5f8787' }, + \ { 'ctermfg':'Black', 'ctermbg':'72', 'guifg':'Black', 'guibg':'#5faf87' }, + \ { 'ctermfg':'Black', 'ctermbg':'74', 'guifg':'Black', 'guibg':'#5fafd7' }, + \ { 'ctermfg':'Black', 'ctermbg':'78', 'guifg':'Black', 'guibg':'#5fd787' }, + \ { 'ctermfg':'Black', 'ctermbg':'79', 'guifg':'Black', 'guibg':'#5fd7af' }, + \ { 'ctermfg':'Black', 'ctermbg':'85', 'guifg':'Black', 'guibg':'#5fffaf' }, + \] + endif + if has('gui_running') || &t_Co >= 256 + let l:palette += [ + \ { 'ctermfg':'White', 'ctermbg':'90', 'guifg':'White', 'guibg':'#870087' }, + \ { 'ctermfg':'White', 'ctermbg':'95', 'guifg':'White', 'guibg':'#875f5f' }, + \ { 'ctermfg':'White', 'ctermbg':'96', 'guifg':'White', 'guibg':'#875f87' }, + \ { 'ctermfg':'Black', 'ctermbg':'101', 'guifg':'Black', 'guibg':'#87875f' }, + \ { 'ctermfg':'Black', 'ctermbg':'107', 'guifg':'Black', 'guibg':'#87af5f' }, + \ { 'ctermfg':'Black', 'ctermbg':'114', 'guifg':'Black', 'guibg':'#87d787' }, + \ { 'ctermfg':'Black', 'ctermbg':'117', 'guifg':'Black', 'guibg':'#87d7ff' }, + \ { 'ctermfg':'Black', 'ctermbg':'118', 'guifg':'Black', 'guibg':'#87ff00' }, + \ { 'ctermfg':'Black', 'ctermbg':'122', 'guifg':'Black', 'guibg':'#87ffd7' }, + \ { 'ctermfg':'White', 'ctermbg':'130', 'guifg':'White', 'guibg':'#af5f00' }, + \ { 'ctermfg':'White', 'ctermbg':'131', 'guifg':'White', 'guibg':'#af5f5f' }, + \ { 'ctermfg':'Black', 'ctermbg':'133', 'guifg':'Black', 'guibg':'#af5faf' }, + \ { 'ctermfg':'Black', 'ctermbg':'138', 'guifg':'Black', 'guibg':'#af8787' }, + \ { 'ctermfg':'Black', 'ctermbg':'142', 'guifg':'Black', 'guibg':'#afaf00' }, + \ { 'ctermfg':'Black', 'ctermbg':'152', 'guifg':'Black', 'guibg':'#afd7d7' }, + \ { 'ctermfg':'White', 'ctermbg':'160', 'guifg':'White', 'guibg':'#d70000' }, + \ { 'ctermfg':'Black', 'ctermbg':'166', 'guifg':'Black', 'guibg':'#d75f00' }, + \ { 'ctermfg':'Black', 'ctermbg':'169', 'guifg':'Black', 'guibg':'#d75faf' }, + \ { 'ctermfg':'Black', 'ctermbg':'174', 'guifg':'Black', 'guibg':'#d78787' }, + \ { 'ctermfg':'Black', 'ctermbg':'175', 'guifg':'Black', 'guibg':'#d787af' }, + \ { 'ctermfg':'Black', 'ctermbg':'186', 'guifg':'Black', 'guibg':'#d7d787' }, + \ { 'ctermfg':'Black', 'ctermbg':'190', 'guifg':'Black', 'guibg':'#d7ff00' }, + \ { 'ctermfg':'White', 'ctermbg':'198', 'guifg':'White', 'guibg':'#ff0087' }, + \ { 'ctermfg':'Black', 'ctermbg':'202', 'guifg':'Black', 'guibg':'#ff5f00' }, + \ { 'ctermfg':'Black', 'ctermbg':'204', 'guifg':'Black', 'guibg':'#ff5f87' }, + \ { 'ctermfg':'Black', 'ctermbg':'209', 'guifg':'Black', 'guibg':'#ff875f' }, + \ { 'ctermfg':'Black', 'ctermbg':'212', 'guifg':'Black', 'guibg':'#ff87d7' }, + \ { 'ctermfg':'Black', 'ctermbg':'215', 'guifg':'Black', 'guibg':'#ffaf5f' }, + \ { 'ctermfg':'Black', 'ctermbg':'220', 'guifg':'Black', 'guibg':'#ffd700' }, + \ { 'ctermfg':'Black', 'ctermbg':'224', 'guifg':'Black', 'guibg':'#ffd7d7' }, + \ { 'ctermfg':'Black', 'ctermbg':'228', 'guifg':'Black', 'guibg':'#ffff87' }, + \] + endif + if has('gui_running') + let l:palette += [ + \ { 'guifg':'Black', 'guibg':'#b3dcff' }, + \ { 'guifg':'Black', 'guibg':'#99cbd6' }, + \ { 'guifg':'Black', 'guibg':'#7afff0' }, + \ { 'guifg':'Black', 'guibg':'#a6ffd2' }, + \ { 'guifg':'Black', 'guibg':'#a2de9e' }, + \ { 'guifg':'Black', 'guibg':'#bcff80' }, + \ { 'guifg':'Black', 'guibg':'#e7ff8c' }, + \ { 'guifg':'Black', 'guibg':'#f2e19d' }, + \ { 'guifg':'Black', 'guibg':'#ffcc73' }, + \ { 'guifg':'Black', 'guibg':'#f7af83' }, + \ { 'guifg':'Black', 'guibg':'#fcb9b1' }, + \ { 'guifg':'Black', 'guibg':'#ff8092' }, + \ { 'guifg':'Black', 'guibg':'#ff73bb' }, + \ { 'guifg':'Black', 'guibg':'#fc97ef' }, + \ { 'guifg':'Black', 'guibg':'#c8a3d9' }, + \ { 'guifg':'Black', 'guibg':'#ac98eb' }, + \ { 'guifg':'Black', 'guibg':'#6a6feb' }, + \ { 'guifg':'Black', 'guibg':'#8caeff' }, + \ { 'guifg':'Black', 'guibg':'#70b9fa' }, + \] + endif + return l:palette +endfunction + +" vim: ts=4 sts=0 sw=4 noet +plugin/mark.vim [[[1 +411 +" Script Name: mark.vim +" Description: Highlight several words in different colors simultaneously. +" +" Copyright: (C) 2005-2008 Yuheng Xie +" (C) 2008-2012 Ingo Karkat +" The VIM LICENSE applies to this script; see ':help copyright'. +" +" Maintainer: Ingo Karkat +" Orig Author: Yuheng Xie +" Contributors:Luc Hermitte, Ingo Karkat +" +" Dependencies: +" - Requires Vim 7.1 with "matchadd()", or Vim 7.2 or higher. +" - mark.vim autoload script +" - mark/palettes.vim autoload script for additional palettes +" +" Version: 2.7.0 +" Changes: +" 04-Jul-2012, Ingo Karkat +" - Introduce g:mwPalettes instead of hard-coding them in +" s:DefaultHighlightings(), which got s:DefineHighlightings() extracted and +" the rest renamed to s:GetPalette(). +" - Allow overriding of existing mark highlighting via a:isOverride argument to +" s:DefineHighlightings(). +" - Add "maximum" palette contributed by rockybalboa4 and move it and the +" "extended" palette to a separate mark/palettes.vim autoload script. +" - ENH: Implement :MarkPalette command to switch mark highlighting on-the-fly +" during runtime. +" +" 24-Jun-2012, Ingo Karkat +" - Don't define the default m and r mappings in select mode, +" just visual mode. Thanks to rockybalboa4 for pointing this out. +" +" 27-Mar-2012, Ingo Karkat +" - ENH: Allow choosing of palette and limiting of default mark highlight groups +" via g:mwDefaultHighlightingPalette and g:mwDefaultHighlightingNum. +" - ENH: Offer an extended color palette in addition to the original 6-color one. +" +" 23-Mar-2012, Ingo Karkat +" - ENH: Add :Marks command that prints all mark highlight groups and their +" search patterns, plus information about the current search mark, next mark +" group, and whether marks are disabled. +" - FIX: When the cursor is positioned on the current mark, [N]n / +" MarkClear with [N] appended the pattern for the current mark (again +" and again) instead of clearing it. Must not pass current mark pattern when +" [N] is given. +" +" 22-Mar-2012, Ingo Karkat +" - ENH: Allow [count] for m and :Mark to add / subtract match to / from +" highlight group [count], and use [count]n to clear only highlight +" group [count]. This was also requested by Philipp Marek. +" +" 02-Mar-2012, Philipp Marek +" - BUG: Version check mistakenly excluded Vim 7.1 versions that do have the +" matchadd() function. +" +" 06-May-2011, Ingo Karkat +" - By default, enable g:mwAutoSaveMarks, so that marks are always persisted, +" but disable g:mwAutoLoadMarks, so that persisted marks have to be explicitly +" loaded, if that is desired. I often wondered why I got unexpected mark +" highlightings in a new Vim session until I realized that I had used marks in +" a previous session and forgot to clear them. +" +" 21-Apr-2011, Ingo Karkat +" - Expose toggling of mark display (keeping the mark patterns) via new +" MarkToggle mapping. Offer :MarkClear command as a replacement for the +" old argumentless :Mark command, which now just disables, but not clears all +" marks. +" - Implement lazy-loading of disabled persistent marks via g:mwDoDeferredLoad +" flag passing to autoload/mark.vim. +" +" 19-Apr-2011, Ingo Karkat +" - ENH: Add explicit mark persistence via :MarkLoad and :MarkSave commands and +" automatic persistence via the g:mwAutoLoadMarks and g:mwAutoSaveMarks +" configuration flags. +" +" 15-Apr-2011, Ingo Karkat +" - Avoid losing the mark highlightings on :syn on or :colorscheme commands. +" Thanks to Zhou YiChao for alerting me to this issue and suggesting a fix. +" +" 17-Nov-2009, Ingo Karkat +" - Replaced the (overly) generic mark#GetVisualSelectionEscaped() with +" mark#GetVisualSelectionAsRegexp() and +" mark#GetVisualSelectionAsLiteralPattern(). +" +" 04-Jul-2009, Ingo Karkat +" - A [count] before any mapping either caused "No range allowed" error or just +" repeated the :call [count] times, resulting in the current search pattern +" echoed [count] times and a hit-enter prompt. Now suppressing [count] via +" and handling it inside the implementation. +" - Now passing isBackward (0/1) instead of optional 'b' flag into functions. +" Also passing empty regexp to mark#MarkRegex() to avoid any optional +" arguments. +" +" 02-Jul-2009, Ingo Karkat +" - Split off functions into autoload script. +" - Removed g:force_reload_mark. +" - Initialization of global variables and autocommands is now done lazily on +" the first use, not during loading of the plugin. This reduces Vim startup +" time and footprint as long as the functionality isn't yet used. +" +" 6-Jun-2009, Ingo Karkat +" 1. Somehow s:WrapMessage() needs a redraw before the :echo to avoid that a +" later Vim redraw clears the wrap message. This happened when there's no +" statusline and thus :echo'ing into the ruler. +" 2. Removed line-continuations and ':set cpo=...'. Upper-cased and . +" 3. Added default highlighting for the special search type. +" +" 2-Jun-2009, Ingo Karkat +" 1. Replaced highlighting via :syntax with matchadd() / matchdelete(). This +" requires Vim 7.2 / 7.1 with patches. This method is faster, there are no +" more clashes with syntax highlighting (:match always has preference), and +" the background highlighting does not disappear under 'cursorline'. +" 2. Factored :windo application out into s:MarkScope(). +" 3. Using winrestcmd() to fix effects of :windo: By entering a window, its +" height is potentially increased from 0 to 1. +" 4. Handling multiple tabs by calling s:UpdateScope() on the TabEnter event. +" +" 1-Jun-2009, Ingo Karkat +" 1. Now using Vim List for g:mwWord and thus requiring Vim 7. g:mwCycle is now +" zero-based, but the syntax groups "MarkWordx" are still one-based. +" 2. Added missing setter for re-inclusion guard. +" 3. Factored :syntax operations out of s:DoMark() and s:UpdateMark() so that +" they can all be done in a single :windo. +" 4. Normal mode MarkSet now has the same semantics as its visual mode +" cousin: If the cursor is on an existing mark, the mark is removed. +" Beforehand, one could only remove a visually selected mark via again +" selecting it. Now, one simply can invoke the mapping when on such a mark. +" 5. Highlighting can now actually be overridden in the vimrc (anywhere +" _before_ sourcing this script) by using ':hi def'. +" +" 31-May-2009, Ingo Karkat +" 1. Refactored s:Search() to optionally take advantage of SearchSpecial.vim +" autoload functionality for echoing of search pattern, wrap and error +" messages. +" 2. Now prepending search type ("any-mark", "same-mark", "new-mark") for +" better identification. +" 3. Retired the algorithm in s:PrevWord in favor of simply using , +" which makes mark.vim work like the * command. At the end of a line, +" non-keyword characters may now be marked; the previous algorithm prefered +" any preceding word. +" 4. BF: If 'iskeyword' contains characters that have a special meaning in a +" regex (e.g. [.*]), these are now escaped properly. +" +" 01-Sep-2008, Ingo Karkat: bugfixes and enhancements +" 1. Added MarkAllClear (without a default mapping), which clears all +" marks, even when the cursor is on a mark. +" 2. Added ... mappings for hard-coded \*, \#, \/, \?, * and #, to allow +" re-mapping and disabling. Beforehand, there were some ... mappings +" and hard-coded ones; now, everything can be customized. +" 3. Bugfix: Using :autocmd without to avoid removing _all_ autocmds for +" the BufWinEnter event. (Using a custom :augroup would be even better.) +" 4. Bugfix: Explicitly defining s:current_mark_position; some execution paths +" left it undefined, causing errors. +" 5. Refactoring: Instead of calling s:InitMarkVariables() at the beginning of +" several functions, just calling it once when sourcing the script. +" 6. Refactoring: Moved multiple 'let lastwinnr = winnr()' to a single one at the +" top of DoMark(). +" 7. ENH: Make the match according to the 'ignorecase' setting, like the star +" command. +" 8. The jumps to the next/prev occurrence now print 'search hit BOTTOM, +" continuing at TOP" and "Pattern not found:..." messages, like the * and +" n/N Vim search commands. +" 9. Jumps now open folds if the occurrence is inside a closed fold, just like n/N +" do. +" +" 10th Mar 2006, Yuheng Xie: jump to ANY mark +" (*) added \* \# \/ \? for the ability of jumping to ANY mark, even when the +" cursor is not currently over any mark +" +" 20th Sep 2005, Yuheng Xie: minor modifications +" (*) merged MarkRegexVisual into MarkRegex +" (*) added GetVisualSelectionEscaped for multi-lines visual selection and +" visual selection contains ^, $, etc. +" (*) changed the name ThisMark to CurrentMark +" (*) added SearchCurrentMark and re-used raw map (instead of Vim function) to +" implement * and # +" +" 14th Sep 2005, Luc Hermitte: modifications done on v1.1.4 +" (*) anti-reinclusion guards. They do not guard colors definitions in case +" this script must be reloaded after .gvimrc +" (*) Protection against disabled |line-continuation|s. +" (*) Script-local functions +" (*) Default keybindings +" (*) \r for visual mode +" (*) uses instead of "\" +" (*) do not mess with global variable g:w +" (*) regex simplified -> double quotes changed into simple quotes. +" (*) strpart(str, idx, 1) -> str[idx] +" (*) command :Mark +" -> e.g. :Mark Mark.\{-}\ze( + +" Avoid installing twice or when in unsupported Vim version. +if exists('g:loaded_mark') || (v:version == 701 && ! exists('*matchadd')) || (v:version < 701) + finish +endif +let g:loaded_mark = 1 +let s:save_cpo = &cpo +set cpo&vim + +"- configuration -------------------------------------------------------------- + +if ! exists('g:mwHistAdd') + let g:mwHistAdd = '/@' +endif + +if ! exists('g:mwAutoLoadMarks') + let g:mwAutoLoadMarks = 0 +endif + +if ! exists('g:mwAutoSaveMarks') + let g:mwAutoSaveMarks = 1 +endif + +if ! exists('g:mwDefaultHighlightingNum') + let g:mwDefaultHighlightingNum = -1 +endif +if ! exists('g:mwDefaultHighlightingPalette') + let g:mwDefaultHighlightingPalette = 'original' +endif +if ! exists('g:mwPalettes') + let g:mwPalettes = { + \ 'original': [ + \ { 'ctermbg':'Cyan', 'ctermfg':'Black', 'guibg':'#8CCBEA', 'guifg':'Black' }, + \ { 'ctermbg':'Green', 'ctermfg':'Black', 'guibg':'#A4E57E', 'guifg':'Black' }, + \ { 'ctermbg':'Yellow', 'ctermfg':'Black', 'guibg':'#FFDB72', 'guifg':'Black' }, + \ { 'ctermbg':'Red', 'ctermfg':'Black', 'guibg':'#FF7272', 'guifg':'Black' }, + \ { 'ctermbg':'Magenta', 'ctermfg':'Black', 'guibg':'#FFB3FF', 'guifg':'Black' }, + \ { 'ctermbg':'Blue', 'ctermfg':'Black', 'guibg':'#9999FF', 'guifg':'Black' }, + \], + \ 'extended': function('mark#palettes#Extended'), + \ 'maximum': function('mark#palettes#Maximum') + \} +endif + + + +"- default highlightings ------------------------------------------------------ + +function! s:GetPalette() + let l:palette = [] + if type(g:mwDefaultHighlightingPalette) == type([]) + " There are custom color definitions, not a named built-in palette. + return g:mwDefaultHighlightingPalette + endif + if ! has_key(g:mwPalettes, g:mwDefaultHighlightingPalette) + if ! empty(g:mwDefaultHighlightingPalette) + let v:warningmsg = 'Mark: Unknown value for g:mwDefaultHighlightingPalette: ' . g:mwDefaultHighlightingPalette + echohl WarningMsg + echomsg v:warningmsg + echohl None + endif + + return [] + endif + + if type(g:mwPalettes[g:mwDefaultHighlightingPalette]) == type([]) + return g:mwPalettes[g:mwDefaultHighlightingPalette] + elseif type(g:mwPalettes[g:mwDefaultHighlightingPalette]) == type(function('tr')) + return call(g:mwPalettes[g:mwDefaultHighlightingPalette], []) + else + let v:errmsg = printf('Mark: Invalid value type for g:mwPalettes[%s]', g:mwDefaultHighlightingPalette) + echohl ErrorMsg + echomsg v:errmsg + echohl None + return [] + endif +endfunction +function! s:DefineHighlightings( palette, isOverride ) + let l:command = (a:isOverride ? 'highlight' : 'highlight def') + let l:highlightingNum = (g:mwDefaultHighlightingNum == -1 ? len(a:palette) : g:mwDefaultHighlightingNum) + for i in range(1, l:highlightingNum) + execute l:command 'MarkWord' . i join(map(items(a:palette[i - 1]), 'join(v:val, "=")')) + endfor + return l:highlightingNum +endfunction +call s:DefineHighlightings(s:GetPalette(), 0) +autocmd ColorScheme * call DefineHighlightings(GetPalette(), 0) + +" Default highlighting for the special search type. +" You can override this by defining / linking the 'SearchSpecialSearchType' +" highlight group before this script is sourced. +highlight def link SearchSpecialSearchType MoreMsg + + + +"- mappings ------------------------------------------------------------------- + +nnoremap MarkSet :if !mark#MarkCurrentWord(v:count)execute "normal! \C-\>\C-n>\Esc>"endif +vnoremap MarkSet :if !mark#DoMark(v:count, mark#GetVisualSelectionAsLiteralPattern())execute "normal! \C-\>\C-n>\Esc>"endif +nnoremap MarkRegex :call mark#MarkRegex('') +vnoremap MarkRegex :call mark#MarkRegex(mark#GetVisualSelectionAsRegexp()) +nnoremap MarkClear :if !mark#DoMark(v:count, (v:count ? '' : mark#CurrentMark()[0]))execute "normal! \C-\>\C-n>\Esc>"endif +nnoremap MarkAllClear :call mark#ClearAll() +nnoremap MarkToggle :call mark#Toggle() + +nnoremap MarkSearchCurrentNext :call mark#SearchCurrentMark(0) +nnoremap MarkSearchCurrentPrev :call mark#SearchCurrentMark(1) +nnoremap MarkSearchAnyNext :call mark#SearchAnyMark(0) +nnoremap MarkSearchAnyPrev :call mark#SearchAnyMark(1) +nnoremap MarkSearchNext :if !mark#SearchNext(0)execute 'normal! *zv'endif +nnoremap MarkSearchPrev :if !mark#SearchNext(1)execute 'normal! #zv'endif +" When typed, [*#nN] open the fold at the search result, but inside a mapping or +" :normal this must be done explicitly via 'zv'. + + +if !hasmapto('MarkSet', 'n') + nmap m MarkSet +endif +if !hasmapto('MarkSet', 'v') + xmap m MarkSet +endif +if !hasmapto('MarkRegex', 'n') + nmap r MarkRegex +endif +if !hasmapto('MarkRegex', 'v') + xmap r MarkRegex +endif +if !hasmapto('MarkClear', 'n') + nmap n MarkClear +endif +" No default mapping for MarkAllClear. +" No default mapping for MarkToggle. + +if !hasmapto('MarkSearchCurrentNext', 'n') + nmap * MarkSearchCurrentNext +endif +if !hasmapto('MarkSearchCurrentPrev', 'n') + nmap # MarkSearchCurrentPrev +endif +if !hasmapto('MarkSearchAnyNext', 'n') + nmap / MarkSearchAnyNext +endif +if !hasmapto('MarkSearchAnyPrev', 'n') + nmap ? MarkSearchAnyPrev +endif +if !hasmapto('MarkSearchNext', 'n') + nmap * MarkSearchNext +endif +if !hasmapto('MarkSearchPrev', 'n') + nmap # MarkSearchPrev +endif + + + +"- commands ------------------------------------------------------------------- + +command! -count -nargs=? Mark if !mark#DoMark(, ) | echoerr printf('Only %d mark highlight groups', mark#GetGroupNum()) | endif +command! -bar MarkClear call mark#ClearAll() +command! -bar Marks call mark#List() + +command! -bar MarkLoad call mark#LoadCommand(1) +command! -bar MarkSave call mark#SaveCommand() +function! s:SetPalette( paletteName ) + if type(g:mwDefaultHighlightingPalette) == type([]) + " Convert the directly defined list to a palette named "default". + let g:mwPalettes['default'] = g:mwDefaultHighlightingPalette + unlet! g:mwDefaultHighlightingPalette " Avoid E706. + endif + let g:mwDefaultHighlightingPalette = a:paletteName + + let l:palette = s:GetPalette() + if empty(l:palette) + return + endif + + call mark#ReInit(s:DefineHighlightings(l:palette, 1)) + call mark#UpdateScope() +endfunction +function! s:MarkPaletteComplete( ArgLead, CmdLine, CursorPos ) + return sort(filter(keys(g:mwPalettes), 'v:val =~ ''\V\^'' . escape(a:ArgLead, "\\")')) +endfunction +command! -bar -nargs=1 -complete=customlist,MarkPaletteComplete MarkPalette call SetPalette() + + + +"- marks persistence ---------------------------------------------------------- + +if g:mwAutoLoadMarks + " As the viminfo is only processed after sourcing of the runtime files, the + " persistent global variables are not yet available here. Defer this until Vim + " startup has completed. + function! s:AutoLoadMarks() + if g:mwAutoLoadMarks && exists('g:MARK_MARKS') && g:MARK_MARKS !=# '[]' + if ! exists('g:MARK_ENABLED') || g:MARK_ENABLED + " There are persistent marks and they haven't been disabled; we need to + " show them right now. + call mark#LoadCommand(0) + else + " Though there are persistent marks, they have been disabled. We avoid + " sourcing the autoload script and its invasive autocmds right now; + " maybe the marks are never turned on. We just inform the autoload + " script that it should do this once it is sourced on-demand by a + " mark mapping or command. + let g:mwDoDeferredLoad = 1 + endif + endif + endfunction + + augroup MarkInitialization + autocmd! + " Note: Avoid triggering the autoload unless there actually are persistent + " marks. For that, we need to check that g:MARK_MARKS doesn't contain the + " empty list representation, and also :execute the :call. + autocmd VimEnter * call AutoLoadMarks() + augroup END +endif + +let &cpo = s:save_cpo +unlet s:save_cpo +" vim: ts=4 sts=0 sw=4 noet +doc/mark.txt [[[1 +565 +*mark.txt* Highlight several words in different colors simultaneously. + + MARK by Ingo Karkat + (original version by Yuheng Xie) + *mark.vim* +description |mark-description| +usage |mark-usage| +installation |mark-installation| +configuration |mark-configuration| +limitations |mark-limitations| +known problems |mark-known-problems| +todo |mark-todo| +history |mark-history| + +============================================================================== +DESCRIPTION *mark-description* + +This plugin adds mappings and a :Mark command to highlight several words in +different colors simultaneously, similar to the built-in 'hlsearch' +highlighting of search results and the * |star| command. For example, when you +are browsing a big program file, you could highlight multiple identifiers in +parallel. This will make it easier to trace the source code. + +This is a continuation of vimscript #1238 by Yuheng Xie, who apparently +doesn't maintain his original version anymore and cannot be reached via the +email address in his profile. This plugin offers the following advantages over +the original: +- Much faster, all colored words can now be highlighted, no more clashes with + syntax highlighting (due to use of matchadd()). +- Many bug fixes. +- Jumps behave like the built-in search, including wrap and error messages. +- Like the built-in commands, jumps take an optional [count] to quickly skip + over some marks. +- Marks can be persisted, and patterns can be added / subtracted from + mark highlight groups. + +RELATED WORKS * + +- MultipleSearch (vimscript #479) can highlight in a single window and in all + buffers, but still relies on the :syntax highlighting method, which is + slower and less reliable. +- http://vim.wikia.com/wiki/Highlight_multiple_words offers control over the + color used by mapping the 1-9 keys on the numeric keypad, persistence, and + highlights only a single window. +- highlight.vim (vimscript #1599) highlights lines or patterns of interest in + different colors, using mappings that start with CTRL-H and work on cword. +- quickhl.vim (vimscript #3692) can also list the matches with colors and in + addition offers on-the-fly highlighting of the current word (like many IDEs + do). + +============================================================================== +USAGE *mark-usage* + +HIGHLIGHTING *mark-highlighting* + *m* *v_m* +m Mark the word under the cursor, similar to the |star| + command. The next free highlight group is used. + If already on a mark: Clear the mark, like + |n|. +{Visual}m Mark or unmark the visual selection. +[N]m With [N], mark the word under the cursor with the + named highlight group [N]. When that group is not + empty, the word is added as an alternative match, so + you can highlight multiple words with the same color. + When the word is already contained in the list of + alternatives, it is removed. + + When [N] is greater than the number of defined mark + groups, a summary of marks is printed. Active mark + groups are prefixed with "*" (or "M*" when there are + M pattern alternatives), the default next group with + ">", the last used search with "/" (like |:Marks| + does). Input the mark group, accept the default with + , or abort with or any other key. + This way, when unsure about which number represents + which color, just use 99n and pick the color + interactively! + +{Visual}[N]m Ditto, based on the visual selection. + + *r* *v_r* +r Manually input a regular expression to mark. +{Visual}r Ditto, based on the visual selection. + + In accordance with the built-in |star| command, + all these mappings use 'ignorecase', but not + 'smartcase'. + *n* +n Clear the mark under the cursor. + If not on a mark: Disable all marks, similar to + |:nohlsearch|. + Note: Marks that span multiple lines are not detected, + so the use of n on such a mark will + unintentionally remove all marks! Use + {Visual}r or :Mark {pattern} to clear + multi-line marks (or pass [N] if you happen to know + the group number). +[N]n Clear the marks represented by highlight group [N]. + + *:Mark* +:[N]Mark Clear the marks represented by highlight group [N]. +:[N]Mark {pattern} Mark or unmark {pattern}. Unless [N] is given, the + next free highlight group is used. + With [N], mark the word under the cursor with the + named highlight group [N]. When that group is not + empty, the word is added as an alternative match, so + you can highlight multiple words with the same color. + When the word is already contained in the list of + alternatives, it is removed. + For implementation reasons, {pattern} cannot use the + 'smartcase' setting, only 'ignorecase'. +:Mark Disable all marks, similar to |:nohlsearch|. Marks + will automatically re-enable when a mark is added or + removed, or a search for marks is performed. + *:MarkClear* +:MarkClear Clear all marks. In contrast to disabling marks, the + actual mark information is cleared, the next mark will + use the first highlight group. This cannot be undone. + + +SEARCHING *mark-searching* + *star* *#* */* *?* +[count]* [count]# +[count]* [count]# +[count]/ [count]? + Use these six keys to jump to the [count]'th next / + previous occurrence of a mark. + You could also use Vim's / and ? to search, since the + mark patterns are (optionally, see configuration) + added to the search history, too. + + Cursor over mark Cursor not over mark + --------------------------------------------------------------------------- + * Jump to the next occurrence of Jump to the next occurrence of + current mark, and remember it "last mark". + as "last mark". + + / Jump to the next occurrence of Same as left. + ANY mark. + + * If * is the most recently Do Vim's original * command. + used, do a *; otherwise + (/ is the most recently + used), do a /. + + Note: When the cursor is on a mark, the backwards + search does not jump to the beginning of the current + mark (like the built-in search), but to the previous + mark. The entire mark text is treated as one entity. + + You can use Vim's |jumplist| to go back to previous + mark matches and the position before a mark search. + +MARK PERSISTENCE *mark-persistence* + +The marks can be kept and restored across Vim sessions, using the |viminfo| +file. For this to work, the "!" flag must be part of the 'viminfo' setting: > + set viminfo+=! " Save and restore global variables. +< *:MarkLoad* +:MarkLoad Restore the marks from the previous Vim session. All + current marks are discarded. + *:MarkSave* +:MarkSave Save the currently defined marks (or clear the + persisted marks if no marks are currently defined) for + use in a future Vim session. + +By default, automatic persistence is enabled (so you don't need to explicitly +|:MarkSave|), but you have to explicitly load the persisted marks in a new Vim +session via |:MarkLoad|, to avoid that you accidentally drag along outdated +highlightings from Vim session to session, and be surprised by the arbitrary +highlight groups and occasional appearance of forgotten marks. If you want +just that though and automatically restore any marks, set |g:mwAutoLoadMarks|. + +You can also initialize some marks (even using particular highlight groups) to +static values, e.g. by including this in |vimrc|: > + runtime plugin/mark.vim + silent MarkClear + 5Mark foo + 6Mark bar +Or you can define custom commands that preset certain marks: > + command -bar MyMarks silent MarkClear | execute '5Mark foo' | execute '6Mark bar' +Or a command that adds to the existing marks and then toggles them: > + command -bar ToggleFooBarMarks execute 'Mark foo' | execute 'Mark bar' +< +MARK INFORMATION *mark-information* + +Both |mark-highlighting| and |mark-searching| commands print information about +the mark and search pattern, e.g. + mark-1/\ ~ +This is especially useful when you want to add or subtract patterns to a mark +highlight group via [N]. + + *:Marks* +:Marks List all mark highlight groups and the search patterns + defined for them. + The group that will be used for the next |:Mark| or + |m| command (with [N]) is shown with a ">". + The last mark used for a search (via |*|) is + shown with a "/". + +MARK HIGHLIGHTING PALETTES *mark-palette* + +The plugin comes with three predefined palettes: original, extended, and +maximum. You can dynamically toggle between them, e.g. when you need more +marks or a different set of colors. + *:MarkPalette* +:MarkPalette {palette} Highlight existing and future marks with the colors + defined in {palette}. If the new palette contains less + mark groups than the current one, the additional marks + are lost. + You can use |:command-completion| for {palette}. + +See |g:mwDefaultHighlightingPalette| for how to change the default palette, +and |mark-palette-define| for how to add your own custom palettes. + +============================================================================== +INSTALLATION *mark-installation* + +This script is packaged as a|vimball|. If you have the "gunzip" decompressor +in your PATH, simply edit the *.vba.gz package in Vim; otherwise, decompress +the archive first, e.g. using WinZip. Inside Vim, install by sourcing the +vimball or via the |:UseVimball| command. > + vim mark.vba.gz + :so % +To uninstall, use the |:RmVimball| command. + +DEPENDENCIES *mark-dependencies* + +- Requires Vim 7.1 with "matchadd()", or Vim 7.2 or higher. + +============================================================================== +CONFIGURATION *mark-configuration* + +For a permanent configuration, put the following commands into your |vimrc|. + + *mark-colors* *mark-highlight-colors* +This plugin defines 6 mark groups: + 1: Cyan 2:Green 3:Yellow 4:Red 5:Magenta 6:Blue ~ +Higher numbers always take precedence and are displayed above lower ones. + + *g:mwDefaultHighlightingPalette* +Especially if you use GVIM, you can switch to a richer palette of up to 18 +colors: > + let g:mwDefaultHighlightingPalette = 'extended' +Or, if you have both good eyes and display, you can try a palette that defines +27, 58, or even 77 colors, depending on the number of available colors: > + let g:mwDefaultHighlightingPalette = 'maximum' +< +If you like the additional colors, but don't need that many of them, restrict +their number via: > + let g:mwDefaultHighlightingNum = 9 +< + *mark-colors-redefine* +If none of the default highlightings suits you, define your own colors in your +vimrc file (or anywhere before this plugin is sourced), in the following form +(where N = 1..): > + highlight MarkWordN ctermbg=Cyan ctermfg=Black guibg=#8CCBEA guifg=Black +You can also use this form to redefine only some of the default highlightings. +If you want to avoid losing the highlightings on |:colorscheme| commands, you +need to re-apply your highlights on the |ColorScheme| event, similar to how +this plugin does. Or you define the palette not via :highlight commands, but +use the plugin's infrastructure: > + let g:mwDefaultHighlightingPalette = [ + \ { 'ctermbg':'Cyan', 'ctermfg':'Black', 'guibg':'#8CCBEA', 'guifg':'Black' }, + \ ... + \] +< *mark-palette-define* +If you want to switch multiple palettes during runtime, you need to define +them as proper palettes: > + let g:mwPalettes['mypalette'] = [ + \ { 'ctermbg':'Cyan', 'ctermfg':'Black', 'guibg':'#8CCBEA', 'guifg':'Black' }, + \ ... + \] + let g:mwPalettes['other'] = [ ... ] + let g:mwDefaultHighlightingPalette = 'mypalette' +To add your palette to the existing ones, do this after the default palette +has been defined, e.g. in .vim/after/plugin/mark.vim). Alternatively, you can +also completely redefine all available palettes in .vimrc. + +The search type highlighting (in the search message) can be changed via: > + highlight link SearchSpecialSearchType MoreMsg +< + *g:mwHistAdd* +By default, any marked words are also added to the search (/) and input (@) +history; if you don't want that, remove the corresponding symbols from: > + let g:mwHistAdd = '/@' +< + *g:mwAutoLoadMarks* +To enable the automatic restore of marks from a previous Vim session: > + let g:mwAutoLoadMarks = 1 +< *g:mwAutoSaveMarks* +To turn off the automatic persistence of marks across Vim sessions: > + let g:mwAutoSaveMarks = 0 +You can still explicitly save marks via |:MarkSave|. + + *g:mwIgnoreCase* +If you have set 'ignorecase', but want marks to be case-insensitive, you can +override the default behavior of using 'ignorecase' by setting: > + let g:mwIgnoreCase = 0 +< + + *mark-mappings* +You can use different mappings by mapping to the Mark... mappings (use +":map Mark" to list them all) before this plugin is sourced. + +There are no default mappings for toggling all marks and for the |:MarkClear| +command, but you can define some yourself: > + nmap M MarkToggle + nmap N MarkAllClear +< +To remove the default overriding of * and #, use: > + nmap IgnoreMarkSearchNext MarkSearchNext + nmap IgnoreMarkSearchPrev MarkSearchPrev +< + *mark-whitespace-indifferent* +Some people like to create a mark based on the visual selection, like +|v_m|, but have whitespace in the selection match any whitespace when +searching (searching for "hello world" will also find "helloworld" as +well as "hello" at the end of a line, with "world" at the start of the next +line). The Vim Tips Wiki describes such a setup for the built-in search at + http://vim.wikia.com/wiki/Search_for_visually_selected_text +You can achieve the same with the Mark plugin through the following scriptlet: > + function! s:GetVisualSelectionAsLiteralWhitespaceIndifferentPattern() + return substitute(escape(mark#GetVisualSelection(), '\' . '^$.*[~'), '\_s\+', '\\_s\\+', 'g') + endfunction + vnoremap MarkWhitespaceIndifferent :if !mark#DoMark(v:count, GetVisualSelectionAsLiteralWhitespaceIndifferentPattern())execute "normal! \C-\>\C-n>\Esc>"endif +Using this, you can assign a new visual mode mapping * > + vmap * MarkWhitespaceIndifferent +or override the default |v_m| mapping, in case you always want this +behavior: > + vmap IgnoreMarkSet MarkSet + vmap m MarkWhitespaceIndifferent +< +============================================================================== +LIMITATIONS *mark-limitations* + +- If the 'ignorecase' setting is changed, there will be discrepancies between + the highlighted marks and subsequent jumps to marks. +- If {pattern} in a :Mark command contains atoms that change the semantics of + the entire (|/\c|, |/\C|) or following (|/\v|,|/\V|, |/\M|) regular + expression, there may be discrepancies between the highlighted marks and + subsequent jumps to marks. + +KNOWN PROBLEMS *mark-known-problems* + +TODO *mark-todo* + +IDEAS *mark-ideas* + +Taken from an alternative implementation at +http://vim.wikia.com/wiki/Highlight_multiple_words: +- Use keys 1-9 on the numeric keypad to toggle a highlight group number. + +============================================================================== +HISTORY *mark-history* + +2.7.0 04-Jul-2012 +- ENH: Implement :MarkPalette command to switch mark highlighting on-the-fly + during runtime. +- Add "maximum" palette contributed by rockybalboa4. + +2.6.5 24-Jun-2012 +- Don't define the default m and r mappings in select mode, + just visual mode. Thanks to rockybalboa4 for pointing this out. + +2.6.4 23-Apr-2012 +- Allow to override 'ignorecase' setting via g:mwIgnoreCase. Thanks to fanhe + for the idea and sending a patch. + +2.6.3 27-Mar-2012 +- ENH: Allow choosing of palette and limiting of default mark highlight groups + via g:mwDefaultHighlightingPalette and g:mwDefaultHighlightingNum. +- ENH: Offer an extended color palette in addition to the original 6-color one. + Enable this via :let g:mwDefaultHighlightingPalette = "extended" in your + vimrc. + +2.6.2 26-Mar-2012 +- ENH: When a [count] exceeding the number of available mark groups is given, + a summary of marks is given and the user is asked to select a mark group. + This allows to interactively choose a color via 99m. + If you use the |mark-whitespace-indifferent| mappings, *** PLEASE UPDATE THE + vnoremap MarkWhitespaceIndifferent DEFINITION *** +- ENH: Include count of alternative patterns in :Marks list. +- CHG: Use ">" for next mark and "/" for last search in :Marks. + +2.6.1 23-Mar-2012 +- ENH: Add :Marks command that prints all mark highlight groups and their + search patterns, plus information about the current search mark, next mark + group, and whether marks are disabled. +- ENH: Show which mark group a pattern was set / added / removed / cleared. +- FIX: When the cursor is positioned on the current mark, [N]n / + MarkClear with [N] appended the pattern for the current mark (again + and again) instead of clearing it. Must not pass current mark pattern when + [N] is given. +- CHG: Show mark group number in same-mark search and rename search types from + "any-mark", "same-mark", and "new-mark" to the shorter "mark-*", "mark-N", + and "mark-N!", respectively. + +2.6.0 22-Mar-2012 +- ENH: Allow [count] for m and :Mark to add / subtract match to / from + highlight group [count], and use [count]n to clear only highlight + group [count]. This was also requested by Philipp Marek. +- FIX: :Mark and n actually toggled marks back on when they were + already off. Now, they stay off on multiple invocations. Use :call + mark#Toggle() / MarkToggle if you want toggling. + +2.5.3 02-Mar-2012 +- BUG: Version check mistakenly excluded Vim 7.1 versions that do have the + matchadd() function. Thanks to Philipp Marek for sending a patch. + +2.5.2 09-Nov-2011 +Fixed various problems with wrap-around warnings: +- BUG: With a single match and 'wrapscan' set, a search error was issued. +- FIX: Backwards search with single match leads to wrong error message + instead. +- FIX: Wrong logic for determining l:isWrapped lets wrap-around go undetected. + +2.5.1 17-May-2011 +- FIX: == comparison in s:DoMark() leads to wrong regexp (\A vs. \a) being + cleared when 'ignorecase' is set. Use case-sensitive comparison ==# instead. +- Refine :MarkLoad messages +- Add whitespace-indifferent visual mark configuration example. Thanks to Greg + Klein for the suggestion. + +2.5.0 07-May-2011 +- ENH: Add explicit mark persistence via :MarkLoad and :MarkSave commands and + automatic persistence via the g:mwAutoLoadMarks and g:mwAutoSaveMarks + configuration flags. (Request from Mun Johl, 16-Apr-2010) +- Expose toggling of mark display (keeping the mark patterns) via new + MarkToggle mapping. Offer :MarkClear command as a replacement for the + old argumentless :Mark command, which now just disables, but not clears all + marks. + +2.4.4 18-Apr-2011 +- BUG: Include trailing newline character in check for current mark, so that a + mark that matches the entire line (e.g. created by Vm) can be + cleared via n. Thanks to ping for reporting this. +- FIX: On overlapping marks, mark#CurrentMark() returned the lowest, not the + highest visible mark. So on overlapping marks, the one that was not visible + at the cursor position was removed; very confusing! Use reverse iteration + order. +- FIX: To avoid an arbitrary ordering of highlightings when the highlighting + group names roll over, and to avoid order inconsistencies across different + windows and tabs, we assign a different priority based on the highlighting + group. + +2.4.3 16-Apr-2011 +- Avoid losing the mark highlightings on :syn on or :colorscheme commands. + Thanks to Zhou YiChao for alerting me to this issue and suggesting a fix. +- Made the script more robust when somehow no highlightings have been defined + or when the window-local reckoning of match IDs got lost. I had very + occasionally encountered such script errors in the past. +- Made global housekeeping variables script-local, only g:mwHistAdd is used + for configuration. + +2.4.2 14-Jan-2011 (unreleased) +- FIX: Capturing the visual selection could still clobber the blockwise yank + mode of the unnamed register. + +2.4.1 13-Jan-2011 +- FIX: Using a named register for capturing the visual selection on + {Visual}m and {Visual}r clobbered the unnamed register. Now + using the unnamed register. + +2.4.0 13-Jul-2010 +- ENH: The MarkSearch mappings ([*#/?]) add the original cursor + position to the jump list, like the built-in [/?*#nN] commands. This allows + to use the regular jump commands for mark matches, like with regular search + matches. + +2.3.3 19-Feb-2010 +- BUG: Clearing of an accidental zero-width match (e.g. via :Mark \zs) results + in endless loop. Thanks to Andy Wokula for the patch. + +2.3.2 17-Nov-2009 +- BUG: Creation of literal pattern via '\V' in {Visual}m mapping + collided with individual escaping done in m mapping so that an + escaped '\*' would be interpreted as a multi item when both modes are used + for marking. Thanks to Andy Wokula for the patch. + +2.3.1 06-Jul-2009 +- Now working correctly when 'smartcase' is set. All mappings and the :Mark + command use 'ignorecase', but not 'smartcase'. + +2.3.0 04-Jul-2009 +- All jump commands now take an optional [count], so you can quickly skip over + some marks, as with the built-in */# and n/N commands. For this, the entire + core search algorithm has been rewritten. The script's logic has been + simplified through the use of Vim 7 features like Lists. +- Now also printing a Vim-alike search error message when 'nowrapscan' is set. + +2.2.0 02-Jul-2009 +- Split off functions into autoload script. +- Initialization of global variables and autocommands is now done lazily on + the first use, not during loading of the plugin. This reduces Vim startup + time and footprint as long as the functionality isn't yet used. +- Split off documentation into separate help file. Now packaging as VimBall. + + +2.1.0 06-Jun-2009 +- Replaced highlighting via :syntax with matchadd() / matchdelete(). This + requires Vim 7.2 / 7.1 with patches. This method is faster, there are no + more clashes with syntax highlighting (:match always has preference), and + the background highlighting does not disappear under 'cursorline'. +- Using winrestcmd() to fix effects of :windo: By entering a window, its + height is potentially increased from 0 to 1. +- Handling multiple tabs by calling s:UpdateScope() on the TabEnter event. + +2.0.0 01-Jun-2009 +- Now using Vim List for g:mwWord and thus requiring Vim 7. g:mwCycle is now + zero-based, but the syntax groups "MarkWordx" are still one-based. +- Factored :syntax operations out of s:DoMark() and s:UpdateMark() so that + they can all be done in a single :windo. +- Normal mode MarkSet now has the same semantics as its visual mode + cousin: If the cursor is on an existing mark, the mark is removed. + Beforehand, one could only remove a visually selected mark via again + selecting it. Now, one simply can invoke the mapping when on such a mark. + +1.6.1 31-May-2009 +Publication of improved version by Ingo Karkat. +- Now prepending search type ("any-mark", "same-mark", "new-mark") for better + identification. +- Retired the algorithm in s:PrevWord in favor of simply using , which + makes mark.vim work like the * command. At the end of a line, non-keyword + characters may now be marked; the previous algorithm preferred any preceding + word. +- BF: If 'iskeyword' contains characters that have a special meaning in a + regexp (e.g. [.*]), these are now escaped properly. +- Highlighting can now actually be overridden in the vimrc (anywhere _before_ + sourcing this script) by using ':hi def'. +- Added missing setter for re-inclusion guard. + +1.5.0 01-Sep-2008 +Bug fixes and enhancements by Ingo Karkat. +- Added MarkAllClear (without a default mapping), which clears all + marks, even when the cursor is on a mark. +- Added ... mappings for hard-coded \*, \#, \/, \?, * and #, to allow + re-mapping and disabling. Beforehand, there were some ... mappings + and hard-coded ones; now, everything can be customized. +- BF: Using :autocmd without to avoid removing _all_ autocmds for the + BufWinEnter event. (Using a custom :augroup would be even better.) +- BF: Explicitly defining s:current_mark_position; some execution paths left + it undefined, causing errors. +- ENH: Make the match according to the 'ignorecase' setting, like the star + command. +- ENH: The jumps to the next/prev occurrence now print 'search hit BOTTOM, + continuing at TOP" and "Pattern not found:..." messages, like the * and n/N + Vim search commands. +- ENH: Jumps now open folds if the occurrence is inside a closed fold, just + like n/N do. + +1.1.8-g 25-Apr-2008 +Last version published by Yuheng Xie on vim.org. + +1.1.2 22-Mar-2005 +Initial version published by Yuheng Xie on vim.org. + +============================================================================== +Copyright: (C) 2005-2008 Yuheng Xie + (C) 2008-2012 Ingo Karkat +The VIM LICENSE applies to this script; see|copyright|. + +Maintainer: Ingo Karkat +============================================================================== + vim:tw=78:ts=8:ft=help:norl: diff --git a/plugin/mark.vim b/plugin/mark.vim new file mode 100644 index 00000000..e924506b --- /dev/null +++ b/plugin/mark.vim @@ -0,0 +1,411 @@ +" Script Name: mark.vim +" Description: Highlight several words in different colors simultaneously. +" +" Copyright: (C) 2005-2008 Yuheng Xie +" (C) 2008-2012 Ingo Karkat +" The VIM LICENSE applies to this script; see ':help copyright'. +" +" Maintainer: Ingo Karkat +" Orig Author: Yuheng Xie +" Contributors:Luc Hermitte, Ingo Karkat +" +" Dependencies: +" - Requires Vim 7.1 with "matchadd()", or Vim 7.2 or higher. +" - mark.vim autoload script +" - mark/palettes.vim autoload script for additional palettes +" +" Version: 2.7.0 +" Changes: +" 04-Jul-2012, Ingo Karkat +" - Introduce g:mwPalettes instead of hard-coding them in +" s:DefaultHighlightings(), which got s:DefineHighlightings() extracted and +" the rest renamed to s:GetPalette(). +" - Allow overriding of existing mark highlighting via a:isOverride argument to +" s:DefineHighlightings(). +" - Add "maximum" palette contributed by rockybalboa4 and move it and the +" "extended" palette to a separate mark/palettes.vim autoload script. +" - ENH: Implement :MarkPalette command to switch mark highlighting on-the-fly +" during runtime. +" +" 24-Jun-2012, Ingo Karkat +" - Don't define the default m and r mappings in select mode, +" just visual mode. Thanks to rockybalboa4 for pointing this out. +" +" 27-Mar-2012, Ingo Karkat +" - ENH: Allow choosing of palette and limiting of default mark highlight groups +" via g:mwDefaultHighlightingPalette and g:mwDefaultHighlightingNum. +" - ENH: Offer an extended color palette in addition to the original 6-color one. +" +" 23-Mar-2012, Ingo Karkat +" - ENH: Add :Marks command that prints all mark highlight groups and their +" search patterns, plus information about the current search mark, next mark +" group, and whether marks are disabled. +" - FIX: When the cursor is positioned on the current mark, [N]n / +" MarkClear with [N] appended the pattern for the current mark (again +" and again) instead of clearing it. Must not pass current mark pattern when +" [N] is given. +" +" 22-Mar-2012, Ingo Karkat +" - ENH: Allow [count] for m and :Mark to add / subtract match to / from +" highlight group [count], and use [count]n to clear only highlight +" group [count]. This was also requested by Philipp Marek. +" +" 02-Mar-2012, Philipp Marek +" - BUG: Version check mistakenly excluded Vim 7.1 versions that do have the +" matchadd() function. +" +" 06-May-2011, Ingo Karkat +" - By default, enable g:mwAutoSaveMarks, so that marks are always persisted, +" but disable g:mwAutoLoadMarks, so that persisted marks have to be explicitly +" loaded, if that is desired. I often wondered why I got unexpected mark +" highlightings in a new Vim session until I realized that I had used marks in +" a previous session and forgot to clear them. +" +" 21-Apr-2011, Ingo Karkat +" - Expose toggling of mark display (keeping the mark patterns) via new +" MarkToggle mapping. Offer :MarkClear command as a replacement for the +" old argumentless :Mark command, which now just disables, but not clears all +" marks. +" - Implement lazy-loading of disabled persistent marks via g:mwDoDeferredLoad +" flag passing to autoload/mark.vim. +" +" 19-Apr-2011, Ingo Karkat +" - ENH: Add explicit mark persistence via :MarkLoad and :MarkSave commands and +" automatic persistence via the g:mwAutoLoadMarks and g:mwAutoSaveMarks +" configuration flags. +" +" 15-Apr-2011, Ingo Karkat +" - Avoid losing the mark highlightings on :syn on or :colorscheme commands. +" Thanks to Zhou YiChao for alerting me to this issue and suggesting a fix. +" +" 17-Nov-2009, Ingo Karkat +" - Replaced the (overly) generic mark#GetVisualSelectionEscaped() with +" mark#GetVisualSelectionAsRegexp() and +" mark#GetVisualSelectionAsLiteralPattern(). +" +" 04-Jul-2009, Ingo Karkat +" - A [count] before any mapping either caused "No range allowed" error or just +" repeated the :call [count] times, resulting in the current search pattern +" echoed [count] times and a hit-enter prompt. Now suppressing [count] via +" and handling it inside the implementation. +" - Now passing isBackward (0/1) instead of optional 'b' flag into functions. +" Also passing empty regexp to mark#MarkRegex() to avoid any optional +" arguments. +" +" 02-Jul-2009, Ingo Karkat +" - Split off functions into autoload script. +" - Removed g:force_reload_mark. +" - Initialization of global variables and autocommands is now done lazily on +" the first use, not during loading of the plugin. This reduces Vim startup +" time and footprint as long as the functionality isn't yet used. +" +" 6-Jun-2009, Ingo Karkat +" 1. Somehow s:WrapMessage() needs a redraw before the :echo to avoid that a +" later Vim redraw clears the wrap message. This happened when there's no +" statusline and thus :echo'ing into the ruler. +" 2. Removed line-continuations and ':set cpo=...'. Upper-cased and . +" 3. Added default highlighting for the special search type. +" +" 2-Jun-2009, Ingo Karkat +" 1. Replaced highlighting via :syntax with matchadd() / matchdelete(). This +" requires Vim 7.2 / 7.1 with patches. This method is faster, there are no +" more clashes with syntax highlighting (:match always has preference), and +" the background highlighting does not disappear under 'cursorline'. +" 2. Factored :windo application out into s:MarkScope(). +" 3. Using winrestcmd() to fix effects of :windo: By entering a window, its +" height is potentially increased from 0 to 1. +" 4. Handling multiple tabs by calling s:UpdateScope() on the TabEnter event. +" +" 1-Jun-2009, Ingo Karkat +" 1. Now using Vim List for g:mwWord and thus requiring Vim 7. g:mwCycle is now +" zero-based, but the syntax groups "MarkWordx" are still one-based. +" 2. Added missing setter for re-inclusion guard. +" 3. Factored :syntax operations out of s:DoMark() and s:UpdateMark() so that +" they can all be done in a single :windo. +" 4. Normal mode MarkSet now has the same semantics as its visual mode +" cousin: If the cursor is on an existing mark, the mark is removed. +" Beforehand, one could only remove a visually selected mark via again +" selecting it. Now, one simply can invoke the mapping when on such a mark. +" 5. Highlighting can now actually be overridden in the vimrc (anywhere +" _before_ sourcing this script) by using ':hi def'. +" +" 31-May-2009, Ingo Karkat +" 1. Refactored s:Search() to optionally take advantage of SearchSpecial.vim +" autoload functionality for echoing of search pattern, wrap and error +" messages. +" 2. Now prepending search type ("any-mark", "same-mark", "new-mark") for +" better identification. +" 3. Retired the algorithm in s:PrevWord in favor of simply using , +" which makes mark.vim work like the * command. At the end of a line, +" non-keyword characters may now be marked; the previous algorithm prefered +" any preceding word. +" 4. BF: If 'iskeyword' contains characters that have a special meaning in a +" regex (e.g. [.*]), these are now escaped properly. +" +" 01-Sep-2008, Ingo Karkat: bugfixes and enhancements +" 1. Added MarkAllClear (without a default mapping), which clears all +" marks, even when the cursor is on a mark. +" 2. Added ... mappings for hard-coded \*, \#, \/, \?, * and #, to allow +" re-mapping and disabling. Beforehand, there were some ... mappings +" and hard-coded ones; now, everything can be customized. +" 3. Bugfix: Using :autocmd without to avoid removing _all_ autocmds for +" the BufWinEnter event. (Using a custom :augroup would be even better.) +" 4. Bugfix: Explicitly defining s:current_mark_position; some execution paths +" left it undefined, causing errors. +" 5. Refactoring: Instead of calling s:InitMarkVariables() at the beginning of +" several functions, just calling it once when sourcing the script. +" 6. Refactoring: Moved multiple 'let lastwinnr = winnr()' to a single one at the +" top of DoMark(). +" 7. ENH: Make the match according to the 'ignorecase' setting, like the star +" command. +" 8. The jumps to the next/prev occurrence now print 'search hit BOTTOM, +" continuing at TOP" and "Pattern not found:..." messages, like the * and +" n/N Vim search commands. +" 9. Jumps now open folds if the occurrence is inside a closed fold, just like n/N +" do. +" +" 10th Mar 2006, Yuheng Xie: jump to ANY mark +" (*) added \* \# \/ \? for the ability of jumping to ANY mark, even when the +" cursor is not currently over any mark +" +" 20th Sep 2005, Yuheng Xie: minor modifications +" (*) merged MarkRegexVisual into MarkRegex +" (*) added GetVisualSelectionEscaped for multi-lines visual selection and +" visual selection contains ^, $, etc. +" (*) changed the name ThisMark to CurrentMark +" (*) added SearchCurrentMark and re-used raw map (instead of Vim function) to +" implement * and # +" +" 14th Sep 2005, Luc Hermitte: modifications done on v1.1.4 +" (*) anti-reinclusion guards. They do not guard colors definitions in case +" this script must be reloaded after .gvimrc +" (*) Protection against disabled |line-continuation|s. +" (*) Script-local functions +" (*) Default keybindings +" (*) \r for visual mode +" (*) uses instead of "\" +" (*) do not mess with global variable g:w +" (*) regex simplified -> double quotes changed into simple quotes. +" (*) strpart(str, idx, 1) -> str[idx] +" (*) command :Mark +" -> e.g. :Mark Mark.\{-}\ze( + +" Avoid installing twice or when in unsupported Vim version. +if exists('g:loaded_mark') || (v:version == 701 && ! exists('*matchadd')) || (v:version < 701) + finish +endif +let g:loaded_mark = 1 +let s:save_cpo = &cpo +set cpo&vim + +"- configuration -------------------------------------------------------------- + +if ! exists('g:mwHistAdd') + let g:mwHistAdd = '/@' +endif + +if ! exists('g:mwAutoLoadMarks') + let g:mwAutoLoadMarks = 0 +endif + +if ! exists('g:mwAutoSaveMarks') + let g:mwAutoSaveMarks = 1 +endif + +if ! exists('g:mwDefaultHighlightingNum') + let g:mwDefaultHighlightingNum = -1 +endif +if ! exists('g:mwDefaultHighlightingPalette') + let g:mwDefaultHighlightingPalette = 'original' +endif +if ! exists('g:mwPalettes') + let g:mwPalettes = { + \ 'original': [ + \ { 'ctermbg':'Cyan', 'ctermfg':'Black', 'guibg':'#8CCBEA', 'guifg':'Black' }, + \ { 'ctermbg':'Green', 'ctermfg':'Black', 'guibg':'#A4E57E', 'guifg':'Black' }, + \ { 'ctermbg':'Yellow', 'ctermfg':'Black', 'guibg':'#FFDB72', 'guifg':'Black' }, + \ { 'ctermbg':'Red', 'ctermfg':'Black', 'guibg':'#FF7272', 'guifg':'Black' }, + \ { 'ctermbg':'Magenta', 'ctermfg':'Black', 'guibg':'#FFB3FF', 'guifg':'Black' }, + \ { 'ctermbg':'Blue', 'ctermfg':'Black', 'guibg':'#9999FF', 'guifg':'Black' }, + \], + \ 'extended': function('mark#palettes#Extended'), + \ 'maximum': function('mark#palettes#Maximum') + \} +endif + + + +"- default highlightings ------------------------------------------------------ + +function! s:GetPalette() + let l:palette = [] + if type(g:mwDefaultHighlightingPalette) == type([]) + " There are custom color definitions, not a named built-in palette. + return g:mwDefaultHighlightingPalette + endif + if ! has_key(g:mwPalettes, g:mwDefaultHighlightingPalette) + if ! empty(g:mwDefaultHighlightingPalette) + let v:warningmsg = 'Mark: Unknown value for g:mwDefaultHighlightingPalette: ' . g:mwDefaultHighlightingPalette + echohl WarningMsg + echomsg v:warningmsg + echohl None + endif + + return [] + endif + + if type(g:mwPalettes[g:mwDefaultHighlightingPalette]) == type([]) + return g:mwPalettes[g:mwDefaultHighlightingPalette] + elseif type(g:mwPalettes[g:mwDefaultHighlightingPalette]) == type(function('tr')) + return call(g:mwPalettes[g:mwDefaultHighlightingPalette], []) + else + let v:errmsg = printf('Mark: Invalid value type for g:mwPalettes[%s]', g:mwDefaultHighlightingPalette) + echohl ErrorMsg + echomsg v:errmsg + echohl None + return [] + endif +endfunction +function! s:DefineHighlightings( palette, isOverride ) + let l:command = (a:isOverride ? 'highlight' : 'highlight def') + let l:highlightingNum = (g:mwDefaultHighlightingNum == -1 ? len(a:palette) : g:mwDefaultHighlightingNum) + for i in range(1, l:highlightingNum) + execute l:command 'MarkWord' . i join(map(items(a:palette[i - 1]), 'join(v:val, "=")')) + endfor + return l:highlightingNum +endfunction +call s:DefineHighlightings(s:GetPalette(), 0) +autocmd ColorScheme * call DefineHighlightings(GetPalette(), 0) + +" Default highlighting for the special search type. +" You can override this by defining / linking the 'SearchSpecialSearchType' +" highlight group before this script is sourced. +highlight def link SearchSpecialSearchType MoreMsg + + + +"- mappings ------------------------------------------------------------------- + +nnoremap MarkSet :if !mark#MarkCurrentWord(v:count)execute "normal! \C-\>\C-n>\Esc>"endif +vnoremap MarkSet :if !mark#DoMark(v:count, mark#GetVisualSelectionAsLiteralPattern())execute "normal! \C-\>\C-n>\Esc>"endif +nnoremap MarkRegex :call mark#MarkRegex('') +vnoremap MarkRegex :call mark#MarkRegex(mark#GetVisualSelectionAsRegexp()) +nnoremap MarkClear :if !mark#DoMark(v:count, (v:count ? '' : mark#CurrentMark()[0]))execute "normal! \C-\>\C-n>\Esc>"endif +nnoremap MarkAllClear :call mark#ClearAll() +nnoremap MarkToggle :call mark#Toggle() + +nnoremap MarkSearchCurrentNext :call mark#SearchCurrentMark(0) +nnoremap MarkSearchCurrentPrev :call mark#SearchCurrentMark(1) +nnoremap MarkSearchAnyNext :call mark#SearchAnyMark(0) +nnoremap MarkSearchAnyPrev :call mark#SearchAnyMark(1) +nnoremap MarkSearchNext :if !mark#SearchNext(0)execute 'normal! *zv'endif +nnoremap MarkSearchPrev :if !mark#SearchNext(1)execute 'normal! #zv'endif +" When typed, [*#nN] open the fold at the search result, but inside a mapping or +" :normal this must be done explicitly via 'zv'. + + +if !hasmapto('MarkSet', 'n') + nmap m MarkSet +endif +if !hasmapto('MarkSet', 'v') + xmap m MarkSet +endif +if !hasmapto('MarkRegex', 'n') + nmap r MarkRegex +endif +if !hasmapto('MarkRegex', 'v') + xmap r MarkRegex +endif +if !hasmapto('MarkClear', 'n') + nmap n MarkClear +endif +" No default mapping for MarkAllClear. +" No default mapping for MarkToggle. + +if !hasmapto('MarkSearchCurrentNext', 'n') + nmap * MarkSearchCurrentNext +endif +if !hasmapto('MarkSearchCurrentPrev', 'n') + nmap # MarkSearchCurrentPrev +endif +if !hasmapto('MarkSearchAnyNext', 'n') + nmap / MarkSearchAnyNext +endif +if !hasmapto('MarkSearchAnyPrev', 'n') + nmap ? MarkSearchAnyPrev +endif +if !hasmapto('MarkSearchNext', 'n') + nmap * MarkSearchNext +endif +if !hasmapto('MarkSearchPrev', 'n') + nmap # MarkSearchPrev +endif + + + +"- commands ------------------------------------------------------------------- + +command! -count -nargs=? Mark if !mark#DoMark(, ) | echoerr printf('Only %d mark highlight groups', mark#GetGroupNum()) | endif +command! -bar MarkClear call mark#ClearAll() +command! -bar Marks call mark#List() + +command! -bar MarkLoad call mark#LoadCommand(1) +command! -bar MarkSave call mark#SaveCommand() +function! s:SetPalette( paletteName ) + if type(g:mwDefaultHighlightingPalette) == type([]) + " Convert the directly defined list to a palette named "default". + let g:mwPalettes['default'] = g:mwDefaultHighlightingPalette + unlet! g:mwDefaultHighlightingPalette " Avoid E706. + endif + let g:mwDefaultHighlightingPalette = a:paletteName + + let l:palette = s:GetPalette() + if empty(l:palette) + return + endif + + call mark#ReInit(s:DefineHighlightings(l:palette, 1)) + call mark#UpdateScope() +endfunction +function! s:MarkPaletteComplete( ArgLead, CmdLine, CursorPos ) + return sort(filter(keys(g:mwPalettes), 'v:val =~ ''\V\^'' . escape(a:ArgLead, "\\")')) +endfunction +command! -bar -nargs=1 -complete=customlist,MarkPaletteComplete MarkPalette call SetPalette() + + + +"- marks persistence ---------------------------------------------------------- + +if g:mwAutoLoadMarks + " As the viminfo is only processed after sourcing of the runtime files, the + " persistent global variables are not yet available here. Defer this until Vim + " startup has completed. + function! s:AutoLoadMarks() + if g:mwAutoLoadMarks && exists('g:MARK_MARKS') && g:MARK_MARKS !=# '[]' + if ! exists('g:MARK_ENABLED') || g:MARK_ENABLED + " There are persistent marks and they haven't been disabled; we need to + " show them right now. + call mark#LoadCommand(0) + else + " Though there are persistent marks, they have been disabled. We avoid + " sourcing the autoload script and its invasive autocmds right now; + " maybe the marks are never turned on. We just inform the autoload + " script that it should do this once it is sourced on-demand by a + " mark mapping or command. + let g:mwDoDeferredLoad = 1 + endif + endif + endfunction + + augroup MarkInitialization + autocmd! + " Note: Avoid triggering the autoload unless there actually are persistent + " marks. For that, we need to check that g:MARK_MARKS doesn't contain the + " empty list representation, and also :execute the :call. + autocmd VimEnter * call AutoLoadMarks() + augroup END +endif + +let &cpo = s:save_cpo +unlet s:save_cpo +" vim: ts=4 sts=0 sw=4 noet diff --git a/plugin/markdown-1.2.2.vba b/plugin/markdown-1.2.2.vba new file mode 100644 index 00000000..971e0b4e --- /dev/null +++ b/plugin/markdown-1.2.2.vba @@ -0,0 +1,164 @@ +" Vimball Archiver by Charles E. Campbell, Jr., Ph.D. +UseVimball +finish +ftdetect/markdown.vim [[[1 +2 +" Markdown +autocmd BufNewFile,BufRead *.{md,mkd,mkdn,mark*} set filetype=markdown +snippets/markdown.snippets [[[1 +43 +# [link][] +snippet [] + [${1:link_id}][]${2} +# [link][id] +snippet [[ + [${1:link}][${2:id}]${3} +# [link](url) +snippet [( + [${1:link}](http://${2:url})${3} +# [link](email) +snippet [@ + [${1:link}(mailto:${2:email})${3} +# [link](url "title") +snippet [(" + [${1:link}](${2:url} "${3:title}")${4} +# [id]: url "title" +snippet [: + [${1:id}]: http://${2:url} "${3:title}" +# [id]: email "title" +snippet [:@ + [${1:id}]: mailto:${2:url} "${3:title}" +# ![alt][id] +snippet ![ + ![${1:alt}][${2:id}]${3} +# ![alt](url) +snippet !( + ![${1:alt}](${2:url})${3} +# ![alt](url "title") +snippet !(" + ![${1:alt}](${2:url} "${3:title}")${4} +# *emphasis* or _emphasis_ +snippet * + *${1}*${2} +snippet _ + _${1}_${2} +# **strong** or __strong__ +snippet ** + **${1}**${2} +snippet __ + __${1}__${2} +# `code` +snippet ` + \`${1}\`${2} +syntax/markdown.vim [[[1 +110 +" Vim syntax file +" Language: Markdown +" Author: Ben Williams +" Maintainer: Hallison Batista +" URL: http://plasticboy.com/markdown-vim-mode/ +" Version: 1.0.1 +" Last Change: Fri Dec 4 08:36:48 AMT 2009 +" Remark: Uses HTML syntax file +" Remark: I don't do anything with angle brackets (<>) because that would too easily +" easily conflict with HTML syntax +" TODO: Handle stuff contained within stuff (e.g. headings within blockquotes) + +" Read the HTML syntax to start with +if version < 600 + so :p:h/html.vim +else + runtime! syntax/html.vim + unlet b:current_syntax +endif + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" Don't use standard HiLink, it will not work with included syntax files +if version < 508 + command! -nargs=+ HtmlHiLink hi link +else + command! -nargs=+ HtmlHiLink hi def link +endif + +syntax spell toplevel +syntax case ignore +syntax sync linebreaks=1 + +" Additions to HTML groups +syntax region htmlBold start=/\\\@) +syntax region mkdLinkDef matchgroup=mkdDelimiter start="^ \{,3}\zs\[" end="]:" oneline nextgroup=mkdLinkDefTarget skipwhite +syntax region mkdLinkDefTarget start="<\?\zs\S" excludenl end="\ze[>[:space:]\n]" contained nextgroup=mkdLinkTitle,mkdLinkDef skipwhite skipnl oneline +syntax region mkdLinkTitle matchgroup=mkdDelimiter start=+"+ end=+"+ contained +syntax region mkdLinkTitle matchgroup=mkdDelimiter start=+'+ end=+'+ contained +syntax region mkdLinkTitle matchgroup=mkdDelimiter start=+(+ end=+)+ contained + +" Define Markdown groups +syntax match mkdLineContinue ".$" contained +syntax match mkdRule /^\s*\*\s\{0,1}\*\s\{0,1}\*$/ +syntax match mkdRule /^\s*-\s\{0,1}-\s\{0,1}-$/ +syntax match mkdRule /^\s*_\s\{0,1}_\s\{0,1}_$/ +syntax match mkdRule /^\s*-\{3,}$/ +syntax match mkdRule /^\s*\*\{3,5}$/ +syntax match mkdListItem /^\s*[-*+]\s\+.*\n\(\(^.\+\n\)*\n\?\)\(\(^\(\s\{4}\|\t\)\+.*\n\)\(^.\+\n\)*\n\?\)*/ contains=mkdListCode,mkdCode,htmlBold,htmlItalic,htmlSpecialChar +syntax match mkdListItem /^\s*\d\+\.\s\+.*\n\(\(^.\+\n\)*\n\?\)\(\(^\(\s\{4}\|\t\)\+.*\n\)\(^.\+\n\)*\n\?\)*/ contains=mkdListCode,mkdCode,htmlBold,htmlItalic,htmlSpecialChar +" +syntax match mkdBlockCode /^\s*\n\(^\(\s\{4}\|\t\).*\n\)\+/ +syntax match mkdListCode /^\s*\n\(^\(\s\{8}\|\t{2}\).*\n\)\+/ +syntax match mkdLineBreak / \+$/ +syntax region mkdCode start=/\\\@/ end=/$/ contains=mkdLineBreak,mkdLineContinue,@Spell +syntax region mkdCode start="]*>" end="" +syntax region mkdCode start="]*>" end="" + +" HTML headings +syntax region htmlH1 start="^\s*#" end="\($\|#\+\)" contains=@Spell +syntax region htmlH2 start="^\s*##" end="\($\|#\+\)" contains=@Spell +syntax region htmlH3 start="^\s*###" end="\($\|#\+\)" contains=@Spell +syntax region htmlH4 start="^\s*####" end="\($\|#\+\)" contains=@Spell +syntax region htmlH5 start="^\s*#####" end="\($\|#\+\)" contains=@Spell +syntax region htmlH6 start="^\s*######" end="\($\|#\+\)" contains=@Spell +syntax match htmlH1 /^.\+\n=\+$/ contains=@Spell +syntax match htmlH2 /^.\+\n-\+$/ contains=@Spell + +"highlighting for Markdown groups +HtmlHiLink mkdString String +HtmlHiLink mkdCode String +HtmlHiLink mkdListCode String +HtmlHiLink mkdBlockCode String +HtmlHiLink mkdBlockquote Comment +HtmlHiLink mkdLineContinue Comment +HtmlHiLink mkdListItem Identifier +HtmlHiLink mkdRule Identifier +HtmlHiLink mkdLineBreak Todo +HtmlHiLink mkdLink htmlLink +HtmlHiLink mkdURL htmlString +HtmlHiLink mkdID Identifier +HtmlHiLink mkdLinkDef mkdID +HtmlHiLink mkdLinkDefTarget mkdURL +HtmlHiLink mkdLinkTitle htmlString + +HtmlHiLink mkdDelimiter Delimiter + +let b:current_syntax = "markdown" + +delcommand HtmlHiLink +" vim: tabstop=2 diff --git a/plugin/python.vim b/plugin/python.vim old mode 100755 new mode 100644 diff --git a/plugin/python_fn.vim b/plugin/python_fn.vim old mode 100755 new mode 100644 diff --git a/plugin/snipMate.vim.bak b/plugin/snipMate.vim.bak old mode 100755 new mode 100644 diff --git a/plugin/supertab.vim b/plugin/supertab.vim old mode 100755 new mode 100644 diff --git a/plugin/taglist.vim b/plugin/taglist.vim old mode 100755 new mode 100644 diff --git a/plugin/tasklist.vim b/plugin/tasklist.vim old mode 100755 new mode 100644 diff --git a/plugin/test.vim b/plugin/test.vim new file mode 100644 index 00000000..039d4974 --- /dev/null +++ b/plugin/test.vim @@ -0,0 +1,42 @@ +if exists("loaded_test") +finish +endif +let loaded_test = 1 + + +function Test() +let len = strlen(getline(".")) +return len +endfunction + +function Py(w) +let word = a:w +python << EOF +import vim +def printword(w): + print w + printword(vim.eval("word")) +EOF +endfunction + +function Getword() +let w = expand("") +call Py(w) +endfunction + +function Echo(w) +echo a:w +endfunction + +function Translate() + let word = expand("") +python << EOF +import os +def Trans(word): + print word + cmd = "python2.7 ~/Youdao.py %s" % word + os.system(cmd) +# youdao(word) +Trans(vim.eval("word")) +EOF +endfunction diff --git a/plugin/translate.vim b/plugin/translate.vim new file mode 100644 index 00000000..291c644b --- /dev/null +++ b/plugin/translate.vim @@ -0,0 +1,124 @@ +"translate.vim +"author : sowill +"email : sowill@gmail.com +"description : translate the english word that under cursor to chinese +"usage : put cursor on the english word , then type :Trans , +" or in Visual-mode type :TransV , +"I map the :Trans and :TransV to ,just like +"nnoremap :Trans +"vnoremap :TransV +"in .vimrc files. +"Now,Visual-mode only support 'v' and 'V','' will be +"treated same as 'v' mode +"Install : just drop it to your plugin directory. + +function! Translate_google(text) +python << EOF +from urllib2 import urlopen +from urllib import urlencode +import vim + +def Translate_unicode(text): + str=text + while str.find("\u0026#39;")>=0: + start_index=str.find("\u0026#39;") + end_index=start_index+10 + unicode_str='\'' + str=str[:start_index]+unicode_str+str[end_index:] + while str.find("\u")>=0: + start_index=str.find("\u") + end_index=start_index+6 + unicode_str=str[start_index+2:end_index] + unicode_str=unichr(int(unicode_str,16)).decode('utf8').encode(vim.eval("&encoding")) + str=str[:start_index]+unicode_str+str[end_index:] + return str + +def Trans_word2(word): + if not word: + print 'be sure there is word under cursor' + return + from_lang='en' + to_lang='zh-CN' + langpair='%s|%s'%(from_lang,to_lang) + base_url='http://ajax.googleapis.com/ajax/services/language/translate?' + params=urlencode( (('v',1.0), + ('q',word), + ('langpair',langpair),) ) + url=base_url+params + content=urlopen(url).read() + start_idx=content.find('"translatedText":"')+18 + translation=content[start_idx:] + end_idx=translation.find('"}, "') + translation=translation[:end_idx] + print(Translate_unicode(translation).decode('utf-8').encode(vim.eval("&encoding"))) + +def Trans_word(word): + import json + import urllib + # word = raw_input('input: ') + if word == '': + print 'NULL' + word = urllib.quote(word) + print word + url = 'http://fanyi.youdao.com/openapi.do?keyfrom=ACM-OnlineJudge&key=2091830782&type=data&doctype=json&version=1.1&q='+word + ret = urllib.urlopen(url).read() + ret = json.loads(ret) + error = ret['errorCode'] + print error + if error == 20: + print '要翻译的文本过长' + elif error == 30: + print '无法进行有效的翻译' + elif error == 40: + print '不支持的语言类型' + elif error == 50: + print '无效的key' + elif error == 0: + trans = ret['translation'] + for i in trans: + print i + print ret['query'] + if 'basic' in ret.keys(): + explain = ret['basic']['explains'] + for i in explain: + print i + web =ret['web'] + for i in web: + print i['key'], + for j in i['value']: + print j, + print + + +Trans_word(vim.eval("a:text")) +EOF +endfunction + +func! Translate_GetVisual() range +let firstcol= col("'<") +let lastcol= col("'>") +let firstline = line("'<") +let lastline = line("'>") +let str ='' +if firstline == lastline +let ll = getline(firstline) +let str = strpart(ll,firstcol-1,lastcol-firstcol) + else + let lcount=firstline+1 + let lines = [] + let ll = strpart(getline(firstline),firstcol-1) + call add(lines,ll) + while lcount')")) +command! -nargs=0 TransV :call Translate_google(Translate_GetVisual()) diff --git a/plugin/txt.vim b/plugin/txt.vim old mode 100755 new mode 100644 diff --git a/plugin/vimcdoc.vim b/plugin/vimcdoc.vim old mode 100755 new mode 100644 diff --git a/plugin/vimim.cjk.txt b/plugin/vimim.cjk.txt old mode 100755 new mode 100644 diff --git a/plugin/vimim.txt b/plugin/vimim.txt old mode 100755 new mode 100644 diff --git a/plugin/vimim.vim b/plugin/vimim.vim old mode 100755 new mode 100644 diff --git a/plugin/zencoding-vim.zip b/plugin/zencoding-vim.zip old mode 100755 new mode 100644 diff --git a/plugin/zencoding.vim b/plugin/zencoding.vim old mode 100755 new mode 100644 diff --git a/snippets/_.snippets b/snippets/_.snippets old mode 100755 new mode 100644 diff --git a/snippets/autoit.snippets b/snippets/autoit.snippets old mode 100755 new mode 100644 diff --git a/snippets/c.snippets b/snippets/c.snippets old mode 100755 new mode 100644 diff --git a/snippets/cpp.snippets b/snippets/cpp.snippets old mode 100755 new mode 100644 diff --git a/snippets/dot.snippets b/snippets/dot.snippets new file mode 100644 index 00000000..6bd9c5e2 --- /dev/null +++ b/snippets/dot.snippets @@ -0,0 +1,12 @@ +snippet graph + graph ${1:title} { + ${2:a -> b;} + } + + +snippet digraph + digraph ${1:title} { + ${2:a -> b;} + } + + diff --git a/snippets/java.snippets b/snippets/java.snippets old mode 100755 new mode 100644 diff --git a/snippets/javascript.snippets b/snippets/javascript.snippets old mode 100755 new mode 100644 diff --git a/snippets/mako.snippets b/snippets/mako.snippets old mode 100755 new mode 100644 diff --git a/snippets/markdown.snippets b/snippets/markdown.snippets new file mode 100644 index 00000000..7388bf19 --- /dev/null +++ b/snippets/markdown.snippets @@ -0,0 +1,43 @@ +# [link][] +snippet [] + [${1:link_id}][]${2} +# [link][id] +snippet [[ + [${1:link}][${2:id}]${3} +# [link](url) +snippet [( + [${1:link}](http://${2:url})${3} +# [link](email) +snippet [@ + [${1:link}(mailto:${2:email})${3} +# [link](url "title") +snippet [(" + [${1:link}](${2:url} "${3:title}")${4} +# [id]: url "title" +snippet [: + [${1:id}]: http://${2:url} "${3:title}" +# [id]: email "title" +snippet [:@ + [${1:id}]: mailto:${2:url} "${3:title}" +# ![alt][id] +snippet ![ + ![${1:alt}][${2:id}]${3} +# ![alt](url) +snippet !( + ![${1:alt}](${2:url})${3} +# ![alt](url "title") +snippet !(" + ![${1:alt}](${2:url} "${3:title}")${4} +# *emphasis* or _emphasis_ +snippet * + *${1}*${2} +snippet _ + _${1}_${2} +# **strong** or __strong__ +snippet ** + **${1}**${2} +snippet __ + __${1}__${2} +# `code` +snippet ` + \`${1}\`${2} diff --git a/snippets/objc.snippets b/snippets/objc.snippets old mode 100755 new mode 100644 diff --git a/snippets/perl.snippets b/snippets/perl.snippets old mode 100755 new mode 100644 diff --git a/snippets/php.snippets b/snippets/php.snippets old mode 100755 new mode 100644 diff --git a/snippets/python.snippets b/snippets/python.snippets old mode 100755 new mode 100644 diff --git a/snippets/ruby.snippets b/snippets/ruby.snippets old mode 100755 new mode 100644 diff --git a/snippets/sh.snippets b/snippets/sh.snippets old mode 100755 new mode 100644 diff --git a/snippets/snippet.snippets b/snippets/snippet.snippets old mode 100755 new mode 100644 diff --git a/snippets/tcl.snippets b/snippets/tcl.snippets old mode 100755 new mode 100644 diff --git a/snippets/tex.snippets b/snippets/tex.snippets old mode 100755 new mode 100644 diff --git a/snippets/vim.snippets b/snippets/vim.snippets old mode 100755 new mode 100644 diff --git a/snippets/zsh.snippets b/snippets/zsh.snippets old mode 100755 new mode 100644 diff --git a/syntax/blogsyntax.vim b/syntax/blogsyntax.vim old mode 100755 new mode 100644 diff --git a/syntax/conque_term.vim b/syntax/conque_term.vim old mode 100755 new mode 100644 diff --git a/syntax/help_cn.vim b/syntax/help_cn.vim old mode 100755 new mode 100644 diff --git a/syntax/markdown.vim b/syntax/markdown.vim new file mode 100644 index 00000000..b79de52b --- /dev/null +++ b/syntax/markdown.vim @@ -0,0 +1,110 @@ +" Vim syntax file +" Language: Markdown +" Author: Ben Williams +" Maintainer: Hallison Batista +" URL: http://plasticboy.com/markdown-vim-mode/ +" Version: 1.0.1 +" Last Change: Fri Dec 4 08:36:48 AMT 2009 +" Remark: Uses HTML syntax file +" Remark: I don't do anything with angle brackets (<>) because that would too easily +" easily conflict with HTML syntax +" TODO: Handle stuff contained within stuff (e.g. headings within blockquotes) + +" Read the HTML syntax to start with +if version < 600 + so :p:h/html.vim +else + runtime! syntax/html.vim + unlet b:current_syntax +endif + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" Don't use standard HiLink, it will not work with included syntax files +if version < 508 + command! -nargs=+ HtmlHiLink hi link +else + command! -nargs=+ HtmlHiLink hi def link +endif + +syntax spell toplevel +syntax case ignore +syntax sync linebreaks=1 + +" Additions to HTML groups +syntax region htmlBold start=/\\\@) +syntax region mkdLinkDef matchgroup=mkdDelimiter start="^ \{,3}\zs\[" end="]:" oneline nextgroup=mkdLinkDefTarget skipwhite +syntax region mkdLinkDefTarget start="<\?\zs\S" excludenl end="\ze[>[:space:]\n]" contained nextgroup=mkdLinkTitle,mkdLinkDef skipwhite skipnl oneline +syntax region mkdLinkTitle matchgroup=mkdDelimiter start=+"+ end=+"+ contained +syntax region mkdLinkTitle matchgroup=mkdDelimiter start=+'+ end=+'+ contained +syntax region mkdLinkTitle matchgroup=mkdDelimiter start=+(+ end=+)+ contained + +" Define Markdown groups +syntax match mkdLineContinue ".$" contained +syntax match mkdRule /^\s*\*\s\{0,1}\*\s\{0,1}\*$/ +syntax match mkdRule /^\s*-\s\{0,1}-\s\{0,1}-$/ +syntax match mkdRule /^\s*_\s\{0,1}_\s\{0,1}_$/ +syntax match mkdRule /^\s*-\{3,}$/ +syntax match mkdRule /^\s*\*\{3,5}$/ +syntax match mkdListItem /^\s*[-*+]\s\+.*\n\(\(^.\+\n\)*\n\?\)\(\(^\(\s\{4}\|\t\)\+.*\n\)\(^.\+\n\)*\n\?\)*/ contains=mkdListCode,mkdCode,htmlBold,htmlItalic,htmlSpecialChar +syntax match mkdListItem /^\s*\d\+\.\s\+.*\n\(\(^.\+\n\)*\n\?\)\(\(^\(\s\{4}\|\t\)\+.*\n\)\(^.\+\n\)*\n\?\)*/ contains=mkdListCode,mkdCode,htmlBold,htmlItalic,htmlSpecialChar +" +syntax match mkdBlockCode /^\s*\n\(^\(\s\{4}\|\t\).*\n\)\+/ +syntax match mkdListCode /^\s*\n\(^\(\s\{8}\|\t{2}\).*\n\)\+/ +syntax match mkdLineBreak / \+$/ +syntax region mkdCode start=/\\\@/ end=/$/ contains=mkdLineBreak,mkdLineContinue,@Spell +syntax region mkdCode start="]*>" end="" +syntax region mkdCode start="]*>" end="" + +" HTML headings +syntax region htmlH1 start="^\s*#" end="\($\|#\+\)" contains=@Spell +syntax region htmlH2 start="^\s*##" end="\($\|#\+\)" contains=@Spell +syntax region htmlH3 start="^\s*###" end="\($\|#\+\)" contains=@Spell +syntax region htmlH4 start="^\s*####" end="\($\|#\+\)" contains=@Spell +syntax region htmlH5 start="^\s*#####" end="\($\|#\+\)" contains=@Spell +syntax region htmlH6 start="^\s*######" end="\($\|#\+\)" contains=@Spell +syntax match htmlH1 /^.\+\n=\+$/ contains=@Spell +syntax match htmlH2 /^.\+\n-\+$/ contains=@Spell + +"highlighting for Markdown groups +HtmlHiLink mkdString String +HtmlHiLink mkdCode String +HtmlHiLink mkdListCode String +HtmlHiLink mkdBlockCode String +HtmlHiLink mkdBlockquote Comment +HtmlHiLink mkdLineContinue Comment +HtmlHiLink mkdListItem Identifier +HtmlHiLink mkdRule Identifier +HtmlHiLink mkdLineBreak Todo +HtmlHiLink mkdLink htmlLink +HtmlHiLink mkdURL htmlString +HtmlHiLink mkdID Identifier +HtmlHiLink mkdLinkDef mkdID +HtmlHiLink mkdLinkDefTarget mkdURL +HtmlHiLink mkdLinkTitle htmlString + +HtmlHiLink mkdDelimiter Delimiter + +let b:current_syntax = "markdown" + +delcommand HtmlHiLink +" vim: tabstop=2 diff --git a/syntax/mkd.vim b/syntax/mkd.vim new file mode 100644 index 00000000..4a7577ff --- /dev/null +++ b/syntax/mkd.vim @@ -0,0 +1,130 @@ +" Vim syntax file +" Language: Markdown +" Maintainer: Ben Williams +" URL: http://plasticboy.com/markdown-vim-mode/ +" Version: 9 +" Last Change: 2009 May 18 +" Remark: Uses HTML syntax file +" Remark: I don't do anything with angle brackets (<>) because that would too easily +" easily conflict with HTML syntax +" TODO: Handle stuff contained within stuff (e.g. headings within blockquotes) + + +" Read the HTML syntax to start with +if version < 600 + so :p:h/html.vim +else + runtime! syntax/html.vim + unlet b:current_syntax +endif + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" don't use standard HiLink, it will not work with included syntax files +if version < 508 + command! -nargs=+ HtmlHiLink hi link +else + command! -nargs=+ HtmlHiLink hi def link +endif + +syn spell toplevel +syn case ignore +syn sync linebreaks=1 + +"additions to HTML groups +syn region htmlBold start=/\\\@) +syn region mkdLinkDef matchgroup=mkdDelimiter start="^ \{,3}\zs\[" end="]:" oneline nextgroup=mkdLinkDefTarget skipwhite +syn region mkdLinkDefTarget start="<\?\zs\S" excludenl end="\ze[>[:space:]\n]" contained nextgroup=mkdLinkTitle,mkdLinkDef skipwhite skipnl oneline +syn region mkdLinkTitle matchgroup=mkdDelimiter start=+"+ end=+"+ contained +syn region mkdLinkTitle matchgroup=mkdDelimiter start=+'+ end=+'+ contained +syn region mkdLinkTitle matchgroup=mkdDelimiter start=+(+ end=+)+ contained + +"define Markdown groups +syn match mkdLineContinue ".$" contained +syn match mkdRule /^\s*\*\s\{0,1}\*\s\{0,1}\*$/ +syn match mkdRule /^\s*-\s\{0,1}-\s\{0,1}-$/ +syn match mkdRule /^\s*_\s\{0,1}_\s\{0,1}_$/ +syn match mkdRule /^\s*-\{3,}$/ +syn match mkdRule /^\s*\*\{3,5}$/ +syn match mkdListItem "^\s*[-*+]\s\+" +syn match mkdListItem "^\s*\d\+\.\s\+" +syn match mkdCode /^\s*\n\(\(\s\{4,}[^ ]\|\t\+[^\t]\).*\n\)\+/ +syn match mkdLineBreak / \+$/ +syn region mkdCode start=/\\\@/ end=/$/ contains=mkdLineBreak,mkdLineContinue,@Spell +syn region mkdCode start="]*>" end="" +syn region mkdCode start="]*>" end="" + +"HTML headings +syn region htmlH1 start="^\s*#" end="\($\|#\+\)" contains=@Spell +syn region htmlH2 start="^\s*##" end="\($\|#\+\)" contains=@Spell +syn region htmlH3 start="^\s*###" end="\($\|#\+\)" contains=@Spell +syn region htmlH4 start="^\s*####" end="\($\|#\+\)" contains=@Spell +syn region htmlH5 start="^\s*#####" end="\($\|#\+\)" contains=@Spell +syn region htmlH6 start="^\s*######" end="\($\|#\+\)" contains=@Spell +syn match htmlH1 /^.\+\n=\+$/ contains=@Spell +syn match htmlH2 /^.\+\n-\+$/ contains=@Spell + + + +" fold region for headings +syn region mkdHeaderFold + \ start="^\s*\z(#\+\)" + \ skip="^\s*\z1#\+" + \ end="^\(\s*#\)\@=" + \ fold contains=TOP + +" fold region for lists +syn region mkdListFold + \ start="^\z(\s*\)\*\z(\s*\)" + \ skip="^\z1 \z2\s*[^#]" + \ end="^\(.\)\@=" + \ fold contains=TOP + +syn sync fromstart +setlocal foldmethod=syntax + + + +"highlighting for Markdown groups +HtmlHiLink mkdString String +HtmlHiLink mkdCode String +HtmlHiLink mkdBlockquote Comment +HtmlHiLink mkdLineContinue Comment +HtmlHiLink mkdListItem Identifier +HtmlHiLink mkdRule Identifier +HtmlHiLink mkdLineBreak Todo +HtmlHiLink mkdLink htmlLink +HtmlHiLink mkdURL htmlString +HtmlHiLink mkdInlineURL htmlLink +HtmlHiLink mkdID Identifier +HtmlHiLink mkdLinkDef mkdID +HtmlHiLink mkdLinkDefTarget mkdURL +HtmlHiLink mkdLinkTitle htmlString + +HtmlHiLink mkdDelimiter Delimiter + +let b:current_syntax = "mkd" + +delcommand HtmlHiLink +" vim: ts=8 diff --git a/syntax/nerdtree.vim b/syntax/nerdtree.vim old mode 100755 new mode 100644 diff --git a/syntax/python.vim b/syntax/python.vim old mode 100755 new mode 100644 diff --git a/syntax/snippet.vim b/syntax/snippet.vim old mode 100755 new mode 100644 diff --git a/test/github-flavored-markdown.markdown b/test/github-flavored-markdown.markdown old mode 100755 new mode 100644 diff --git a/test/gruber-markdown-syntax.markdown b/test/gruber-markdown-syntax.markdown old mode 100755 new mode 100644 diff --git a/wmgraphviz.vim.tgz b/wmgraphviz.vim.tgz new file mode 100644 index 0000000000000000000000000000000000000000..203c3a1153a1053a2b1adfa7856c10b3f8a16aa7 GIT binary patch literal 4875 zcmV+m6ZGsKiwFRp3JOgC1MOV@R~tE!-(Ts!LSZ-4z?#M;A=&fA%n?GeycZxF*qOWs zxx98;w)<#z_q5a)W|;lkuS!yXmD=`f!VGt>^(F(Bs!F9&sp_LIW)yil^VuYEP>v%4!lL+SOp&-O^Kw+D6I=P&nqq}$uu?Y;aH>3(}v z^pY~}CZNjP4MWPB>40oJULZ#fhU7p0kCd(IC?0e+K4N}Q{bjxYTfRPE#d6ZoH;e^b6J|*X&AD_4&0ePX%T~2Qu%Nl&s zVp;cvF}4%>Q|c#lMnlf-Nmf1{{o|jG6k?gNvgIsWN$$lDs*)*u6OVWYtC&a@XTE(!;aUi-W_9Z$D+_2_dVNt%iB7tpIup zUdma;+sVe1^SHmWGoR0$e0fF5WM`A`hzu$5Lx?9qKu7SKh5jGAeCm+nv0w-3IYEcO zsvsfMj-wPD+Z9~~zUOnnL_DYgi4*^ZhSuq_n7X9nK$01-48B^p>qZ&}phU=r_AdHL;1fOS7=c(pW?d@`FDkRYJ1y>Tvth z{;N;hXZxEXn&sd^#KkZIz|yhkXrgdNVH*6DArc8X#77pv?8%7AXj$3@btX>7VpBH; zk%aNP0Dq1ly}=JJ3ZevlqSP78?vNbIGPs<3rHcQUgJ6h)NXD z!@xQSN1a+-9IVD02d*DNdgkALnlt3^Rk0xhB^Vp(No#9Wfp6&8O#|L1HgMS%tUJm{ zmR`{&B00kpgb-;WoR2NTYFn+lqA!dErM}dHM8|>d9D-BsdLE6r$e~aVfQrF_rPf+g zHXXsX%n!%Wjuhrh`7F@1y@7R2lV)uT4WpQb_Ktl!nrw?-OWH~y1QHxz3IX1oj1h5& zWQD{pQaXBaNy-{jZ=D{062PUXN4^}ebfo>|s-61?01yQXUGEwu#9FgmFM+k;j%;Bu z6>AuJqsEEN z+R80D+UDT-Q|#wVty+<+rLYG9y<$W9m7bXu9p1;`Jeb$rbzt3O1c;24>{vKtWln#Jl{uPL@ z*2zK2r%}?cges^$!r;^=TC9SmA83L{vwhNYy3RAp^2d+?ea6{_&H8vYL`U|fwKn!c zpG_?qj{LC&yA_f(k^$*iAm?1=Cn4cUCZfJ6KvBqDuLmg-{mTxTWk_gk6r&*gKwm|p8C{WtzIXLeL$5KROO9^ipD0O$?-X+Q46GIMMP+Mu^}yj{rfwLBHuK2tk70n5P| z@!Vz`&)hv1O~vu(eiTs_+FV>85%kXW(tc+KSkuQ%jR=b@J1&z5T&U*FFjU!3Hca+G z4Yn_ACmS@>)X2)NDOyDZWu6<;jnYu25Io9ziR z+K%GOE!!bBxmthny=?;*OxQTJOx|-5i7muxPK5rviX(~3xqr`@9=~5097B$`?h4fa zu-qB;m%4z6V2-`{d;1M!e~9FewJRQUK8@xZ%4v`jvx9J(%E&;2nqB15K|k{Fu&5r+ zHVc18RJ`#AnQr1Ff?1pu?$+0QR5F8$njBHu=Sc(0qFHPnYi`J5qdrbUaV5v_ zVD|~xhQ0KJ4Z3xEkbZ-e7IJ+!Z{R~zu#ET3+eT&pOiQ>`Kru_mqD_+wbScOi6;|bD zV7n7_QD=oSHzuzb2n_i?c{NPOW17G(?<3&Mukc9yu;kU@$NklKxyGwBUtPpaAp%Dr z7*)!bHyH{Y7grl!_+3mToT(6!kuMy@O?(QlS+e0h1%ir8>uT*68)DkX?gL0ml4w2! z4F+~c997tWCQ@uU$J+}Gi#Z8#IT1g>H_7GEXZzQVE{pj;Q(YDe6K|`=F5cP6OPEY5 zYZS%7@mEv}Nt@IfPQ=YiCaEOrwd-9^5^;|%NXX?ojl0HM;y#T=l!)7u9lSi+@dDU9 zLNrmLjymr;rv`B|glh(64#GRac!FkX=8aL=oVnly1TiP_3TsIDoYIgeb(ncjp$A$d zE?0AvOF9ZM)G#576l77O98ei=l2}d7KOu<<8F*?5-tKX6(MA$Cyp}`MgpH^d6&jU= z0nTNVcL?|p&Bq5Zkp|*wK=fl0=vOALB=C*6J;s#+j?~P~VBAQhq*Q0VXeO8XTtRvZ zDy~yu&V2>Ra^Evd`PjduBjb{KFNTjdcw(~{MubW;gFeF2$Ysm3G=R%vcE<3N$Z~rZcnMa$P`8Nyv9|#Q%j)_fU-}9wk83M8p5JaBA8-;)y3K0wD zXcb9!)SUOuKnS#AC>Kk@x}4{i5zqV(K$K~{7>LEw4jLPh?KzFzM2UJ#;x`b_8`J!8$mvAv8WFGPrQKYu-KhN;Yh2FQrI{&u!y$E z<1Wl=y^&5PT2&DEG1J6M>8(k?G)i?^KfGzGhYd?ifA-UvvCS8;TMPVV-Sby;S_6d2 zAfSObSJE009O#w8>-8Y$;cs={!#$Tl&Bmd@xZ=hcI5E%KiJWPz+N{zE`zdu3TJ^Qk zCVxO`4j1CXw?KCl%`%ap4yMXbWhON7hf$cTx=v1_L;*_mZIj9?cYKjMbFbw~WL##D zA0Ry@ca2-eo-%e!;6I`GOn zQ{82EyVva+_FItcH6-RvFk$Kt31OjL3n5MOnS^RpH+}>*)xzD>=bFqrM7r~;!wE26 zOoTfeCP;c1rI6keyGTTU)iXKks&zf(dzasQnL zHxzNYZBjRHZRX2WHu9NOE}Bopvb7tSW$Oa=Y|Li%rZJ!2&4y7>nxRVfvQ=Zc@L{=@ z=BLV3v@T#g=CEV+>;^{J+Q6Q%n)_YI`Z1cps%%nOw653EwmA3HLd+1yuE$WWuPi)j z!rHP>*cRv_0g26BJ-`o5K`7$WMWI#pf+$Jv=1X<|6xxRgqf)H%z)EaED;n=js7hLud>FiKpw~ zhu75^P+LH~>(>``=Jy}#H6P#CYc5{b#)YQ|x^Ouix+iK$KdEXPM4rLX%f~C=cd(by zGF_R(>J5Tg%J9Yz>dwTt%9KUw4G4^2-$z6QYIdmD_wAR+~ z>T$*iZ=t*FIc#GPh|z*<{dC-MSPKKI5-+${)HnSId@byV+b#G(0s zOen|SHf$$~q^NH2+qf)-jg{;V{x4rN3Bi>{(Zc|GP;#X%6_T=2I&WFK;we*= zPU=`zGP}lIq|^We3yJIU_-^1h&iC2aMU5O?omH~PFLV*nz>1OOeC1K)m33=WyUNC~ z(g=TBf0yp|&z~1`Sr(iVz`k_=|6t?8H&AXT=j&)jfqz-!rlsDbWkQ6h#U8cLzcTcp5}lc~Yi#o&3}3Sx3HgP5xg zvb|5PHo$*O@knh2IR)KvXQcASp6?;4jc=v0Tg=Rue!?%i*72NN{~vHp>$mjMlfhS2l~lq`@;J?vn^BTz6$d^P>B{t>8`W4M}n zSpNvr%V1MYJE(pH%3*Rg<`M)3k3_#5Jbbl|xS5rN;(kWJs7q(-)Y-aH8`%dLK#sZ| zY5+$MJb(i3J=6%^edP#L4ZiCa-=v$Q{+A>TLqD8I*Mvz(-1(Cdt&Sf{Un9de^^EcW zA6|<;6oZfI2lbOXycGOL>U-C)Q-m!Cgqwni0vb!?U+ow?Jvzcq{VVcx+j!*v0|oPYKy-eCZrPeBv`)I8?5i_kf&_jvi^{-TW5dR zL45x=`|yqXSp5CpZnyVh7r+0z3$=TD-DmjsA7Ae7wcr2!J&Kxg`K2cHS3JmHe(CkO z&jb1^`32V3Uw+x`ySPUk{^zgO8vF-ttk~3F`pEy}#|o@}^oZNimbSE|Ep2H_TiVi= xwzQ=!ZD~te+R~P`w52U=X-iw$(w4Tgr7dk~OIzB~mj6HHe*rp%+tUDe0019-YR3Qo literal 0 HcmV?d00001