From 3e4585dd7a2eb744e492a496d6960a7c4ddb43df Mon Sep 17 00:00:00 2001 From: Stefan Liebl Date: Wed, 4 Sep 2013 12:48:24 +0200 Subject: [PATCH] + GitGrep, -latex support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GitGrep: use 'git grep …' to grep in repository vimdiff: adapt to Vim 7.4 remove vimfiles.latex Change-Id: I964d5afb66960b1a98f175b65e61c80d2b23f24c --- vimfiles.stefan/plugin/vimsuite.vim | 46 +--- vimfiles.stefan/vimrc | 2 +- vimfiles/doc/tags | 5 + vimfiles/doc/xml-plugin.txt | 389 ++++++++++++++++++++++++++++ 4 files changed, 407 insertions(+), 35 deletions(-) create mode 100644 vimfiles/doc/xml-plugin.txt diff --git a/vimfiles.stefan/plugin/vimsuite.vim b/vimfiles.stefan/plugin/vimsuite.vim index c2344f3..dd11f7a 100644 --- a/vimfiles.stefan/plugin/vimsuite.vim +++ b/vimfiles.stefan/plugin/vimsuite.vim @@ -576,6 +576,18 @@ function GrepFull(GrepDir, GrepFiles, Pattern) execute 'cl' endfunction +func GitGrep(...) + let save = &grepprg + set grepprg=git\ grep\ -n\ $* + let s = 'grep' + for i in a:000 + let s = s . ' ' . i + endfor + exe s + let &grepprg = save +endfun +command -nargs=? GitGrep call GitGrep() + " Formatting Functions " -------------------- @@ -881,41 +893,7 @@ endfunction " ------------ " diff options " ------------ -set diffexpr=FileDiff() set diffopt=filler -function FileDiff(...) - let opt = '-a --binary ' - if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif - if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif - if a:0 == 3 - let arg1 = a:1 - let arg2 = a:2 - let arg3 = a:3 - else - let arg1 = v:fname_in - let arg2 = v:fname_new - let arg3 = v:fname_out - endif - - if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif - if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif - if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif - let eq = '' - if $VIMRUNTIME =~ ' ' - if &sh =~ '\ ' . arg3 . eq -endfunction " turn diff off diff --git a/vimfiles.stefan/vimrc b/vimfiles.stefan/vimrc index 10559d8..3fe7105 100644 --- a/vimfiles.stefan/vimrc +++ b/vimfiles.stefan/vimrc @@ -5,7 +5,7 @@ let &runtimepath = '' " zuerst in vimsuite suchen let &runtimepath = &runtimepath . ',' . g:vimfiles let &runtimepath = &runtimepath . ',' . g:vimsuite . '/vimfiles' -let &runtimepath = &runtimepath . ',' . g:vimsuite . '/vimfiles.latex' +"let &runtimepath = &runtimepath . ',' . g:vimsuite . '/vimfiles.latex' let &runtimepath = &runtimepath . ',' . g:vimsuite . '/vimfiles.damos' " dann in vim Installation suchen diff --git a/vimfiles/doc/tags b/vimfiles/doc/tags index 750fbc0..eec5df4 100644 --- a/vimfiles/doc/tags +++ b/vimfiles/doc/tags @@ -1972,3 +1972,8 @@ visincr-raggedright visincr.txt /*visincr-raggedright* visincr-restrict visincr.txt /*visincr-restrict* visincr-usage visincr.txt /*visincr-usage* visincr.txt visincr.txt /*visincr.txt* +xml-plugin-callbacks xml-plugin.txt /*xml-plugin-callbacks* +xml-plugin-html xml-plugin.txt /*xml-plugin-html* +xml-plugin-mappings xml-plugin.txt /*xml-plugin-mappings* +xml-plugin-settings xml-plugin.txt /*xml-plugin-settings* +xml-plugin.txt xml-plugin.txt /*xml-plugin.txt* diff --git a/vimfiles/doc/xml-plugin.txt b/vimfiles/doc/xml-plugin.txt new file mode 100644 index 0000000..f9c4ced --- /dev/null +++ b/vimfiles/doc/xml-plugin.txt @@ -0,0 +1,389 @@ +*xml-plugin.txt* Help edit XML and SGML documents. v1.36 + + XML Edit ~ + +A filetype plugin to help edit XML and SGML documents. + +This script provides some convenience when editing XML (and some SGML +including HTML) formated documents. It allows you to jump to the +beginning or end of the tag block your cursor is in. '%' will jump +between '<' and '>' within the tag your cursor is in. When in insert +mode and you finish a tag (pressing '>') the tag will be completed. If +you press '>' twice it will place the cursor in the middle of the tags +on it's own line (helps with nested tags). + +Usage: Place this file into your ftplugin directory. To add html support +Sym-link or copy this file to html.vim in your ftplugin directory. To activte +the script place 'filetype plugin on' in your |.vimrc| file. See |ftplugins| +for more information on this topic. + +If the file edited is of type "html" and "xml_use_html" is defined then +the following tags will not auto complete: , , , +,
,
, , , , + +If the file edited is of type 'html' and 'xml_use_xhtml' is defined the +above tags will autocomplete the xml closing staying xhtml compatable. +ex.
becomes
(see |xml-plugin-settings|) + +Known Bugs {{{1 ~ + +- < & > marks inside of a CDATA section are interpreted as actual XML tags + even if unmatched. +- The script can not handle leading spaces such as < tag> it is + illegal XML syntax and considered very bad form. +- Placing a literal `>' in an attribute value will auto complete despite that + the start tag isn't finished. This is poor XML anyway you should use + > instead. + + +------------------------------------------------------------------------------ + *xml-plugin-settings* +Options {{{1 + +(All options must be placed in your |.vimrc| prior to the |ftplugin| +command.) + +xml_tag_completion_map + Use this setting to change the default mapping to auto complete a + tag. By default typing a literal `>' will cause the tag your editing + to auto complete; pressing twice will auto nest the tag. By using + this setting the `>' will be a literal `>' and you must use the new + mapping to perform auto completion and auto nesting. For example if + you wanted Control-L to perform auto completion inmstead of typing a + `>' place the following into your .vimrc: > + let xml_tag_completion_map = "" +< +xml_no_auto_nesting (Not Working!!!!!) + This turns off the auto nesting feature. After a completion is made + and another `>' is typed xml-edit automatically will break the tag + accross multiple lines and indent the curser to make creating nested + tqags easier. This feature turns it off. Enter the following in your + .vimrc: > + let xml_no_auto_nesting = 1 +< +xml_use_xhtml + When editing HTML this will auto close the short tags to make valid + XML like
and
. Enter the following in your vimrc to + turn this option on: > + let xml_use_xhtml = 1 + if the filetype is xhtml and g:xml_use_xhtml doesn't exists + the script defines it to be 1. (This also assumes that you have linked + xml.vim to xhtml.vim. Otherwise this item is moot) + For a file to be of xhtml type there need to be a doctype declaration!! + just naming a file something.xhtml doesn't make it type xhtml! +< +xml_no_html + This turns of the support for HTML specific tags. Place this in your + .vimrc: > + let xml_no_html = 1 +< +------------------------------------------------------------------------------ + *xml-plugin-mappings* + +Mapings and their functions {{{1 + +Typing '>' will start the tag closing routine. +Typing (Where | means cursor position) + | +results in + | + +Typing + >| +results in + + | + +typing a lone '>' and no '<' in front of it accepts the '>' (But having +lone '>' or '<' in a XML file is frown upon except in sections, +and that will throw of the plugin!!). + +Typing or also results in na expanding. So when editing +html type + +The closing routing also ignores DTD tags '' and processing +instructions ''. Thus typing these result in no expansion. + + + is a setting in VIM that depicts a prefix for scripts and +plugins to use. By default this is the backslash key `\'. See |mapleader| +for details. + +;; make element out previous word and close it {{{2 + - when typing a word;; wil create | + when word on its own line it will be + + | + + the suffix can be changed by setting + let makeElementSuf = ',,,' in your .vimrc + Thanks to Bart van Deenen + (http://www.vim.org/scripts/script.php?script_id=632) + +[ and ] mappings {{{2 + [ Delete delimiters + { Delete section + ] Delete delimiters + } Delete section + [[ Goto to the previous open tag + [[ Goto to the next open tag + [] Goto to the previous close tag + ][ Goto to the next close tag + [" Goto to the next comment + ]" Goto the previous comment +5 Jump to the matching tag. {{{2 +% Jump to the matching tag. + + +c Rename tag {{{2 + +C Rename tag and remove attributes {{{2 + Will ask for attributes + +d Deletes the surrounding tags from the cursor. {{{2 + outter inner text text + | + Turns to: + outter inner text text + | + +D Deletes the tag and it contents {{{2 + - and put it in register x. + outter inner text text + | + Turns to: + outter text + +e provide endtag for open tags. {{{2 + - provide endtag for open tags. Watch where de cursor is + list item content + | + pressing \e twice produces + list item content + +f fold the tag under the cursor {{{2 + + line 1 + line 2 + line 3 + + \f produces + +-- 5 lines: -------------------------- + + +F all tags of name 'tag' will be fold. {{{2 + - If there isn't a tag under + the cursor you will be asked for one. + +g Format (Vim's gq function) {{{2 + - will make a visual block of tag under cursor and then format using gq + + +G Format all tags under cursor (Vim's gq function) {{{2 + - If there isn't a tag under + the cursor you will be asked for one. + + +I Indent all tags {{{2 + - will create a multiline layout every opening tag will be shifted out + and every closing tag will be shifted in. Be aware that the rendering + of the XML through XSLT and/or DSSSL, might be changed by this. + Be aware tha if the file is big, more than 1000 lines, the reformatting + takes a long time because vim has to make a big undo buffer. + For example using \I on the example below: + + IndentThe documentation + + - Becomes + + + + Indent + + + The documentation + + + + +j Joins two the SAME sections together. {{{2 + - The sections must be next to each other. + This is line 1 + of a paragraph. + This is line 2 + | + of a paragraph. + \j produces + This is line 1 + of a paragraph. + This is line 2 + of a paragraph. + +l visual surround the block with listitem and para {{{2 + When marking up docbook tekst you have the issue that listitems + consist of 2 item. This key combination inserts them both, + + blaah + | + \l produces + + blaah + + +o Insert a tag inside the current one (like vim o) {{{2 + You are asked for tag and attributes. + + blaah + | + \o produces + + blaah + + +O Insert a tag outside the current one (like vim O) {{{2 + You are asked for tag and attributes. + blaah + | + \O produces + + blaah + + +s Insert an opening tag for an closing tag. {{{2 + list item content + | + pressing \s twice produces + list item content + +[ Delete delimiters {{{2 + Removes Only + handy when you want to uncomment a section. + You need to stand in the tag and not on an other tag + ]]> + if you cursor is outside but inside the + CDATA tag the delition works. +{ Delete section {{{2 + Removes everything tag and Content +] Delete delimiters {{{2 + Uncommnet a block. +} Delete section {{{2 + Removes everything tag and Content +> shift right opening tag and closing tag. {{{2 + shift everything between the tags 1 shiftwide right +< shift left opening tag and closing tag. {{{2 + shift everything between the tags 1 shiftwide left +c Visual Place a CDATA section around the selected text. {{{2 + Place Cdata section around the block +< Visual Place a Comment around the selected text. {{{2 + Place comment around the block +5 Extend the visual selection to the matching tag. {{{2 +% + Extend the visual selection to the matching tag. Make sure you are at + the start of the opening tag or the end of the closing tag. +v Visual Place a tag around the selected text. {{{2 + - You are asked for tag and attributes. You + need to have selected text in visual mode before you can use this + mapping. See |visual-mode| for details. + Be careful where you place the marks. + The top uses append + The bottom uses append + Useful when marking up a text file + +------------------------------------------------------------------------------ + *xml-plugin-callbacks* + +Callback Functions {{{2 ~ + +A callback function is a function used to customize features on a per tag +basis. For example say you wish to have a default set of attributs when you +type an empty tag like this: + You type: + You get: + +This is for any script programmers who wish to add xml-plugin support to +there own filetype plugins. + +Callback functions recive one attribute variable which is the tag name. The +all must return either a string or the number zero. If it returns a string +the plugin will place the string in the proper location. If it is a zero the +plugin will ignore and continue as if no callback existed. + +The following are implemented callback functions: + +HtmlAttribCallback + This is used to add default attributes to html tag. It is intended + for HTML files only. + +XmlAttribCallback + This is a generic callback for xml tags intended to add attributes. + + *xml-plugin-html* +Callback Example {{{2 ~ + +The following is an example of using XmlAttribCallback in your .vimrc +> + function XmlAttribCallback (xml_tag) + if a:xml_tag ==? "my-xml-tag" + return "attributes=\"my xml attributes\"" + else + return 0 + endif + endfunction +< +The following is a sample html.vim file type plugin you could use: +> + " Vim script file vim600:fdm=marker: + " FileType: HTML + " Maintainer: Devin Weaver + " Location: http://www.vim.org/scripts/script.php?script_id=301 + + " This is a wrapper script to add extra html support to xml documents. + " Original script can be seen in xml-plugin documentation. + + " Only do this when not done yet for this buffer + if exists("b:did_ftplugin") + finish + endif + " Don't set 'b:did_ftplugin = 1' because that is xml.vim's responsability. + + let b:html_mode = 1 + + if !exists("*HtmlAttribCallback") + function HtmlAttribCallback( xml_tag ) + if a:xml_tag ==? "table" + return "cellpadding=\"0\" cellspacing=\"0\" border=\"0\"" + elseif a:xml_tag ==? "link" + return "href=\"/site.css\" rel=\"StyleSheet\" type=\"text/css\"" + elseif a:xml_tag ==? "body" + return "bgcolor=\"white\"" + elseif a:xml_tag ==? "frame" + return "name=\"NAME\" src=\"/\" scrolling=\"auto\" noresize" + elseif a:xml_tag ==? "frameset" + return "rows=\"0,*\" cols=\"*,0\" border=\"0\"" + elseif a:xml_tag ==? "img" + return "src=\"\" width=\"0\" height=\"0\" border=\"0\" alt=\"\"" + elseif a:xml_tag ==? "a" + if has("browse") + " Look up a file to fill the href. Used in local relative file + " links. typeing your own href before closing the tag with `>' + " will override this. + let cwd = getcwd() + let cwd = substitute (cwd, "\\", "/", "g") + let href = browse (0, "Link to href...", getcwd(), "") + let href = substitute (href, cwd . "/", "", "") + let href = substitute (href, " ", "%20", "g") + else + let href = "" + endif + return "href=\"" . href . "\"" + else + return 0 + endif + endfunction + endif + + " On to loading xml.vim + runtime ftplugin/xml.vim +< + + vim:tw=78:ts=8:fen:fdm=marker:ft=help:norl: