GetLatestVimScripts
git-svn-id: https://vimsuite.svn.sourceforge.net/svnroot/vimsuite/trunk@180 eb2d0018-73a3-4aeb-bfe9-1def61c9ec69
This commit is contained in:
parent
af28abb1bd
commit
587fd7e78a
@ -1,7 +1,5 @@
|
||||
ScriptID SourceID Filename
|
||||
--------------------------
|
||||
1075 9389 netrw.vim
|
||||
1502 8743 vimball.vim
|
||||
1008 3118 srec.vim (ftplugin)
|
||||
1009 3119 srec.vim (syntax file)
|
||||
475 2535 latex-suite (install in vimfiles.latex)
|
||||
@ -11,14 +9,13 @@ ScriptID SourceID Filename
|
||||
51 171 cscope_macros.vim
|
||||
102 9375 DirDiff.vim
|
||||
1189 8687 matrix.vim
|
||||
1173 8689 tcomment
|
||||
1173 11513 tcomment
|
||||
948 2878 Scons Compiler plugin
|
||||
1709 6421 Scons Syntax file
|
||||
1772 7248 DAMOS.zip DAMOS tools (von Stefan)
|
||||
987 6978 DoxygenToolkit.vim
|
||||
1397 6887 xml.vim
|
||||
987 11878 DoxygenToolkit.vim
|
||||
1397 11713 xml.vim
|
||||
1290 5190 LogiPat.vim
|
||||
1881 9564 svndiff
|
||||
1462 5612 dtd2xml
|
||||
1046 4249 Lusty Explorer
|
||||
2043 7805 VimPdb (debugging python)
|
||||
@ -27,12 +24,11 @@ ScriptID SourceID Filename
|
||||
39 8196 matchit.vim
|
||||
2092 8095 reloaded.vim (matrix colorscheme)
|
||||
848 8203 SrchRplcHiGrp.vim (Search/Replace on Syntax Group)
|
||||
294 9414 Align.vim
|
||||
479 9276 MultipleSearch
|
||||
294 10110 Align.vim
|
||||
479 9276 MultipleSearch.vba
|
||||
1066 7618 cecutil.vim
|
||||
642 8136 getscript.vim
|
||||
90 9279 vcscommand
|
||||
642 8136 :AutoInstall: GetLatestVimScripts.vim
|
||||
479 9276 :AutoInstall: MultipleSearch.vba
|
||||
1173 8689 tComment.vim
|
||||
2701 1 editsrec
|
||||
1173 11513 tComment.vim
|
||||
2701 10950 editsrec
|
||||
642 8136 :AutoInstall: getscript.vim
|
||||
1075 11979 :AutoInstall: netrw.vim
|
||||
1502 11981 :AutoInstall: vimball.vim
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Align: tool to align multiple fields based on one or more separators
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Date: Oct 08, 2008
|
||||
" Version: 34
|
||||
" Date: Mar 03, 2009
|
||||
" Version: 35
|
||||
" GetLatestVimScripts: 294 1 :AutoInstall: Align.vim
|
||||
" GetLatestVimScripts: 1066 1 :AutoInstall: cecutil.vim
|
||||
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell, Jr. {{{1
|
||||
@ -21,10 +21,10 @@
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
if exists("g:loaded_align") || &cp
|
||||
if exists("g:loaded_Align") || &cp
|
||||
finish
|
||||
endif
|
||||
let g:loaded_align = "v34"
|
||||
let g:loaded_Align = "v35"
|
||||
if v:version < 700
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of Align needs vim 7.0"
|
||||
@ -36,9 +36,19 @@ set cpo&vim
|
||||
"DechoTabOn
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Debugging Support:
|
||||
" Debugging Support: {{{1
|
||||
"if !exists("g:loaded_Decho") | runtime plugin/Decho.vim | endif
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Options: {{{1
|
||||
if !exists("g:Align_xstrlen")
|
||||
if &enc == "latin1" || $LANG == "en_US.UTF-8" || !has("multi_byte")
|
||||
let g:Align_xstrlen= 0
|
||||
else
|
||||
let g:Align_xstrlen= 1
|
||||
endif
|
||||
endif
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Align#AlignCtrl: enter alignment patterns here {{{1
|
||||
"
|
||||
@ -333,12 +343,17 @@ endfun
|
||||
fun! Align#Align(hasctrl,...) range
|
||||
" call Dfunc("Align#Align(hasctrl=".a:hasctrl.",...) a:0=".a:0)
|
||||
|
||||
" sanity check
|
||||
" sanity checks
|
||||
if string(a:hasctrl) != "0" && string(a:hasctrl) != "1"
|
||||
echohl Error|echo 'usage: Align#Align(hasctrl<'.a:hasctrl.'> (should be 0 or 1),"separator(s)" (you have '.a:0.') )'|echohl None
|
||||
" call Dret("Align#Align")
|
||||
return
|
||||
endif
|
||||
if exists("s:AlignStyle") && s:AlignStyle == ":"
|
||||
echohl Error |echo '(Align#Align) your AlignStyle is ":", which implies "do-no-alignment"!'|echohl None
|
||||
" call Dret("Align#Align")
|
||||
return
|
||||
endif
|
||||
|
||||
" set up a list akin to an argument list
|
||||
if a:0 > 0
|
||||
@ -986,12 +1001,12 @@ fun! s:Strlen(x)
|
||||
" 'tabstop', wide CJK as 2 rather than 1, Arabic alif as zero when immediately
|
||||
" preceded by lam, one otherwise, etc.)
|
||||
" (comment from TM, solution from me)
|
||||
let modkeep= &mod
|
||||
let modkeep= &l:mod
|
||||
exe "norm! o\<esc>"
|
||||
call setline(line("."),a:x)
|
||||
let ret= virtcol("$") - 1
|
||||
d
|
||||
let &mod= modkeep
|
||||
let &l:mod= modkeep
|
||||
|
||||
else
|
||||
" at least give a decent default
|
||||
|
@ -1,13 +1,13 @@
|
||||
" AlignMaps.vim : support functions for AlignMaps
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Date: Oct 24, 2008
|
||||
" Version: 40
|
||||
" Date: Mar 03, 2009
|
||||
" Version: 41
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
if &cp || exists("g:loaded_AlignMaps")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_AlignMaps= "v40"
|
||||
let g:loaded_AlignMaps= "v41"
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
@ -16,7 +16,7 @@ set cpo&vim
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" AlignMaps#WrapperStart: {{{2
|
||||
fun! AlignMaps#WrapperStart(vis)
|
||||
fun! AlignMaps#WrapperStart(vis) range
|
||||
" call Dfunc("AlignMaps#WrapperStart(vis=".a:vis.")")
|
||||
|
||||
if a:vis
|
||||
@ -55,7 +55,7 @@ endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" AlignMaps#WrapperEnd: {{{2
|
||||
fun! AlignMaps#WrapperEnd()
|
||||
fun! AlignMaps#WrapperEnd() range
|
||||
" call Dfunc("AlignMaps#WrapperEnd() alignmaps_wrapcnt=".s:alignmaps_wrapcnt." my=".line("'y")." mz=".line("'z"))
|
||||
|
||||
" remove trailing white space introduced by whatever in the modification zone
|
||||
@ -103,7 +103,7 @@ endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" AlignMaps#StdAlign: some semi-standard align calls {{{2
|
||||
fun! AlignMaps#StdAlign(mode)
|
||||
fun! AlignMaps#StdAlign(mode) range
|
||||
" call Dfunc("AlignMaps#StdAlign(mode=".a:mode.")")
|
||||
if a:mode == 1
|
||||
" align on @
|
||||
@ -157,12 +157,12 @@ endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" AlignMaps#Equals: supports \t= and \T= {{{2
|
||||
fun! AlignMaps#Equals()
|
||||
fun! AlignMaps#Equals() range
|
||||
" call Dfunc("AlignMaps#Equals()")
|
||||
'a,'zs/\s\+\([*/+\-%|&\~^]\==\)/ \1/e
|
||||
'a,'zs@ \+\([*/+\-%|&\~^]\)=@\1=@ge
|
||||
'a,'zs/==/\="\<Char-0xff>\<Char-0xff>"/ge
|
||||
'a,'zs/!=/\="!\<Char-0xff>"/ge
|
||||
'a,'zs/==/\="\<Char-0x0f>\<Char-0x0f>"/ge
|
||||
'a,'zs/\([!<>:]\)=/\=submatch(1)."\<Char-0x0f>"/ge
|
||||
norm g'zk
|
||||
AlignCtrl mIp1P1=l =
|
||||
AlignCtrl g =
|
||||
@ -182,7 +182,7 @@ fun! AlignMaps#Equals()
|
||||
endif
|
||||
'y,'zs/^\(\s*\) @/\1/e
|
||||
endif
|
||||
'a,'z-1s/\%xff/=/ge
|
||||
'a,'z-1s/\%x0f/=/ge
|
||||
'y,'zs/ @//eg
|
||||
" call Dret("AlignMaps#Equals")
|
||||
endfun
|
||||
|
152
vimfiles/autoload/libsrec.vim
Normal file
152
vimfiles/autoload/libsrec.vim
Normal file
@ -0,0 +1,152 @@
|
||||
" Vim Library for Editing .srec Files
|
||||
" Maintainer: Alexander Fleck
|
||||
" <alexander.fleck@gmx.net>
|
||||
" License: This File is placed in the Public Domain.
|
||||
" Revision | Date [DD.MM.YY] | Changes
|
||||
" 00.01.00 | 05.07.09 | 01. Revision
|
||||
|
||||
" create ByteCount
|
||||
fun libsrec#CrBC(line)
|
||||
let s:byco = ""
|
||||
|
||||
" Dictionary with Assumptions
|
||||
let s:dict = { 0: '0F',
|
||||
\ 1: '0F',
|
||||
\ 2: '0F',
|
||||
\ 3: '0F',
|
||||
\ 4: '' ,
|
||||
\ 5: '03',
|
||||
\ 6: '' ,
|
||||
\ 7: '05',
|
||||
\ 8: '04',
|
||||
\ 9: '03' }
|
||||
|
||||
let s:byco = s:dict[a:line[1]]
|
||||
|
||||
unlet s:dict
|
||||
"unlet s:byco
|
||||
return s:byco
|
||||
endfun
|
||||
|
||||
" create ADdress
|
||||
fun libsrec#CrAD(line)
|
||||
let s:adrs = ""
|
||||
" Number of Bytes for Address
|
||||
let s:adby = ""
|
||||
" Dictionary
|
||||
let s:dict = { 0: 2,
|
||||
\ 1: 2,
|
||||
\ 2: 3,
|
||||
\ 3: 4,
|
||||
\ 4: 0,
|
||||
\ 5: 2,
|
||||
\ 6: 0,
|
||||
\ 7: 4,
|
||||
\ 8: 3,
|
||||
\ 9: 2 }
|
||||
|
||||
let s:adby = s:dict[a:line[1]]
|
||||
|
||||
let s:n = 0
|
||||
while 1
|
||||
let s:n = s:n + 1
|
||||
if s:n > s:adby
|
||||
break
|
||||
endif
|
||||
let s:adrs = s:adrs . "00"
|
||||
continue
|
||||
endwhile
|
||||
unlet s:n
|
||||
|
||||
unlet s:dict
|
||||
unlet s:adby
|
||||
"unlet s:adrs
|
||||
return s:adrs
|
||||
endfun
|
||||
|
||||
" create DAta
|
||||
fun libsrec#CrDA(line)
|
||||
let s:data = ""
|
||||
" Number of Bytes for Data
|
||||
let s:daby = ""
|
||||
|
||||
" get ByteCount from Line
|
||||
let s:bchx = "0x" . a:line[2] . a:line[3]
|
||||
" Dictionary
|
||||
let s:dict = { 0: s:bchx - 3,
|
||||
\ 1: s:bchx - 3,
|
||||
\ 2: s:bchx - 4,
|
||||
\ 3: s:bchx - 5,
|
||||
\ 4: 0 ,
|
||||
\ 5: 0 ,
|
||||
\ 6: 0 ,
|
||||
\ 7: 0 ,
|
||||
\ 8: 0 ,
|
||||
\ 9: 0 }
|
||||
|
||||
let s:daby = s:dict[a:line[1]]
|
||||
|
||||
let s:n = 0
|
||||
while 1
|
||||
let s:n = s:n + 1
|
||||
if s:n > s:daby
|
||||
break
|
||||
endif
|
||||
let s:data = s:data . "FF"
|
||||
continue
|
||||
endwhile
|
||||
unlet s:n
|
||||
|
||||
unlet s:dict
|
||||
unlet s:bchx
|
||||
unlet s:daby
|
||||
"unlet s:data
|
||||
return s:data
|
||||
endfun
|
||||
|
||||
" create CheckSum
|
||||
fun libsrec#CrCS(line)
|
||||
" CheckSum as a String
|
||||
let s:chsu = ""
|
||||
|
||||
" get ByteCount from Line
|
||||
let s:bchx = "0x" . a:line[2] . a:line[3]
|
||||
|
||||
if ((a:line[1] == "4") || (a:line[1] == "6"))
|
||||
" there' s no S4 or S6
|
||||
else
|
||||
" CheckSum as a Value
|
||||
let s:csby = 0
|
||||
|
||||
" add the Byte Values
|
||||
let s:n = 0
|
||||
while 1
|
||||
let s:n = s:n + 1
|
||||
if s:n > s:bchx
|
||||
break
|
||||
endif
|
||||
let s:csby = s:csby + ("0x" . a:line[2*s:n] . a:line[2*s:n+1])
|
||||
continue
|
||||
endwhile
|
||||
unlet s:n
|
||||
|
||||
" CheckSum is:
|
||||
let s:csby = 255 - (s:csby % 256)
|
||||
|
||||
" convert to Hex Value,
|
||||
" Hex String without "0x"
|
||||
let s:hxva = "0123456789ABCDEF"
|
||||
while s:csby
|
||||
let s:chsu = s:hxva[s:csby % 16] . s:chsu
|
||||
let s:csby = s:csby / 16
|
||||
endwhile
|
||||
|
||||
unlet s:hxva
|
||||
unlet s:csby
|
||||
endif
|
||||
|
||||
unlet s:bchx
|
||||
"unlet s:chsu
|
||||
return s:chsu
|
||||
endfun
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -145,6 +145,7 @@ fun! netrwSettings#NetrwSettings()
|
||||
put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
|
||||
put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
|
||||
put = 'let g:netrw_scpport = '.g:netrw_scpport
|
||||
put = 'let g:netrw_sepchr = '.g:netrw_sepchr
|
||||
put = 'let g:netrw_sshport = '.g:netrw_sshport
|
||||
put = 'let g:netrw_timefmt = '.g:netrw_timefmt
|
||||
let tmpfileescline= line("$")
|
||||
|
@ -1,10 +1,10 @@
|
||||
" tcomment.vim
|
||||
" @Author: Thomas Link (mailto:micathom AT gmail com?subject=[vim])
|
||||
" @Author: Tom Link (mailto:micathom AT gmail com?subject=[vim])
|
||||
" @Website: http://www.vim.org/account/profile.php?user_id=4037
|
||||
" @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
||||
" @Created: 2007-09-17.
|
||||
" @Last Change: 2008-05-07.
|
||||
" @Revision: 0.0.46
|
||||
" @Last Change: 2009-02-15.
|
||||
" @Revision: 0.0.66
|
||||
|
||||
if &cp || exists("loaded_tcomment_autoload")
|
||||
finish
|
||||
@ -90,6 +90,7 @@ function! tcomment#Comment(beg, end, ...)
|
||||
" We want a comment block
|
||||
call s:CommentBlock(a:beg, a:end, uncomment, cmtCheck, cms, indentStr)
|
||||
else
|
||||
" call s:CommentLines(a:beg, a:end, cstart, cend, uncomment, cmtCheck, cms0, indentStr)
|
||||
" We want commented lines
|
||||
" final search pattern for uncommenting
|
||||
let cmtCheck = escape('\V\^\(\s\{-}\)'. cmtCheck .'\$', '"/\')
|
||||
@ -109,10 +110,12 @@ function! tcomment#Comment(beg, end, ...)
|
||||
endif
|
||||
endf
|
||||
|
||||
|
||||
function! tcomment#Operator(type, ...) "{{{3
|
||||
let commentMode = a:0 >= 1 ? a:1 : ''
|
||||
let bang = a:0 >= 2 ? a:2 : ''
|
||||
if !exists('w:tcommentPos')
|
||||
let w:tcommentPos = getpos(".")
|
||||
endif
|
||||
let sel_save = &selection
|
||||
let &selection = "inclusive"
|
||||
let reg_save = @@
|
||||
@ -384,6 +387,17 @@ function! s:ProcessedLine(uncomment, match, checkRx, replace)
|
||||
return rv
|
||||
endf
|
||||
|
||||
function! s:CommentLines(beg, end, cstart, cend, uncomment, cmtCheck, cms0, indentStr) "{{{3
|
||||
" We want commented lines
|
||||
" final search pattern for uncommenting
|
||||
let cmtCheck = escape('\V\^\(\s\{-}\)'. a:cmtCheck .'\$', '"/\')
|
||||
" final pattern for commenting
|
||||
let cmtReplace = escape(a:cms0, '"/')
|
||||
silent exec a:beg .','. a:end .'s/\V'.
|
||||
\ s:StartRx(a:cstart) . a:indentStr .'\zs\(\.\{-}\)'. s:EndRx(a:cend) .'/'.
|
||||
\ '\=s:ProcessedLine('. a:uncomment .', submatch(0), "'. a:cmtCheck .'", "'. cmtReplace .'")/ge'
|
||||
endf
|
||||
|
||||
function! s:CommentBlock(beg, end, uncomment, checkRx, replace, indentStr)
|
||||
let t = @t
|
||||
try
|
||||
@ -428,28 +442,33 @@ function! s:GuessFileType(beg, end, commentMode, filetype, ...)
|
||||
let cms = s:GuessCurrentCommentString(0)
|
||||
endif
|
||||
let n = a:beg
|
||||
" TLogVAR n, a:beg, a:end
|
||||
while n <= a:end
|
||||
let m = indent(n) + 1
|
||||
let le = col('$')
|
||||
let le = len(getline(n))
|
||||
" TLogVAR m, le
|
||||
while m < le
|
||||
let syntaxName = synIDattr(synID(n, m, 1), 'name')
|
||||
" TLogVAR syntaxName, n, m
|
||||
let ftypeMap = get(g:tcommentSyntaxMap, syntaxName)
|
||||
if !empty(ftypeMap)
|
||||
" TLogVAR ftypeMap
|
||||
return s:GetCustomCommentString(ftypeMap, a:commentMode, cms)
|
||||
elseif syntaxName =~ g:tcommentFileTypesRx
|
||||
let ft = substitute(syntaxName, g:tcommentFileTypesRx, '\1', '')
|
||||
" TLogVAR ft
|
||||
if exists('g:tcommentIgnoreTypes_'. a:filetype) && g:tcommentIgnoreTypes_{a:filetype} =~ '\<'.ft.'\>'
|
||||
let m = m + 1
|
||||
let m += 1
|
||||
else
|
||||
return s:GetCustomCommentString(ft, a:commentMode, cms)
|
||||
endif
|
||||
elseif syntaxName == '' || syntaxName == 'None' || syntaxName =~ '^\u\+$' || syntaxName =~ '^\u\U*$'
|
||||
let m = m + 1
|
||||
let m += 1
|
||||
else
|
||||
break
|
||||
endif
|
||||
endwh
|
||||
let n = n + 1
|
||||
let n += 1
|
||||
endwh
|
||||
return [cms, commentMode]
|
||||
endf
|
||||
|
@ -1,9 +1,9 @@
|
||||
" vimball.vim : construct a file containing both paths and files
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Date: May 30, 2008
|
||||
" Version: 26
|
||||
" Date: Dec 28, 2009
|
||||
" Version: 30
|
||||
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
|
||||
" Copyright: (c) 2004-2007 by Charles E. Campbell, Jr.
|
||||
" Copyright: (c) 2004-2009 by Charles E. Campbell, Jr.
|
||||
" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
|
||||
" (see |copyright|) except use "Vimball" instead of "Vim".
|
||||
" No warranty, express or implied.
|
||||
@ -11,11 +11,17 @@
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
if &cp || exists("g:loaded_vimball") || v:version < 700
|
||||
if &cp || exists("g:loaded_vimball")
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo = &cpo
|
||||
let g:loaded_vimball = "v26"
|
||||
let g:loaded_vimball = "v30"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of vimball needs vim 7.2"
|
||||
echohl Normal
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
"DechoTabOn
|
||||
|
||||
@ -52,30 +58,6 @@ if !exists("s:USAGE")
|
||||
call vimball#ShowMesg(s:WARNING,"(vimball) g:vimball_mkdir undefined")
|
||||
endif
|
||||
endif
|
||||
|
||||
" set up shell quoting character
|
||||
if exists("g:vimball_shq") && !exists("g:netrw_shq")
|
||||
let g:netrw_shq= g:vimball_shq
|
||||
endif
|
||||
if !exists("g:netrw_shq")
|
||||
if exists("&shq") && &shq != ""
|
||||
let g:netrw_shq= &shq
|
||||
elseif has("win32") || has("win95") || has("win64") || has("win16")
|
||||
if g:netrw_cygwin
|
||||
let g:netrw_shq= "'"
|
||||
else
|
||||
let g:netrw_shq= '"'
|
||||
endif
|
||||
else
|
||||
let g:netrw_shq= "'"
|
||||
endif
|
||||
" call Decho("g:netrw_shq<".g:netrw_shq.">")
|
||||
endif
|
||||
|
||||
" set up escape string (used to protect paths)
|
||||
if !exists("g:vimball_path_escape")
|
||||
let g:vimball_path_escape= ' ;#%'
|
||||
endif
|
||||
endif
|
||||
|
||||
" =====================================================================
|
||||
@ -106,8 +88,8 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
|
||||
let vbname= vbname.'.vba'
|
||||
endif
|
||||
" call Decho("vbname<".vbname.">")
|
||||
if a:1 =~ '[\/]'
|
||||
call vimball#ShowMesg(s:ERROR,"(MkVimball) vimball name<".a:1."> should not include slashes")
|
||||
if !a:writelevel && a:1 =~ '[\/]'
|
||||
call vimball#ShowMesg(s:ERROR,"(MkVimball) vimball name<".a:1."> should not include slashes; use ! to insist")
|
||||
" call Dret("MkVimball : vimball name<".a:1."> should not include slashes")
|
||||
return
|
||||
endif
|
||||
@ -125,7 +107,7 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
|
||||
let home= expand(a:2)
|
||||
else
|
||||
" use first existing directory from rtp
|
||||
let home= s:VimballHome()
|
||||
let home= vimball#VimballHome()
|
||||
endif
|
||||
|
||||
" save current directory
|
||||
@ -169,9 +151,8 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
|
||||
call setline(lastline+1,0)
|
||||
|
||||
" write the file from the tab
|
||||
let svfilepath= s:Path(svfile,'')
|
||||
" call Decho("exe $r ".fnameescape(svfilepath))
|
||||
exe "$r ".fnameescape(svfilepath)
|
||||
" call Decho("exe $r ".fnameescape(svfile))
|
||||
exe "$r ".fnameescape(svfile)
|
||||
|
||||
call setline(lastline+1,line("$") - lastline - 1)
|
||||
" call Decho("lastline=".lastline." line$=".line("$"))
|
||||
@ -186,13 +167,11 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
|
||||
call s:ChgDir(curdir)
|
||||
setlocal ff=unix
|
||||
if a:writelevel
|
||||
let vbnamepath= s:Path(vbname,'')
|
||||
" call Decho("exe w! ".fnameescape(vbnamepath))
|
||||
exe "w! ".fnameescape(vbnamepath)
|
||||
" call Decho("exe w! ".fnameescape(vbname))
|
||||
exe "w! ".fnameescape(vbname)
|
||||
else
|
||||
let vbnamepath= s:Path(vbname,'')
|
||||
" call Decho("exe w ".fnameescape(vbnamepath))
|
||||
exe "w ".fnameescape(vbnamepath)
|
||||
" call Decho("exe w ".fnameescape(vbname))
|
||||
exe "w ".fnameescape(vbname)
|
||||
endif
|
||||
" call Decho("Vimball<".vbname."> created")
|
||||
echo "Vimball<".vbname."> created"
|
||||
@ -215,7 +194,13 @@ endfun
|
||||
fun! vimball#Vimball(really,...)
|
||||
" call Dfunc("vimball#Vimball(really=".a:really.") a:0=".a:0)
|
||||
|
||||
if getline(1) !~ '^" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.$'
|
||||
if v:version < 701 || (v:version == 701 && !exists('*fnameescape'))
|
||||
echoerr "your vim is missing the fnameescape() function"
|
||||
" call Dret("vimball#Vimball : needs 7.1 with patch 299")
|
||||
return
|
||||
endif
|
||||
|
||||
if getline(1) !~ '^" Vimball Archiver'
|
||||
echoerr "(Vimball) The current file does not appear to be a Vimball!"
|
||||
" call Dret("vimball#Vimball")
|
||||
return
|
||||
@ -237,7 +222,7 @@ fun! vimball#Vimball(really,...)
|
||||
if a:0 > 0
|
||||
let home= expand(a:1)
|
||||
else
|
||||
let home= s:VimballHome()
|
||||
let home= vimball#VimballHome()
|
||||
endif
|
||||
" call Decho("home<".home.">")
|
||||
|
||||
@ -269,7 +254,9 @@ fun! vimball#Vimball(really,...)
|
||||
while 1 < linenr && linenr < line("$")
|
||||
let fname = substitute(getline(linenr),'\t\[\[\[1$','','')
|
||||
let fname = substitute(fname,'\\','/','g')
|
||||
let fsize = getline(linenr+1)+0
|
||||
" let fsize = getline(linenr+1)+0
|
||||
let fsize = substitute(getline(linenr+1),'^\(\d\+\).\{-}$','\1','')+0
|
||||
let fenc = substitute(getline(linenr+1),'^\d\+\s*\(\S\+\)$','\1','')
|
||||
let filecnt = filecnt + 1
|
||||
" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt)
|
||||
|
||||
@ -304,7 +291,7 @@ fun! vimball#Vimball(really,...)
|
||||
if !isdirectory(dirname)
|
||||
" call Decho("making <".dirname.">")
|
||||
if exists("g:vimball_mkdir")
|
||||
call system(g:vimball_mkdir." ".s:Escape(dirname))
|
||||
call system(g:vimball_mkdir." ".shellescape(dirname))
|
||||
else
|
||||
call mkdir(dirname)
|
||||
endif
|
||||
@ -332,11 +319,15 @@ fun! vimball#Vimball(really,...)
|
||||
|
||||
" write tab to file
|
||||
if a:really
|
||||
let fnamepath= s:Path(home."/".fname,'')
|
||||
let fnamepath= home."/".fname
|
||||
" call Decho("exe w! ".fnameescape(fnamepath))
|
||||
if fenc != ""
|
||||
exe "silent w! ++enc=".fnameescape(fenc)." ".fnameescape(fnamepath)
|
||||
else
|
||||
exe "silent w! ".fnameescape(fnamepath)
|
||||
echo "wrote ".fnamepath
|
||||
call s:RecordInVar(home,"call delete('".fnameescape(fnamepath)."')")
|
||||
endif
|
||||
echo "wrote ".fnameescape(fnamepath)
|
||||
call s:RecordInVar(home,"call delete('".fnamepath."')")
|
||||
endif
|
||||
|
||||
" return to tab with vimball
|
||||
@ -358,9 +349,9 @@ fun! vimball#Vimball(really,...)
|
||||
" set up help
|
||||
" call Decho("about to set up help: didhelp<".didhelp.">")
|
||||
if didhelp != ""
|
||||
let htpath= s:Path(home."/".didhelp,"")
|
||||
let htpath= home."/".didhelp
|
||||
" call Decho("exe helptags ".htpath)
|
||||
exe "helptags ".htpath
|
||||
exe "helptags ".fnameescape(htpath)
|
||||
echo "did helptags"
|
||||
endif
|
||||
|
||||
@ -415,7 +406,7 @@ fun! vimball#RmVimball(...)
|
||||
if a:0 >= 2
|
||||
let home= expand(a:2)
|
||||
else
|
||||
let home= s:VimballHome()
|
||||
let home= vimball#VimballHome()
|
||||
endif
|
||||
let curdir = getcwd()
|
||||
" call Decho("home <".home.">")
|
||||
@ -429,19 +420,20 @@ fun! vimball#RmVimball(...)
|
||||
keepalt keepjumps 1split
|
||||
silent! keepalt keepjumps e .VimballRecord
|
||||
let keepsrch= @/
|
||||
" call Decho("search for ^".curfile.".vba:")
|
||||
" call Decho("search for ^".curfile."[-0-9.]*.vba:")
|
||||
if search('^'.curfile.": ".'cw')
|
||||
" call Decho('search for ^\M'.curfile.'.\m: ')
|
||||
" call Decho('search for ^\M'.curfile.'.\mvba: ')
|
||||
" call Decho('search for ^\M'.curfile.'\m[-0-9.]*\.vba: ')
|
||||
if search('^\M'.curfile."\m: ".'cw')
|
||||
let foundit= 1
|
||||
elseif search('^'.curfile.".vba: ",'cw')
|
||||
elseif search('^\M'.curfile.".\mvba: ",'cw')
|
||||
let foundit= 1
|
||||
elseif search('^'.curfile.'[-0-9.]*.vba: ','cw')
|
||||
elseif search('^\M'.curfile.'\m[-0-9.]*\.vba: ','cw')
|
||||
let foundit= 1
|
||||
else
|
||||
let foundit = 0
|
||||
endif
|
||||
if foundit
|
||||
let exestring = substitute(getline("."),'^'.curfile.'\S\{-}\.vba: ','','')
|
||||
let exestring = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vba: ','','')
|
||||
let s:VBRstring= substitute(exestring,'call delete(','','g')
|
||||
let s:VBRstring= substitute(s:VBRstring,"[')]",'','g')
|
||||
" call Decho("exe ".exestring)
|
||||
@ -469,62 +461,62 @@ endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" vimball#Decompress: attempts to automatically decompress vimballs {{{2
|
||||
fun! vimball#Decompress(fname)
|
||||
" call Dfunc("Decompress(fname<".a:fname.">)")
|
||||
fun! vimball#Decompress(fname,...)
|
||||
" call Dfunc("Decompress(fname<".a:fname.">) a:0=".a:0)
|
||||
|
||||
" decompression:
|
||||
if expand("%") =~ '.*\.gz' && executable("gunzip")
|
||||
" handle *.gz with gunzip
|
||||
silent exe "!gunzip ".s:Escape(a:fname)
|
||||
silent exe "!gunzip ".shellescape(a:fname)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) gunzip may have failed with <".a:fname.">")
|
||||
endif
|
||||
let fname= substitute(a:fname,'\.gz$','','')
|
||||
exe "e ".escape(fname,' \')
|
||||
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
|
||||
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||
|
||||
elseif expand("%") =~ '.*\.gz' && executable("gzip")
|
||||
" handle *.gz with gzip -d
|
||||
silent exe "!gzip -d ".s:Escape(a:fname)
|
||||
silent exe "!gzip -d ".shellescape(a:fname)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "gzip -d" may have failed with <'.a:fname.">")
|
||||
endif
|
||||
let fname= substitute(a:fname,'\.gz$','','')
|
||||
exe "e ".escape(fname,' \')
|
||||
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
|
||||
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||
|
||||
elseif expand("%") =~ '.*\.bz2' && executable("bunzip2")
|
||||
" handle *.bz2 with bunzip2
|
||||
silent exe "!bunzip2 ".s:Escape(a:fname)
|
||||
silent exe "!bunzip2 ".shellescape(a:fname)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) bunzip2 may have failed with <".a:fname.">")
|
||||
endif
|
||||
let fname= substitute(a:fname,'\.bz2$','','')
|
||||
exe "e ".escape(fname,' \')
|
||||
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
|
||||
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||
|
||||
elseif expand("%") =~ '.*\.bz2' && executable("bzip2")
|
||||
" handle *.bz2 with bzip2 -d
|
||||
silent exe "!bzip2 -d ".s:Escape(a:fname)
|
||||
silent exe "!bzip2 -d ".shellescape(a:fname)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "bzip2 -d" may have failed with <'.a:fname.">")
|
||||
endif
|
||||
let fname= substitute(a:fname,'\.bz2$','','')
|
||||
exe "e ".escape(fname,' \')
|
||||
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
|
||||
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||
|
||||
elseif expand("%") =~ '.*\.zip' && executable("unzip")
|
||||
" handle *.zip with unzip
|
||||
silent exe "!unzip ".s:Escape(a:fname)
|
||||
silent exe "!unzip ".shellescape(a:fname)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) unzip may have failed with <".a:fname.">")
|
||||
endif
|
||||
let fname= substitute(a:fname,'\.zip$','','')
|
||||
exe "e ".escape(fname,' \')
|
||||
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
|
||||
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||
endif
|
||||
|
||||
set noma bt=nofile fmr=[[[,]]] fdm=marker
|
||||
if a:0 == 0| setlocal noma bt=nofile fmr=[[[,]]] fdm=marker | endif
|
||||
|
||||
" call Dret("Decompress")
|
||||
endfun
|
||||
@ -533,20 +525,21 @@ endfun
|
||||
" vimball#ShowMesg: {{{2
|
||||
fun! vimball#ShowMesg(level,msg)
|
||||
" call Dfunc("vimball#ShowMesg(level=".a:level." msg<".a:msg.">)")
|
||||
|
||||
let rulerkeep = &ruler
|
||||
let showcmdkeep = &showcmd
|
||||
set noruler noshowcmd
|
||||
redraw!
|
||||
|
||||
if &fo =~ '[ta]'
|
||||
echomsg "***vimball*** " a:msg
|
||||
echomsg "***vimball*** ".a:msg
|
||||
else
|
||||
if a:level == s:WARNING || a:level == s:USAGE
|
||||
echohl WarningMsg
|
||||
elseif a:level == s:ERROR
|
||||
echohl Error
|
||||
endif
|
||||
echomsg "***vimball*** " a:msg
|
||||
echomsg "***vimball*** ".a:msg
|
||||
echohl None
|
||||
endif
|
||||
|
||||
@ -571,27 +564,6 @@ fun! s:ChgDir(newdir)
|
||||
" call Dret("ChgDir : curdir<".getcwd().">")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:Path: prepend and append quotes and do escaping {{{2
|
||||
fun! s:Path(cmd,quote)
|
||||
" call Dfunc("Path(cmd<".a:cmd."> quote<".a:quote.">) vimball_path_escape<".g:vimball_path_escape.">")
|
||||
if (has("win32") || has("win95") || has("win64") || has("win16"))
|
||||
" let cmdpath= a:quote.substitute(a:cmd,'/','\\','g').a:quote
|
||||
let cmdpath= a:quote.substitute(a:cmd,'\\','/','g').a:quote
|
||||
" call Decho("cmdpath<".cmdpath."> (win32 mod)")
|
||||
else
|
||||
let cmdpath= a:quote.a:cmd.a:quote
|
||||
" call Decho("cmdpath<".cmdpath."> (not-win32 mod)")
|
||||
endif
|
||||
if a:quote == "" && g:vimball_path_escape !~ ' '
|
||||
let cmdpath= escape(cmdpath,' ')
|
||||
" call Decho("cmdpath<".cmdpath."> (empty quote case)")
|
||||
endif
|
||||
let cmdpath= escape(cmdpath,g:vimball_path_escape)
|
||||
" call Dret("Path <".cmdpath.">")
|
||||
return cmdpath
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:RecordInVar: record a un-vimball command in the .VimballRecord file {{{2
|
||||
fun! s:RecordInVar(home,cmd)
|
||||
@ -664,9 +636,9 @@ fun! s:RecordInFile(home)
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:VimballHome: determine/get home directory path (usually from rtp) {{{2
|
||||
fun! s:VimballHome()
|
||||
" call Dfunc("VimballHome()")
|
||||
" vimball#VimballHome: determine/get home directory path (usually from rtp) {{{2
|
||||
fun! vimball#VimballHome()
|
||||
" call Dfunc("vimball#VimballHome()")
|
||||
if exists("g:vimball_home")
|
||||
let home= g:vimball_home
|
||||
else
|
||||
@ -692,14 +664,14 @@ fun! s:VimballHome()
|
||||
if !isdirectory(home)
|
||||
if exists("g:vimball_mkdir")
|
||||
" call Decho("home<".home."> isn't a directory -- making it now with g:vimball_mkdir<".g:vimball_mkdir.">")
|
||||
" call Decho("system(".g:vimball_mkdir." ".s:Escape(home).")")
|
||||
call system(g:vimball_mkdir." ".s:Escape(home))
|
||||
" call Decho("system(".g:vimball_mkdir." ".shellescape(home).")")
|
||||
call system(g:vimball_mkdir." ".shellescape(home))
|
||||
else
|
||||
" call Decho("home<".home."> isn't a directory -- making it now with mkdir()")
|
||||
call mkdir(home)
|
||||
endif
|
||||
endif
|
||||
" call Dret("VimballHome <".home.">")
|
||||
" call Dret("vimball#VimballHome <".home.">")
|
||||
return home
|
||||
endfun
|
||||
|
||||
@ -713,14 +685,14 @@ fun! vimball#SaveSettings()
|
||||
let s:acdkeep = &acd
|
||||
endif
|
||||
let s:eikeep = &ei
|
||||
let s:fenkeep = &fen
|
||||
let s:fenkeep = &l:fen
|
||||
let s:hidkeep = &hidden
|
||||
let s:ickeep = &ic
|
||||
let s:lzkeep = &lz
|
||||
let s:pmkeep = &pm
|
||||
let s:repkeep = &report
|
||||
let s:vekeep = &ve
|
||||
let s:ffkeep = &ff
|
||||
let s:ffkeep = &l:ff
|
||||
if exists("&acd")
|
||||
setlocal ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm= ff=unix
|
||||
else
|
||||
@ -739,7 +711,7 @@ fun! vimball#RestoreSettings()
|
||||
if exists("&acd")
|
||||
let &acd = s:acdkeep
|
||||
endif
|
||||
let &fen = s:fenkeep
|
||||
let &l:fen = s:fenkeep
|
||||
let &hidden = s:hidkeep
|
||||
let &ic = s:ickeep
|
||||
let &lz = s:lzkeep
|
||||
@ -747,7 +719,7 @@ fun! vimball#RestoreSettings()
|
||||
let &report = s:repkeep
|
||||
let &ve = s:vekeep
|
||||
let &ei = s:eikeep
|
||||
let &ff = s:ffkeep
|
||||
let &l:ff = s:ffkeep
|
||||
if s:makeep[0] != 0
|
||||
" restore mark a
|
||||
" call Decho("restore mark-a: makeep=".string(makeep))
|
||||
@ -760,21 +732,6 @@ fun! vimball#RestoreSettings()
|
||||
" call Dret("RestoreSettings")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:Escape: {{{2
|
||||
fun s:Escape(name)
|
||||
" shellescape() was added by patch 7.0.111
|
||||
if exists("*shellescape")
|
||||
return shellescape(a:name)
|
||||
endif
|
||||
return g:netrw_shq . a:name . g:netrw_shq
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Restore:
|
||||
let &cpo= s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Modelines: {{{1
|
||||
" vim: fdm=marker
|
||||
|
@ -1,4 +1,4 @@
|
||||
*align.txt* The Alignment Tool Oct 29, 2008
|
||||
*align.txt* The Alignment Tool Mar 04, 2009
|
||||
|
||||
Author: Charles E. Campbell, Jr. <NdrOchip@ScampbellPfamily.AbizM>
|
||||
(remove NOSPAM from Campbell's email first)
|
||||
@ -51,8 +51,17 @@ Copyright: (c) 2004-2008 by Charles E. Campbell, Jr. *Align-copyright*
|
||||
==============================================================================
|
||||
2. Align Manual *alignman* *alignmanual* *align-manual* {{{1
|
||||
|
||||
To Enable: put <Align.vim> and <AlignMaps.vim> into your .vim/plugin
|
||||
To see a user's guide, see |align-usage|
|
||||
Align comes as a vimball; simply typing >
|
||||
vim Align.vba.gz
|
||||
:so %
|
||||
< should put its components where they belong. The components are: >
|
||||
.vim/plugin/AlignPlugin.vim
|
||||
.vim/plugin/AlignMapsPlugin.vim
|
||||
.vim/plugin/cecutil.vim
|
||||
.vim/autoload/Align.vim
|
||||
.vim/autoload/AlignMaps.vim
|
||||
.vim/doc/Align.txt
|
||||
< To see a user's guide, see |align-userguide|
|
||||
To see examples, see |alignctrl| and |alignmaps|
|
||||
>
|
||||
/=============+=========+=====================================================\
|
||||
@ -130,7 +139,7 @@ Copyright: (c) 2004-2008 by Charles E. Campbell, Jr. *Align-copyright*
|
||||
\=============================================================================/
|
||||
|
||||
==============================================================================
|
||||
3. Alignment Usage *alignusage* *align-usage* {{{1
|
||||
3. Alignment Usage *alignusage* *align-usage* *align-userguide* {{{1
|
||||
|
||||
|
||||
ALIGNMENT CONCEPTS *align-concept* *align-concepts* {{{2
|
||||
@ -179,8 +188,8 @@ ALIGNMENT CONCEPTS *align-concept* *align-concepts* {{{2
|
||||
xx = yy = zz = 4;
|
||||
zzz = yyy = zzz = 5;
|
||||
a = b = c = 3;
|
||||
< There are more options available for field justification: see
|
||||
|alignctrl-c|.
|
||||
< There are many more options available for field justification: see
|
||||
|alignctrl-c| and |alignctrl--|.
|
||||
|
||||
Separators, although commonly only one character long, are actually
|
||||
specified by regular expressions (see |regexp|), and one may left
|
||||
@ -249,7 +258,8 @@ ALIGNMENT COMMANDS *align-command* *align-commands* {{{2
|
||||
used (at least once) previously; this command
|
||||
restores the AlignCtrl settings when AlignPush
|
||||
was last used.
|
||||
<
|
||||
< Also see |alignctrl-m| for a way to automatically do
|
||||
an AlignPop after an Align (primarily this is for maps).
|
||||
|
||||
ALIGNMENT OPTIONS *align-option* *align-options* {{{2
|
||||
*align-utf8* *align-utf* *align-codepoint* *align-strlen* *align-multibyte*
|
||||
@ -258,9 +268,20 @@ ALIGNMENT OPTIONS *align-option* *align-options* {{{2
|
||||
available with utf-8, Align now provides a special option which you
|
||||
may choose based upon your needs:
|
||||
|
||||
Use Built-in strlen() ~
|
||||
>
|
||||
let g:Align_xstrlen= 0
|
||||
|
||||
< This is the fastest method, but it doesn't handle multibyte characters
|
||||
well. It is the default for:
|
||||
|
||||
enc=latin1
|
||||
vim compiled without multi-byte support
|
||||
$LANG is en_US.UTF-8 (assuming USA english)
|
||||
|
||||
Number of codepoints (Latin a + combining circumflex is two codepoints)~
|
||||
>
|
||||
let g:Align_xstrlen= 1:
|
||||
let g:Align_xstrlen= 1 (default)
|
||||
<
|
||||
Number of spacing codepoints (Latin a + combining circumflex is one~
|
||||
spacing codepoint; a hard tab is one; wide and narrow CJK are one~
|
||||
@ -276,7 +297,7 @@ ALIGNMENT OPTIONS *align-option* *align-options* {{{2
|
||||
<
|
||||
By putting one of these settings into your <.vimrc>, Align will use an
|
||||
internal (interpreted) function to determine a string's length instead
|
||||
of the Vim's built-in |strlen()| function. As the function is
|
||||
of the Vim's built-in |strlen()| function. Since the function is
|
||||
interpreted, Align will run a bit slower but will handle such strings
|
||||
correctly. The last setting (g:Align_xstrlen= 3) probably will run
|
||||
the slowest but be the most accurate. (thanks to Tony Mechelynck for
|
||||
@ -286,17 +307,17 @@ ALIGNMENT OPTIONS *align-option* *align-options* {{{2
|
||||
ALIGNMENT CONTROL *alignctrl* *align-control* {{{2
|
||||
|
||||
This command doesn't do the alignment operation itself; instead, it
|
||||
controls the subsequent alignment operation(s).
|
||||
controls subsequent alignment operation(s).
|
||||
|
||||
The first argument to AlignCtrl is a string which may contain one or
|
||||
more alignment control commands. Most of the commands are single
|
||||
letter commands; the exceptions are the p# and P# commands which
|
||||
interpret digits following the p or P as specifying padding about the
|
||||
more alignment control settings. Most of the settings are specified
|
||||
by single letters; the exceptions are the p# and P# commands which
|
||||
interpret a digit following the p or P as specifying padding about the
|
||||
separator.
|
||||
|
||||
The typical text line is considered to be composed of two or more
|
||||
fields separated by one or more separator pattern(s):
|
||||
>
|
||||
fields separated by one or more separator pattern(s): >
|
||||
|
||||
ws field ws separator ws field ws separator ...
|
||||
<
|
||||
where "ws" stands for "white space" such as blanks and/or tabs.
|
||||
@ -306,9 +327,11 @@ ALIGNMENT CONTROL *alignctrl* *align-control* {{{2
|
||||
|
||||
As a result, separators may not have white space (tabs or blanks) on
|
||||
their outsides (ie. ": :" is fine as a separator, but " :: " is
|
||||
not). Usually such separators are not needed.
|
||||
not). Usually such separators are not needed, although a map has been
|
||||
provided which works around this limitation and aligns on whitespace
|
||||
(see |alignmap-tsp|).
|
||||
|
||||
However, if you really need to have such separators with leading or
|
||||
However, if you really need to have separators with leading or
|
||||
trailing whitespace, consider handling them by performing a substitute
|
||||
first (ie. s/ :: /@/g), do the alignment on the temporary pattern
|
||||
(ie. @), and then perform a substitute to revert the separators back
|
||||
@ -533,7 +556,7 @@ ALIGNMENT CONTROL *alignctrl* *align-control* {{{2
|
||||
|
||||
Separators may be of differing lengths as shown in the example below.
|
||||
Hence they too may be justified left, right, or centered.
|
||||
Furthermore, separator justification specification is cyclic:
|
||||
Furthermore, separator justification specifications are cyclic:
|
||||
|
||||
< means <<<<<... justify separator(s) to the left
|
||||
> means >>>>>... justify separator(s) to the right
|
||||
@ -595,7 +618,7 @@ ALIGNMENT CONTROL *alignctrl* *align-control* {{{2
|
||||
AlignCtrl v
|
||||
<
|
||||
To see what g/v patterns are currently active, just use the reporting
|
||||
capability of a plain AlignCtrl call: >
|
||||
capability of an unadorned call to AlignCtrl: >
|
||||
|
||||
AlignCtrl
|
||||
<
|
||||
@ -656,6 +679,13 @@ ALIGNMENT CONTROL *alignctrl* *align-control* {{{2
|
||||
padded on the right with spaces (left justification), and separators
|
||||
will be padded on each side with a single space.
|
||||
|
||||
To change one of these items, see:
|
||||
|
||||
AlignCtrl......|alignctrl|
|
||||
qty............|align-concept|
|
||||
AlignStyle.....|alignctrl--| |alignctrl-+| |alignctrl-:||alignctrl-c|
|
||||
Padding........|alignctrl-p| |alignctrl-P|
|
||||
|
||||
One may get a string which can be fed back into AlignCtrl: >
|
||||
|
||||
:let alignctrl= Align#AlignCtrl()
|
||||
@ -680,7 +710,7 @@ ALIGNMENT *align-align* {{{2
|
||||
|
||||
:[range]Align [list-of-separators]
|
||||
<
|
||||
where the |range| is the usual Vim-powered set of possibilities; the
|
||||
where the |:range| is the usual Vim-powered set of possibilities; the
|
||||
list of separators is the same as the AlignCtrl capability. There is
|
||||
only one list of separators, but either AlignCtrl or Align can be used
|
||||
to specify that list.
|
||||
@ -728,19 +758,19 @@ ALIGNMENT *align-align* {{{2
|
||||
==============================================================================
|
||||
4. Alignment Maps *alignmaps* *align-maps* {{{1
|
||||
|
||||
There are a number of maps using Align#AlignCtrl() and Align#Align() in the
|
||||
<AlignMaps.vim> file. This file may also be put into the plugins
|
||||
subdirectory. Since AlignCtrl and Align supercede textab and its
|
||||
<ttalign.vim> file, the maps either have a leading "t" (for "textab")
|
||||
or the more complicated ones an "a" (for "alignment") for backwards
|
||||
compatibility.
|
||||
There are a number of maps using Align#AlignCtrl() and Align#Align()
|
||||
in the <AlignMapsPlugin.vim> file. This file may also be put into the
|
||||
plugins subdirectory. Since AlignCtrl and Align supercede textab and
|
||||
its <ttalign.vim> file, the maps either have a leading "t" (for
|
||||
"textab") or the more complicated ones an "a" (for "alignment") for
|
||||
backwards compatibility.
|
||||
|
||||
Thee maps are shown below with a leading backslash (\). Actually,
|
||||
the <Leader> construct is used (see :help mapleader), so the leading
|
||||
map kick-off character is easily customized.
|
||||
The maps are shown below with a leading backslash (\). Actually, the
|
||||
<Leader> construct is used (see |mapleader|), so the maps' leading
|
||||
kick-off character is easily customized.
|
||||
|
||||
Furthermore, all AlignMaps.vim maps use the <Plug> construct (see
|
||||
|<Plug>|and |<usr_41.txt|). Hence, if one wishes to override the
|
||||
Furthermore, all AlignMapsPlugin.vim maps use the <Plug> construct (see
|
||||
|<Plug>|and |usr_41.txt|). Hence, if one wishes to override the
|
||||
mapping entirely, one may do that, too. As an example: >
|
||||
map <Leader>ACOM <Plug>AM_acom
|
||||
< would have \ACOM do what \acom previously did (assuming that the
|
||||
@ -748,6 +778,7 @@ ALIGNMENT *align-align* {{{2
|
||||
|
||||
\a, : useful for breaking up comma-separated
|
||||
declarations prior to \adec |alignmap-a,|
|
||||
\a( : aligns ( and , (useful for prototypes) *alignmap-a(*
|
||||
\a? : aligns (...)? ...:... expressions on ? and : |alignmap-a?|
|
||||
\a< : aligns << and >> for c++ |alignmap-a<|
|
||||
\a= : aligns := assignments |alignmap-a=|
|
||||
@ -777,6 +808,12 @@ ALIGNMENT *align-align* {{{2
|
||||
(left justified)
|
||||
\ts, : like \t, but swaps whitespace on the right of *alignmap-ts,*
|
||||
the commas to their left
|
||||
\ts: : like \t: but swaps whitespace on the right of *alignmap-ts:*
|
||||
the colons to their left
|
||||
\ts< : like \t< but swaps whitespace on the right of *alignmap-ts<*
|
||||
the less-than signs to their left
|
||||
\ts= : like \t= but swaps whitespace on the right of *alignmap-ts=*
|
||||
the equals signs to their left
|
||||
\Tsp : use Align to make a table separated by blanks |alignmap-Tsp|
|
||||
(right justified)
|
||||
\tsq : use Align to make a table separated by blanks |alignmap-tsq|
|
||||
@ -808,7 +845,7 @@ ALIGNMENT *align-align* {{{2
|
||||
|
||||
ALIGNMENT MAP USE WITH VISUAL MODE~
|
||||
Alternatively, one may select the text with the "V" visual mode
|
||||
selector.
|
||||
command.
|
||||
|
||||
ALIGNMENT MAP USE WITH MENUS~
|
||||
One may use the mark-and-move style (ma, move, use the menu) or
|
||||
@ -816,7 +853,7 @@ ALIGNMENT *align-align* {{{2
|
||||
the alignment map with menu selection). The alignment map menu
|
||||
items are under DrChip.AlignMaps .
|
||||
|
||||
One may change the top level menu name to whatever is wished; by
|
||||
One may even change the top level menu name to whatever is wished; by
|
||||
default, its >
|
||||
let g:DrChipTopLvlMenu= "DrChip."
|
||||
< If you set the variable to the empty string (""), then no menu items
|
||||
@ -825,14 +862,19 @@ ALIGNMENT *align-align* {{{2
|
||||
must be included).
|
||||
|
||||
COMPLEX ALIGNMENT MAP METHOD~
|
||||
|
||||
For those complex alignment maps which do alignment on constructs
|
||||
(e.g. \acom, \adec, etc), a series of substitutes is used to insert
|
||||
"@" symbols in appropriate locations. Align#Align() is then used to do
|
||||
alignment directly on "@"s; then it is followed by further substitutes
|
||||
to do clean-up. However, the maps \WS and \WE protect any original
|
||||
embedded "@" symbols by first converting them to <DEL> characters,
|
||||
doing the requested job, and then converting them back.
|
||||
"@" symbols in appropriate locations. Align#Align() is then used to
|
||||
do alignment directly on "@"s; then it is followed by further
|
||||
substitutes to do clean-up. However, the maps \WS and \WE, used by
|
||||
every map supported by AlignMaps, protect any original embedded "@"
|
||||
symbols by first converting them to <DEL> characters, doing the
|
||||
requested job, and then converting them back. >
|
||||
|
||||
\WS calls AlignMaps#WrapperStart()
|
||||
\WE calls AlignMaps#WrapperEnd()
|
||||
<
|
||||
|
||||
---------------------------
|
||||
Alignment Map Examples: \a, *alignmap-a,* {{{3
|
||||
@ -1136,7 +1178,7 @@ ALIGNMENT *align-align* {{{2
|
||||
Also see |alignmap-acom|
|
||||
|
||||
|
||||
---------------------------
|
||||
--------------------------- *alignmap-Tsp*
|
||||
Alignment Map Examples: \tsp *alignmap-tsp* {{{3
|
||||
---------------------------
|
||||
|
||||
@ -1266,9 +1308,14 @@ ALIGNMENT *align-align* {{{2
|
||||
<TR><TD> ...field three... </TD><TD> ...field four... </TD></TR>
|
||||
<
|
||||
==============================================================================
|
||||
4. Alignment Tool History *align-history* {{{1
|
||||
4. Alignment Tools' History *align-history* {{{1
|
||||
|
||||
ALIGN HISTORY {{{2
|
||||
35 : Nov 02, 2008 * g:loaded_AlignPlugin testing to prevent re-loading
|
||||
installed
|
||||
Nov 19, 2008 * new sanity check for an AlignStyle of just ":"
|
||||
Jan 08, 2009 * save&restore of |'mod'| now done with local
|
||||
variant
|
||||
34 : Jul 08, 2008 * using :AlignCtrl before entering any alignment
|
||||
control commands was causing an error.
|
||||
33 : Sep 20, 2007 * s:Strlen() introduced to support various ways
|
||||
@ -1335,6 +1382,14 @@ ALIGN HISTORY {{{2
|
||||
9 : Jun 25, 2002 : implemented cyclic padding
|
||||
|
||||
ALIGNMENT MAP HISTORY *alignmap-history* {{{2
|
||||
v41 Nov 02, 2008 * g:loaded_AlignMapsPlugin testing to prevent
|
||||
re-loading installed
|
||||
* AlignMaps now use 0x0f (ctrl-p) for special
|
||||
character substitutions (instead of 0xff).
|
||||
Seems to avoid some problems with having to
|
||||
use Strlen().
|
||||
* bug fixed with \ts,
|
||||
* new maps: \ts; \ts, \ts: \ts< \ts= \a(
|
||||
v40 Oct 21, 2008 * Modified AlignMaps so that its maps use <Plug>s
|
||||
and <script>s. \t@ and related maps have been
|
||||
changed to call StdAlign() instead. The
|
||||
|
21
vimfiles/doc/editsrec.txt
Normal file
21
vimfiles/doc/editsrec.txt
Normal file
@ -0,0 +1,21 @@
|
||||
" Vim Global Plugin for Editing .srec Files, doc-File
|
||||
" Maintainer: Alexander Fleck
|
||||
" <alexander.fleck@gmx.net>
|
||||
" License: This File is placed in the Public Domain.
|
||||
" Revision | Date [DD.MM.YY] | Changes
|
||||
" 00.01.00 | 05.07.09 | 01. Revision
|
||||
|
||||
*editsrec.txt* Global Plugin for Editing .srec Files
|
||||
|
||||
This Plugin consists of the following Files:
|
||||
/plugin/editsrec.vim
|
||||
/plugin/editsrec_test.txt
|
||||
/autoload/libsrec.vim
|
||||
and
|
||||
/doc/editsrec.txt
|
||||
, this File.
|
||||
|
||||
The Purpose of this Plugin is to edit .srec-Files.
|
||||
Currently it only allows Editing Line by Line,
|
||||
but Handling of Files will be added later.
|
||||
|
@ -1,8 +1,22 @@
|
||||
*pi_netrw.txt* For Vim version 7.2. Last change: 2008 Oct 23
|
||||
*pi_netrw.txt* For Vim version 7.2. Last change: 2009 Dec 28
|
||||
|
||||
-----------------------------------------------------
|
||||
NETRW REFERENCE MANUAL by Charles E. Campbell, Jr.
|
||||
-----------------------------------------------------
|
||||
Author: Charles E. Campbell, Jr. <NdrOchip@ScampbellPfamily.AbizM>
|
||||
(remove NOSPAM from Campbell's email first)
|
||||
|
||||
Copyright: Copyright (C) 2009 Charles E Campbell, Jr *netrw-copyright*
|
||||
Permission is hereby granted to use and distribute this code, with
|
||||
or without modifications, provided that this copyright notice is
|
||||
copied with it. Like anything else that's free, netrw.vim,
|
||||
netrwPlugin.vim, netrwFileHandlers.vim, netrwSettings.vim,
|
||||
syntax/netrw.vim, and pi_netrw.txt are provided *as is* and comes
|
||||
with no warranty of any kind, either expressed or implied. No
|
||||
guarantees of merchantability. No guarantees of suitability for
|
||||
any purpose. By using this plugin, you agree that in no event will
|
||||
the copyright holder be liable for any damages resulting from the
|
||||
use of this software.
|
||||
|
||||
|
||||
*dav* *ftp* *netrw-file* *Nread* *rcp* *scp*
|
||||
@ -18,6 +32,7 @@
|
||||
EXTERNAL APPLICATIONS AND PROTOCOLS................|netrw-externapp|
|
||||
READING............................................|netrw-read|
|
||||
WRITING............................................|netrw-write|
|
||||
SOURCING...........................................|netrw-source|
|
||||
DIRECTORY LISTING..................................|netrw-dirlist|
|
||||
CHANGING THE USERID AND PASSWORD...................|netrw-chgup|
|
||||
VARIABLES AND SETTINGS.............................|netrw-variables|
|
||||
@ -38,7 +53,7 @@
|
||||
Browsing With A Horizontally Split Window..........|netrw-o|
|
||||
Browsing With A New Tab............................|netrw-t|
|
||||
Browsing With A Vertically Split Window............|netrw-v|
|
||||
Change Listing Style...............................|netrw-i|
|
||||
Change Listing Style.(thin wide long tree).........|netrw-i|
|
||||
Changing To A Bookmarked Directory.................|netrw-gb|
|
||||
Changing To A Predecessor Directory................|netrw-u|
|
||||
Changing To A Successor Directory..................|netrw-U|
|
||||
@ -81,10 +96,12 @@
|
||||
Renaming Files Or Directories......................|netrw-move|
|
||||
Reversing Sorting Order............................|netrw-r|
|
||||
Selecting Sorting Style............................|netrw-s|
|
||||
Setting Editing Window.............................|netrw-C|
|
||||
10. Problems and Fixes...................................|netrw-problems|
|
||||
11. Debugging Netrw Itself...............................|netrw-debug|
|
||||
12. History..............................................|netrw-history|
|
||||
13. Credits..............................................|netrw-credits|
|
||||
13. Todo.................................................|netrw-todo|
|
||||
14. Credits..............................................|netrw-credits|
|
||||
|
||||
{Vi does not have any of this}
|
||||
|
||||
@ -92,7 +109,7 @@
|
||||
2. Starting With Netrw *netrw-start* {{{1
|
||||
|
||||
Netrw makes reading files, writing files, browsing over a network, and
|
||||
browsing locally easy! First, make sure that you have plugins enabled, so
|
||||
local browsing easy! First, make sure that you have plugins enabled, so
|
||||
you'll need to have at least the following in your <.vimrc>:
|
||||
(or see |netrw-activate|) >
|
||||
|
||||
@ -137,8 +154,11 @@ the directory name is followed by a "/"): >
|
||||
<
|
||||
See |netrw-browse| for more!
|
||||
|
||||
There are more protocols supported by netrw just than scp and ftp, too: see the
|
||||
next section, |netrw-externapp|, for how to use these external applications.
|
||||
There are more protocols supported by netrw than just scp and ftp, too: see the
|
||||
next section, |netrw-externapp|, on how to use these external applications with
|
||||
netrw and vim.
|
||||
|
||||
PREVENTING LOADING
|
||||
|
||||
If you want to use plugins, but for some reason don't wish to use netrw, then
|
||||
you need to avoid loading both the plugin and the autoload portions of netrw.
|
||||
@ -151,7 +171,7 @@ You may do so by placing the following two lines in your <.vimrc>: >
|
||||
==============================================================================
|
||||
3. Netrw Reference *netrw-ref* {{{1
|
||||
|
||||
Netrw supports several protocols in addition to scp and ftp mentioned
|
||||
Netrw supports several protocols in addition to scp and ftp as mentioned
|
||||
in |netrw-start|. These include dav, fetch, http,... well, just look
|
||||
at the list in |netrw-externapp|. Each protocol is associated with a
|
||||
variable which holds the default command supporting that protocol.
|
||||
@ -175,17 +195,19 @@ EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
|
||||
sftp: *g:netrw_sftp_cmd* = "sftp"
|
||||
|
||||
*g:netrw_http_xcmd* : the option string for http://... protocols are
|
||||
specified via this variable and may be independently oveerridden.
|
||||
specified via this variable and may be independently overridden. By
|
||||
default, the option arguments for the http-handling commands are: >
|
||||
|
||||
elinks : "-dump >"
|
||||
links : "-dump >"
|
||||
elinks : "-source >"
|
||||
links : "-source >"
|
||||
curl : "-o"
|
||||
wget : "-q -O"
|
||||
fetch : "-o"
|
||||
|
||||
For example, if your system has elinks but you want to see the html
|
||||
source in detail rather than a text rendering thereof, you may wish
|
||||
to have let g:netrw_http_xcmd= "-source >" in your .vimrc.
|
||||
<
|
||||
For example, if your system has elinks, and you'd rather see the
|
||||
page using an attempt at rendering the text, you may wish to have >
|
||||
let g:netrw_http_xcmd= "-dump >"
|
||||
< in your .vimrc.
|
||||
|
||||
|
||||
READING *netrw-read* *netrw-nread* {{{2
|
||||
@ -259,8 +281,8 @@ DIRECTORY LISTING *netrw-dirlist* {{{2
|
||||
:e ftp://[user]@hostname/path/
|
||||
<
|
||||
For remote directories (ie. those using scp or ftp), that trailing
|
||||
"/" is necessary (it tells netrw that its to treat it as a directory
|
||||
to browse instead of a file to download).
|
||||
"/" is necessary (the slash tells netrw to treat the argument as a
|
||||
directory to browse instead of a file to download).
|
||||
|
||||
However, the Nread command can also be used to accomplish this:
|
||||
|
||||
@ -293,8 +315,17 @@ preferences. One way to look at them is via the command :NetrwSettings (see
|
||||
settings are described below, in |netrw-browser-options|, and in
|
||||
|netrw-externapp|:
|
||||
|
||||
*b:netrw_lastfile* last file Network-read/written retained on a per-buffer
|
||||
basis (supports plain :Nw )
|
||||
*b:netrw_lastfile* last file Network-read/written retained on a
|
||||
per-buffer basis (supports plain :Nw )
|
||||
|
||||
*g:netrw_chgwin* specifies a window number where file edits will take
|
||||
place. (also see |netrw-C|)
|
||||
(default) not defined
|
||||
|
||||
*g:Netrw_funcref* specifies a function to be called when netrw edits
|
||||
a file. The file is first edited, and then the
|
||||
function reference (|Funcref|) is called.
|
||||
(default) not defined
|
||||
|
||||
*g:netrw_ftp* if it doesn't exist, use default ftp
|
||||
=0 use default ftp (uid password)
|
||||
@ -303,7 +334,7 @@ settings are described below, in |netrw-browser-options|, and in
|
||||
value of this variable to see if the alternate ftp
|
||||
method works for your setup.
|
||||
|
||||
*g:netrw_extracmd* default: doesn't exist
|
||||
*g:netrw_ftpextracmd* default: doesn't exist
|
||||
If this variable exists, then any string it contains
|
||||
will be placed into the commands set to your ftp
|
||||
client. As an example:
|
||||
@ -323,8 +354,8 @@ settings are described below, in |netrw-browser-options|, and in
|
||||
*g:netrw_nogx* if this variable exists, then the "gx" map will not
|
||||
be available (see |netrw-gx|)
|
||||
|
||||
*g:netrw_uid* (ftp) user-id, retained on a per-session basis
|
||||
*s:netrw_passwd* (ftp) password, retained on a per-session basis
|
||||
*g:netrw_uid* (ftp) user-id, retained on a per-vim-session basis
|
||||
*s:netrw_passwd* (ftp) password, retained on a per-vim-session basis
|
||||
|
||||
*g:netrw_preview* =0 (default) preview window shown in a horizontally
|
||||
split window
|
||||
@ -335,6 +366,13 @@ settings are described below, in |netrw-browser-options|, and in
|
||||
*g:netrw_scpport* = "-P" : option to use to set port for scp
|
||||
*g:netrw_sshport* = "-p" : option to use to set port for ssh
|
||||
|
||||
*g:netrw_sepchr* =\0xff
|
||||
=\0x01 for enc == euc-jp (and perhaps it should be for
|
||||
others, too, please let me
|
||||
know)
|
||||
Separates priority codes from filenames internally.
|
||||
See |netrw-p12|.
|
||||
|
||||
*g:netrw_silent* =0 : transfers done normally
|
||||
=1 : transfers done silently
|
||||
|
||||
@ -398,6 +436,30 @@ series of commands (typically ftp) which it issues to an external program
|
||||
from/written to a temporary file (under Unix/Linux, /tmp/...) which the
|
||||
<netrw.vim> script will clean up.
|
||||
|
||||
Now, a word about Jan Minář's "FTP User Name and Password Disclosure"; first,
|
||||
ftp is not a secure protocol. User names and passwords are transmitted "in
|
||||
the clear" over the internet; any snooper tool can pick these up; this is not
|
||||
a netrw thing, this is a ftp thing. If you're concerned about this, please
|
||||
try to use scp or sftp instead.
|
||||
|
||||
Netrw re-uses the user id and password during the same vim session and so long
|
||||
as the remote hostname remains the same.
|
||||
|
||||
Jan seems to be a bit confused about how netrw handles ftp; normally multiple
|
||||
commands are performed in a "ftp session", and he seems to feel that the
|
||||
uid/password should only be retained over one ftp session. However, netrw
|
||||
does every ftp operation in a separate "ftp session"; so remembering the
|
||||
uid/password for just one "ftp session" would be the same as not remembering
|
||||
the uid/password at all. IMHO this would rapidly grow tiresome as one
|
||||
browsed remote directories, for example.
|
||||
|
||||
On the other hand, thanks go to Jan M. for pointing out the many
|
||||
vulnerabilities that netrw (and vim itself) had had in handling "crafted"
|
||||
filenames. The |shellescape()| and |fnameescape()| functions were written in
|
||||
response by Bram Moolenaar to handle these sort of problems, and netrw has
|
||||
been modified to use them. Still, my advice is, if the "filename" looks like
|
||||
a vim command that you aren't comfortable with having executed, don't open it.
|
||||
|
||||
*netrw-putty* *netrw-pscp* *netrw-psftp*
|
||||
One may modify any protocol's implementing external application by setting a
|
||||
variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
|
||||
@ -414,8 +476,8 @@ file). Thus, concerned users may decide to write a NetReadFixup() function
|
||||
that will clean up after reading with their ftp. Some Unix systems (ie.,
|
||||
FreeBSD) provide a utility called "fetch" which uses the ftp protocol but is
|
||||
not noisy and more convenient, actually, for <netrw.vim> to use.
|
||||
Consequently, if "fetch" is executable, it will be used to do reads for
|
||||
ftp://... (and http://...) . See |netrw-var| for more about this.
|
||||
Consequently, if "fetch" is available (ie. executable), it may be preferable
|
||||
to use it for ftp://... based transfers.
|
||||
|
||||
For rcp, scp, sftp, and http, one may use network-oriented file transfers
|
||||
transparently; ie.
|
||||
@ -423,7 +485,7 @@ transparently; ie.
|
||||
vim rcp://[user@]machine/path
|
||||
vim scp://[user@]machine/path
|
||||
<
|
||||
If your ftp supports <.netrc>, then it too can be just as transparently used
|
||||
If your ftp supports <.netrc>, then it too can be transparently used
|
||||
if the needed triad of machine name, user id, and password are present in
|
||||
that file. Your ftp must be able to use the <.netrc> file on its own, however.
|
||||
>
|
||||
@ -586,9 +648,8 @@ below, a {netfile} is an url to a remote file.
|
||||
:[range]Nw[rite] {netfile} [{netfile}]...
|
||||
Write the specified lines to the {netfile}.
|
||||
|
||||
:Nr[ead] Read the specified lines into the current
|
||||
buffer from the file specified in
|
||||
b:netrw_lastfile.
|
||||
:Nr[ead] Read the lines from the file specified in b:netrw_lastfile
|
||||
into the current buffer.
|
||||
|
||||
:Nr[ead] {netfile} {netfile}...
|
||||
Read the {netfile} after the current line.
|
||||
@ -651,12 +712,9 @@ set in the user's <.vimrc> file: (see also |netrw-settings| |netrw-protocol|)
|
||||
to be ignored.
|
||||
b:netrw_lastfile Holds latest method/machine/path.
|
||||
b:netrw_line Holds current line number (during NetWrite)
|
||||
g:netrw_passwd Holds current password for ftp.
|
||||
g:netrw_silent =0 transfers done normally
|
||||
=1 transfers done silently
|
||||
g:netrw_uid Holds current user-id for ftp.
|
||||
=1 use alternate ftp (user uid password)
|
||||
(see |netrw-options|)
|
||||
g:netrw_use_nt_rcp =0 don't use WinNT/2K/XP's rcp (default)
|
||||
=1 use WinNT/2K/XP's rcp, binary mode
|
||||
g:netrw_win95ftp =0 use unix-style ftp even if win95/98/ME/etc
|
||||
@ -672,9 +730,10 @@ temporarily.
|
||||
Variable Meaning
|
||||
-------- ------------------------------------
|
||||
<
|
||||
g:netrw_method Index indicating rcp/ftp+.netrc/ftp
|
||||
b:netrw_method Index indicating rcp/ftp+.netrc/ftp
|
||||
w:netrw_method (same as b:netrw_method)
|
||||
g:netrw_machine Holds machine name parsed from input
|
||||
g:netrw_fname Holds filename being accessed >
|
||||
b:netrw_fname Holds filename being accessed >
|
||||
------------------------------------------------------------
|
||||
<
|
||||
*netrw-protocol*
|
||||
@ -764,7 +823,7 @@ renders the server treatment as "trusted".
|
||||
|
||||
*netrw-fixup* *netreadfixup*
|
||||
If your ftp for whatever reason generates unwanted lines (such as AUTH
|
||||
messages) you may write a NetReadFixup(tmpfile) function:
|
||||
messages) you may write a NetReadFixup() function:
|
||||
>
|
||||
function! NetReadFixup(method,line1,line2)
|
||||
" a:line1: first new line in current file
|
||||
@ -837,7 +896,7 @@ where [protocol] is typically scp or ftp. As an example, try: >
|
||||
|
||||
vim ftp://ftp.home.vim.org/pub/vim/
|
||||
<
|
||||
For local directories, the trailing slash is not required. Again, because its
|
||||
For local directories, the trailing slash is not required. Again, because it's
|
||||
easy to miss: to browse remote directories, the url must terminate with a
|
||||
slash!
|
||||
|
||||
@ -849,6 +908,7 @@ There are several things you can do to affect the browser's display of files:
|
||||
|
||||
* To change the listing style, press the "i" key (|netrw-i|).
|
||||
Currently there are four styles: thin, long, wide, and tree.
|
||||
To make that change "permanent", see |g:netrw_liststyle|.
|
||||
|
||||
* To hide files (don't want to see those xyz~ files anymore?) see
|
||||
|netrw-ctrl-h|.
|
||||
@ -857,6 +917,18 @@ There are several things you can do to affect the browser's display of files:
|
||||
|
||||
See |netrw-browse-cmds| for all the things you can do with netrw!
|
||||
|
||||
*netrw-getftype* *netrw-filigree* *netrw-ftype*
|
||||
The |getftype()| function is used to append a bit of filigree to indicate
|
||||
filetype to locally listed files:
|
||||
|
||||
directory : /
|
||||
executable : *
|
||||
fifo : |
|
||||
links : @
|
||||
sockets : =
|
||||
|
||||
The filigree also affects the |g:netrw_sort_sequence|.
|
||||
|
||||
|
||||
QUICK HELP *netrw-quickhelp* {{{2
|
||||
(Use ctrl-] to select a topic)~
|
||||
@ -895,11 +967,11 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
|
||||
hiding (suppress display of files matching g:netrw_list_hide)
|
||||
showing (display only files which match g:netrw_list_hide)
|
||||
c Make browsing directory the current directory |netrw-c|
|
||||
C Setting the editing window |netrw-C|
|
||||
d Make a directory |netrw-d|
|
||||
D Attempt to remove the file(s)/directory(ies) |netrw-D|
|
||||
gb Go to previous bookmarked directory |netrw-gb|
|
||||
gh Quick hide/unhide of dot-files |netrw-gh|
|
||||
gi Display information on file |netrw-qf|
|
||||
<c-h> Edit file hiding list |netrw-ctrl-h|
|
||||
i Cycle between thin, long, wide, and tree listings |netrw-i|
|
||||
<c-l> Causes Netrw to refresh the directory listing |netrw-ctrl-l|
|
||||
@ -911,7 +983,7 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
|
||||
mh Toggle marked file suffices' presence on hiding list |netrw-mh|
|
||||
mm Move marked files to marked-file target directory |netrw-mm|
|
||||
mp Print marked files |netrw-mp|
|
||||
mr Mark files satisfying a |regexp| |netrw-mr|
|
||||
mr Mark files satisfying a shell-style |regexp| |netrw-mr|
|
||||
mt Current browsing directory becomes markfile target |netrw-mt|
|
||||
mT Apply ctags to marked files |netrw-mT|
|
||||
mu Unmark all marked files |netrw-mu|
|
||||
@ -922,7 +994,8 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
|
||||
O Obtain a file specified by cursor |netrw-O|
|
||||
p Preview the file |netrw-p|
|
||||
P Browse in the previously used window |netrw-P|
|
||||
q List bookmarked directories and history |netrw-qb|
|
||||
qb List bookmarked directories and history |netrw-qb|
|
||||
qf Display information on file |netrw-qf|
|
||||
r Reverse sorting order |netrw-r|
|
||||
R Rename the designed file(s)/directory(ies) |netrw-R|
|
||||
s Select sorting style: by name, time, or file size |netrw-s|
|
||||
@ -936,6 +1009,7 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
|
||||
|
||||
% Open a new file in netrw's current directory |netrw-%|
|
||||
|
||||
*netrw-mouse* *netrw-leftmouse* *netrw-middlemouse* *netrw-rightmouse*
|
||||
<leftmouse> (gvim only) selects word under mouse as if a <cr>
|
||||
had been pressed (ie. edit file, change directory)
|
||||
<middlemouse> (gvim only) same as P selecting word under mouse;
|
||||
@ -970,7 +1044,7 @@ One may easily "bookmark" a directory by using >
|
||||
|
||||
mb
|
||||
<
|
||||
Bookmarks are retained in between sesions in a $HOME/.netrwbook file, and are
|
||||
Bookmarks are retained in between sessions in a $HOME/.netrwbook file, and are
|
||||
kept in sorted order.
|
||||
|
||||
Related Topics:
|
||||
@ -999,8 +1073,8 @@ horizontally or vertically, respectively. When the option is set to three, a
|
||||
<cr> will cause the file to appear in a new tab.
|
||||
|
||||
|
||||
When using the gui (gvim) one may select a file by pressing the <leftmouse>
|
||||
button. In addtion, if
|
||||
When using the gui (gvim), one may select a file by pressing the <leftmouse>
|
||||
button. In addition, if
|
||||
|
||||
*|g:netrw_retmap| == 1 AND (its default value is 0)
|
||||
* in a netrw-selected file, AND
|
||||
@ -1041,19 +1115,19 @@ new window and cursor at the bottom, have
|
||||
|
||||
let g:netrw_alto = 1
|
||||
|
||||
in your <.vimrc>. (also see |netrw-t| |netrw-v|)
|
||||
|
||||
There is only one tree listing buffer; using "o" on a displayed subdirectory
|
||||
will split the screen, but the same buffer will be shown twice.
|
||||
in your <.vimrc>. (also see |netrw-t| |netrw-T| |netrw-v|)
|
||||
|
||||
Associated setting variables: |g:netrw_alto| |g:netrw_winsize|
|
||||
|
||||
|
||||
BROWSING WITH A NEW TAB *netrw-t* {{{2
|
||||
BROWSING WITH A NEW TAB *netrw-t* *netrw-T* {{{2
|
||||
|
||||
Normally one enters a file or directory using the <cr>. The "t" map
|
||||
allows one to open a new window hold the new directory listing or file in a
|
||||
new tab. (also see: |netrw-o| |netrw-v|)
|
||||
allows one to open a new window holding the new directory listing or file in
|
||||
a new tab. The "T" version puts the file or directory into a background tab
|
||||
(see |gT|)
|
||||
|
||||
Related actions: |netrw-o| |netrw-v|
|
||||
|
||||
|
||||
BROWSING WITH A VERTICALLY SPLIT WINDOW *netrw-v* {{{2
|
||||
@ -1068,18 +1142,19 @@ window and cursor at the right, have
|
||||
|
||||
let g:netrw_altv = 1
|
||||
|
||||
in your <.vimrc>. (also see: |netrw-o| |netrw-t|)
|
||||
in your <.vimrc>. (also see: |netrw-o| |netrw-t| |netrw-T|)
|
||||
|
||||
There is only one tree listing buffer; using "v" on a displayed subdirectory
|
||||
will split the screen, but the same buffer will be shown twice.
|
||||
|
||||
Associated setting variable: |g:netrw_altv| |g:netrw_winsize|
|
||||
|
||||
CHANGE LISTING STYLE *netrw-i* {{{2
|
||||
|
||||
CHANGE LISTING STYLE (THIN LONG WIDE TREE) *netrw-i* {{{2
|
||||
|
||||
The "i" map cycles between the thin, long, wide, and tree listing formats.
|
||||
|
||||
The short listing format gives just the files' and directories' names.
|
||||
The thin listing format gives just the files' and directories' names.
|
||||
|
||||
The long listing is either based on the "ls" command via ssh for remote
|
||||
directories or displays the filename, file size (in bytes), and the time and
|
||||
@ -1095,13 +1170,23 @@ This listing format is the most compact.
|
||||
|
||||
The tree listing format has a top directory followed by files and directories
|
||||
preceded by a "|". One may open and close directories by pressing the <cr>
|
||||
key while atop the directory name. There is only one tree listing buffer;
|
||||
hence, using "v" or "o" on a subdirectory will only show the same buffer,
|
||||
twice.
|
||||
key while atop the directory name.
|
||||
|
||||
One may make a preferred listing style your default; see |g:netrw_liststyle|.
|
||||
As an example, by putting the following line in your .vimrc, >
|
||||
let g:netrw_liststyle= 4
|
||||
the tree style will become your default listing style.
|
||||
|
||||
Associated setting variables: |g:netrw_liststyle| |g:netrw_maxfilenamelen|
|
||||
|g:netrw_timefmt| |g:netrw_list_cmd|
|
||||
|
||||
CHANGE FILE PERMISSION *netrw-gp* {{{2
|
||||
|
||||
"gp" will ask you for a new permission for the file named under the cursor.
|
||||
Currently, this only works for local files.
|
||||
|
||||
Associated setting variables: |g:netrw_chgperm|
|
||||
|
||||
|
||||
CHANGING TO A BOOKMARKED DIRECTORY *netrw-gb* {{{2
|
||||
|
||||
@ -1113,7 +1198,7 @@ Any count may be used to reference any of the bookmarks.
|
||||
|
||||
Related Topics:
|
||||
|netrw-mB| how to delete bookmarks
|
||||
|netrw-mb| how to return to a bookmark
|
||||
|netrw-mb| how to make a bookmark
|
||||
|netrw-qb| how to list bookmarks
|
||||
|
||||
|
||||
@ -1189,7 +1274,7 @@ the handler function must exist for it to be called!
|
||||
NFH_html("scp://user@host/some/path/mypgm.html")
|
||||
<
|
||||
Users may write their own netrw File Handler functions to support more
|
||||
suffixes with special handling. See <plugin/netrwFileHandlers.vim> for
|
||||
suffixes with special handling. See <autoload/netrwFileHandlers.vim> for
|
||||
examples on how to make file handler functions. As an example: >
|
||||
|
||||
" NFH_suffix(filename)
|
||||
@ -1275,7 +1360,7 @@ DIRECTORY EXPLORATION COMMANDS {{{2
|
||||
:[N]Explore[!] [dir]... Explore directory of current file *:Explore*
|
||||
:[N]Hexplore[!] [dir]... Horizontal Split & Explore *:Hexplore*
|
||||
:Rexplore ... Return to Explorer *:Rexplore*
|
||||
:[N]Sexplore[!] [dir]... Split&Explore current file's directory*:Sexplore*
|
||||
:[N]Sexplore[!] [dir]... Split&Explore current file's directory *:Sexplore*
|
||||
:Texplore [dir]... Tab & Explore *:Texplore*
|
||||
:[N]Vexplore[!] [dir]... Vertical Split & Explore *:Vexplore*
|
||||
|
||||
@ -1312,8 +1397,8 @@ windows should have.
|
||||
:Rexplore This command is a little different from the others. When one
|
||||
edits a file, for example by pressing <cr> when atop a file in
|
||||
a netrw browser window, :Rexplore will return the display to
|
||||
that of the last netrw browser window. Its a command version
|
||||
of <2-leftmouse> (which is only available under gvim and
|
||||
that of the last netrw browser window. It is a command version
|
||||
of the <2-leftmouse> map (which is only available under gvim and
|
||||
cooperative terms).
|
||||
|
||||
|
||||
@ -1383,6 +1468,18 @@ be the only ones displayed (see |netrw-a|).
|
||||
The "gh" mapping (see |netrw-gh|) quickly alternates between the usual
|
||||
hiding list and the hiding of files or directories that begin with ".".
|
||||
|
||||
As an example, >
|
||||
let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+'
|
||||
Effectively, this makes the effect of a |netrw-gh| command the initial setting.
|
||||
What it means:
|
||||
|
||||
\(^\|\s\s\) : if the line begins with the following, -or-
|
||||
two consecutive spaces are encountered
|
||||
\zs : start the hiding match now
|
||||
\. : if it now begins with a dot
|
||||
\S\+ : and is followed by one or more non-whitespace
|
||||
characters
|
||||
|
||||
Associated setting variables: |g:netrw_hide| |g:netrw_list_hide|
|
||||
Associated topics: |netrw-a| |netrw-gh| |netrw-mh|
|
||||
|
||||
@ -1393,7 +1490,12 @@ When "Sorted by" is name, one may specify priority via the sorting sequence
|
||||
(g:netrw_sort_sequence). The sorting sequence typically prioritizes the
|
||||
name-listing by suffix, although any pattern will do. Patterns are delimited
|
||||
by commas. The default sorting sequence is (all one line):
|
||||
>
|
||||
|
||||
For Unix: >
|
||||
'[\/]$,\<core\%(\.\d\+\)\=,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,
|
||||
\.info$,\.swp$,\.bak$,\~$'
|
||||
<
|
||||
Otherwise: >
|
||||
'[\/]$,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,
|
||||
\.swp$,\.bak$,\~$'
|
||||
<
|
||||
@ -1632,10 +1734,11 @@ MARKING FILES BY REGULAR EXPRESSION *netrw-mr* {{{2
|
||||
(also see |netrw-mf|)
|
||||
|
||||
One may also mark files by pressing "mr"; netrw will then issue a prompt,
|
||||
"Enter regexp: ". You may then enter a regular expression such as \.c$ .
|
||||
All files in the current directory will then be marked. Note that the
|
||||
regular expressions are vim-style |regexp| ones, not shell ones. So
|
||||
entering *.c probably isn't what you want!
|
||||
"Enter regexp: ". You may then enter a shell-style regular expression such
|
||||
as *.c$ (see |glob()|). For remote systems, glob() doesn't work -- so netrw
|
||||
converts "*" into ".*" (see |regexp|) and marks files based on that. In the
|
||||
future I may make it possible to use |regexp|s instead of glob()-style
|
||||
expressions (yet-another-option).
|
||||
|
||||
|
||||
MARKED FILES: ARBITRARY COMMAND *netrw-mx* {{{2
|
||||
@ -1718,7 +1821,7 @@ MARKED FILES: MOVING *netrw-mm* {{{2
|
||||
first or do the copy and then delete yourself using mc and D.
|
||||
Use at your own risk!
|
||||
|
||||
Select a target directory with mT (|netrw-mt|). Then change directory,
|
||||
Select a target directory with mt (|netrw-mt|). Then change directory,
|
||||
select file(s) (see |netrw-mf|), and press "mm".
|
||||
|
||||
Associated setting variable: |g:netrw_localmovecmd| |g:netrw_ssh_cmd|
|
||||
@ -1743,7 +1846,7 @@ MARKED FILES: TAGGING *netrw-mT* {{{2
|
||||
(See |netrw-mf| and |netrw-mr| for how to mark files)
|
||||
(uses the global marked file list)
|
||||
|
||||
The "mt" mapping will apply the command in |g:netrw_ctags| (by default, its
|
||||
The "mT" mapping will apply the command in |g:netrw_ctags| (by default, it is
|
||||
"ctags") to marked files. For remote browsing, in order to create a tags file
|
||||
netrw will use ssh (see |g:netrw_ssh_cmd|), and so ssh must be available for
|
||||
this to work on remote systems. For your local system, see |ctags| on how to
|
||||
@ -1791,7 +1894,7 @@ The "mu" mapping will unmark all currently marked files.
|
||||
|
||||
NETRW BROWSER VARIABLES *netrw-browser-options* *netrw-browser-var* {{{2
|
||||
|
||||
(if you're interestd in the netrw file transfer settings, see |netrw-options|)
|
||||
(if you're interested in the netrw file transfer settings, see |netrw-options|)
|
||||
|
||||
The <netrw.vim> browser provides settings in the form of variables which
|
||||
you may modify; by placing these settings in your <.vimrc>, you may customize
|
||||
@ -1808,12 +1911,21 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
by setting this variable (see |netrw-v|)
|
||||
default: =&spr (see |'spr'|)
|
||||
|
||||
*g:netrw_banner* enable/suppress the banner
|
||||
=0: suppress the banner
|
||||
=1: banner is enabled (default)
|
||||
NOTE: suppressing the banner is a new feature
|
||||
which may cause problems.
|
||||
|
||||
*g:netrw_browse_split* when browsing, <cr> will open the file by:
|
||||
=0: re-using the same window
|
||||
=1: horizontally splitting the window first
|
||||
=2: vertically splitting the window first
|
||||
=3: open file in new tab
|
||||
=4: act like "P" (ie. open previous window)
|
||||
Note that |g:netrw_preview| may be used
|
||||
to get vertical splitting instead of
|
||||
horizontal splitting.
|
||||
|
||||
*g:netrw_browsex_viewer* specify user's preference for a viewer: >
|
||||
"kfmclient exec"
|
||||
@ -1824,6 +1936,10 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
a script/function to handle the given
|
||||
extension. (see |netrw_filehandler|).
|
||||
|
||||
*g:netrw_chgperm* Unix/Linux: "chmod PERM FILENAME"
|
||||
Windows: "cacls FILENAME /e /p PERM"
|
||||
Used to change access permission for a file.
|
||||
|
||||
*g:netrw_compress* ="gzip"
|
||||
Will compress marked files with this
|
||||
command
|
||||
@ -1836,10 +1952,10 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
|g:netrw_liststyle| ==0 (thin listing) or
|
||||
|g:netrw_liststyle| ==1 (long listing) or
|
||||
|g:netrw_liststyle| ==3 (tree listing)
|
||||
(ie. doesn't affect the wide listing)
|
||||
=0: off
|
||||
=2: like ==1, but the wide listing gets both
|
||||
cursorline and |'cursorcolumn'|locally set
|
||||
(ie. doesn't affect the wide listing)
|
||||
|
||||
*g:netrw_decompress* = { ".gz" : "gunzip" ,
|
||||
".bz2" : "bunzip2" ,
|
||||
@ -1967,6 +2083,14 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
*g:netrw_mkdir_cmd* command for making a remote directory
|
||||
default: "ssh USEPORT HOSTNAME mkdir"
|
||||
|
||||
*g:netrw_mousemaps* =1 (default) enables the mouse buttons
|
||||
while browsing:
|
||||
leftmouse : open file/directory
|
||||
shift-leftmouse : mark file
|
||||
middlemouse : same as P
|
||||
rightmouse : remove file/directory
|
||||
=0: disables mouse maps
|
||||
|
||||
*g:netrw_retmap* if it exists and is set to one, then:
|
||||
* if in a netrw-selected file, AND
|
||||
* no normal-mode <2-leftmouse> mapping exists,
|
||||
@ -2010,7 +2134,9 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
< default: ""
|
||||
|
||||
*g:netrw_sort_sequence* when sorting by name, first sort by the
|
||||
comma-separated pattern sequence
|
||||
comma-separated pattern sequence. Note that
|
||||
the filigree added to indicate filetypes
|
||||
should be accounted for in your pattern.
|
||||
default: '[\/]$,*,\.bak$,\.o$,\.h$,
|
||||
\.info$,\.swp$,\.obj$'
|
||||
|
||||
@ -2076,18 +2202,18 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
|:Hexplore| or |:Vexplore|.
|
||||
default: ""
|
||||
|
||||
*g:netrw_xstrlen* Controls how netrw computes a string
|
||||
*g:netrw_xstrlen* Controls how netrw computes string lengths,
|
||||
including multi-byte characters' string
|
||||
length. (thanks to N Weibull, T Mechelynck)
|
||||
=0: uses Vim's built-in strlen()
|
||||
=1: number of codepoints (Latin + a combining
|
||||
=1: number of codepoints (Latin a + combining
|
||||
circumflex is two codepoints) (DEFAULT)
|
||||
=2: number of spacing codepoints (Latin a +
|
||||
combining circumflex is one spacing
|
||||
codepoint; a hard tab is one; wide and
|
||||
narrow CJK are one each; etc.)
|
||||
=3: virtual length (counting tabs as anything
|
||||
between 1 and |'tabstop'|, wide CJJK as 2
|
||||
between 1 and |'tabstop'|, wide CJK as 2
|
||||
rather than 1, Arabic alif as zero when
|
||||
immediately preceded by lam, one
|
||||
otherwise, etc)
|
||||
@ -2238,6 +2364,16 @@ Related topics: |netrw-r| |netrw-S|
|
||||
Associated setting variables: |g:netrw_sort_by| |g:netrw_sort_sequence|
|
||||
|
||||
|
||||
SETTING EDITING WINDOW *netrw-C* {{{2
|
||||
|
||||
One may select a netrw window for editing with the "C" mapping, or by setting
|
||||
g:netrw_chgwin to the selected window number. Subsequent selection of a file
|
||||
to edit (|netrw-cr|) will use that window.
|
||||
|
||||
Related topics: |netrw-cr|
|
||||
Associated setting variables: |g:netrw_chgwin|
|
||||
|
||||
|
||||
10. Problems and Fixes *netrw-problems* {{{1
|
||||
|
||||
(This section is likely to grow as I get feedback)
|
||||
@ -2259,7 +2395,7 @@ Associated setting variables: |g:netrw_sort_by| |g:netrw_sort_sequence|
|
||||
Windows' ftp has a minimal support for ls (ie. it doesn't
|
||||
accept sorting options). It doesn't support the -F which
|
||||
gives an explanatory character (ABC/ for "ABC is a directory").
|
||||
Netrw then uses "dir" to get both its short and long listings.
|
||||
Netrw then uses "dir" to get both its thin and long listings.
|
||||
If you think your ftp does support a full-up ls, put the
|
||||
following into your <.vimrc>: >
|
||||
|
||||
@ -2451,6 +2587,16 @@ Associated setting variables: |g:netrw_sort_by| |g:netrw_sort_sequence|
|
||||
<leftmouse> in the browser window and then press the
|
||||
<middlemouse> to select the file.
|
||||
|
||||
*netrw-p12*
|
||||
P12. My directory isn't sorting correctly, or unwanted letters are
|
||||
appearing in the listed filenames, or things aren't lining
|
||||
up properly in the wide listing, ...
|
||||
|
||||
This may be due to an encoding problem. I myself usually use
|
||||
utf-8, but really only use ascii (ie. bytes from 32-126).
|
||||
Multibyte encodings use two (or more) bytes per character.
|
||||
You may need to change |g:netrw_sepchr| and/or |g:netrw_xstrlen|.
|
||||
|
||||
==============================================================================
|
||||
11. Debugging Netrw Itself *netrw-debug* {{{1
|
||||
|
||||
@ -2496,7 +2642,7 @@ which is loaded automatically at startup (assuming :set nocp).
|
||||
read/write your file over the network in a separate tab.
|
||||
|
||||
To save the file, use >
|
||||
:wincmd j
|
||||
:tabnext
|
||||
:set bt=
|
||||
:w! DBG
|
||||
< Please send that information to <netrw.vim>'s maintainer, >
|
||||
@ -2505,6 +2651,57 @@ which is loaded automatically at startup (assuming :set nocp).
|
||||
==============================================================================
|
||||
12. History *netrw-history* {{{1
|
||||
|
||||
v136: Jan 14, 2009 * extended |g:Netrw_funcref| to also handle lists
|
||||
of function references
|
||||
Jan 14, 2009 * (reported by Marvin Renich) with spell check
|
||||
enabled, some filenamess will still being
|
||||
displayed as spelling errors.
|
||||
Apr 13, 2009 * (Björn Winckler) writing a file using
|
||||
remote scp caused syntax highlighting problem.
|
||||
Solution: avoid syntax/syntax.vim's
|
||||
au Filetype * syntax setting autocommand by
|
||||
checking that the current buffer has the
|
||||
netrw filetype before attempting a doau
|
||||
in s:NetrwSafeOptions().
|
||||
Apr 14, 2009 * (asgeo1) suggested the "T" map (|netrw-T|)
|
||||
Apr 14, 2009 * marking wasn't working on executable and
|
||||
other special filenames
|
||||
Apr 20, 2009 * (Dennis Benzinger) files opened via http have
|
||||
their syntax filetype auto-detected
|
||||
Jun 19, 2009 * (Yukihiro Nakadaira) help document improvements
|
||||
Jul 22, 2009 * g:netrw_browse_split will honor the
|
||||
|'equalalways'| setting.
|
||||
Jul 29, 2009 * implemented "I" mapping to toggle banner
|
||||
(this is experimental and still being debugged)
|
||||
Sep 19, 2009 * (Mike McEwan) writes via ftp now send both
|
||||
g:netrw_ftpmode and g:netrw_ftpextracmd (if the
|
||||
latter exists)
|
||||
Dec 02, 2009 * netrw uses vimgrep several places; it now uses
|
||||
"noautocmd vimgrep" (should be speedier).
|
||||
Dec 03, 2009 * changed back to using -source instead of -dump
|
||||
for elinks-using commands. (requested by James
|
||||
Vega and Karsten Hopp)
|
||||
v135: Oct 29, 2008 * using |simplify()| on directory names
|
||||
(supporting handling ".."s in directory names)
|
||||
Oct 31, 2008 * added special file highlighting for core dumps
|
||||
under Unix/Linux. The default sorting sequence
|
||||
now also gives core dumps priority.
|
||||
Nov 10, 2008 * uses a call to netrw#Nread() instead of Nread
|
||||
to avoid having to use fnameescape()
|
||||
* fixed a tree redrawing problem (open directory,
|
||||
open subdir, close subdir, close dir)
|
||||
Nov 19, 2008 * sprinkled some histdel("/",-1)s through the code
|
||||
in an attempt to prevent netrw from changing
|
||||
the search history.
|
||||
Jan 02, 2009 * |g:Netrw_funcref| included
|
||||
Jan 05, 2009 * Explore */ **/ *// **// all clear explorer
|
||||
variables
|
||||
Jan 05, 2009 * (Panagiotis Louridas) extended s:WinPath()
|
||||
to remove cygdrive from non-cygwin Windows
|
||||
paths. Improved the determination as to
|
||||
whether or not to do so.
|
||||
Jan 13, 2009 * included contains=@NoSpell in every syntax
|
||||
group for syntax/netrw.vim .
|
||||
v134: Sep 30, 2008 * (Sander Marechal) provided a bugfix involving
|
||||
the use of the |netrw-t| command with a remote
|
||||
directory.
|
||||
@ -2656,8 +2853,8 @@ which is loaded automatically at startup (assuming :set nocp).
|
||||
* executable files now displayed with trailing (*)
|
||||
* symbolically linked files now displayed with
|
||||
trailing (@)
|
||||
* Somewhen, s:NetrwMarkFileMove() got damaged. Its
|
||||
now restored (missing an endif, for example).
|
||||
* Somewhen, s:NetrwMarkFileMove() got damaged. It
|
||||
* is now restored (missing an endif, for example).
|
||||
* |netrw-mu| implemented (unmarking marked files)
|
||||
* many bugs have been removed from the marked file
|
||||
system (tnx to Mark S. for feedback)
|
||||
@ -2728,7 +2925,7 @@ which is loaded automatically at startup (assuming :set nocp).
|
||||
the end of the s:NetrwBrowseChgDir() function;
|
||||
they're now at the end of every if..elseif..else
|
||||
block. The edit-a-file one is not quite at the end
|
||||
of its block; instead, its just before the edit.
|
||||
of its block; instead, it's just before the edit.
|
||||
Restores user options, then this new placement
|
||||
allows ftplugins, autocmds, etc to change settings
|
||||
(ex. ftplugin/cpp.vim sets cindent).
|
||||
@ -2765,7 +2962,7 @@ which is loaded automatically at startup (assuming :set nocp).
|
||||
marked files.
|
||||
v110: May 10, 2007 * added [ and ] maps to NetrwTreeListing
|
||||
May 25, 2007 * |g:netrw_preview| included
|
||||
May 29, 2007 * modifed netrw#NetBrowseX to consistently use
|
||||
May 29, 2007 * modified netrw#NetBrowseX to consistently use
|
||||
g:netrw_shq instead of hardcoded quotes,
|
||||
and modified the snippet that sets up redir
|
||||
so Windows machines use "nul" instead of
|
||||
@ -3226,7 +3423,16 @@ which is loaded automatically at startup (assuming :set nocp).
|
||||
|
||||
|
||||
==============================================================================
|
||||
12. Credits *netrw-credits* {{{1
|
||||
13. Todo *netrw-todo* {{{1
|
||||
|
||||
07/29/09 : banner :|g:netrw_banner| can be used to suppress the
|
||||
suppression banner. This feature is new and experimental,
|
||||
so its in the process of being debugged.
|
||||
09/04/09 : "gp" : See if it can be made to work for remote systems.
|
||||
: See if it can be made to work with marked files.
|
||||
|
||||
==============================================================================
|
||||
14. Credits *netrw-credits* {{{1
|
||||
|
||||
Vim editor by Bram Moolenaar (Thanks, Bram!)
|
||||
dav support by C Campbell
|
||||
|
@ -1,4 +1,4 @@
|
||||
*pi_vimball.txt* For Vim version 7.1. Last change: 2008 May 30
|
||||
*pi_vimball.txt* For Vim version 7.2. Last change: 2009 Dec 28
|
||||
|
||||
----------------
|
||||
Vimball Archiver
|
||||
@ -6,7 +6,7 @@
|
||||
|
||||
Author: Charles E. Campbell, Jr. <NdrOchip@ScampbellPfamily.AbizM>
|
||||
(remove NOSPAM from Campbell's email first)
|
||||
Copyright: (c) 2004-2008 by Charles E. Campbell, Jr. *Vimball-copyright*
|
||||
Copyright: (c) 2004-2009 by Charles E. Campbell, Jr. *Vimball-copyright*
|
||||
The VIM LICENSE applies to Vimball.vim, and Vimball.txt
|
||||
(see |copyright|) except use "Vimball" instead of "Vim".
|
||||
No warranty, express or implied.
|
||||
@ -55,7 +55,7 @@ Copyright: (c) 2004-2008 by Charles E. Campbell, Jr. *Vimball-copyright*
|
||||
==============================================================================
|
||||
3. Vimball Manual *vimball-manual*
|
||||
|
||||
*:MkVimball*
|
||||
MAKING A VIMBALL *:MkVimball*
|
||||
:[range]MkVimball[!] filename [path]
|
||||
|
||||
The range is composed of lines holding paths to files to be included
|
||||
@ -79,29 +79,34 @@ Copyright: (c) 2004-2008 by Charles E. Campbell, Jr. *Vimball-copyright*
|
||||
"filename.vba" file, overwriting it if it already exists. This
|
||||
behavior resembles that for |:w|.
|
||||
|
||||
*g:vimball_mkdir*
|
||||
If you wish to force slashes into the filename, that can also be done
|
||||
by using the exclamation mark (ie. :MkVimball! path/filename).
|
||||
|
||||
The tip at http://vim.wikia.com/wiki/Using_VimBall_with_%27Make%27
|
||||
has a good idea on how to automate the production of vimballs using
|
||||
make.
|
||||
|
||||
|
||||
MAKING DIRECTORIES VIA VIMBALLS *g:vimball_mkdir*
|
||||
|
||||
First, the |mkdir()| command is tried (not all systems support it).
|
||||
|
||||
If it doesn't exist, then g:vimball_mkdir doesn't exist, it is set to:
|
||||
If it doesn't exist, then if g:vimball_mkdir doesn't exist, it is set
|
||||
as follows: >
|
||||
|g:netrw_local_mkdir|, if it exists
|
||||
"mkdir", if it is executable
|
||||
"makedir", if it is executable
|
||||
Otherwise, it is undefined.
|
||||
One may explicitly specify the directory making command using
|
||||
"mkdir" , if it is executable
|
||||
"makedir" , if it is executable
|
||||
Otherwise , it is undefined.
|
||||
< One may explicitly specify the directory making command using
|
||||
g:vimball_mkdir. This command is used to make directories that
|
||||
are needed as indicated by the vimball.
|
||||
|
||||
*g:vimball_home*
|
||||
|
||||
CONTROLLING THE VIMBALL EXTRACTION DIRECTORY *g:vimball_home*
|
||||
|
||||
You may override the use of the |'runtimepath'| by specifying a
|
||||
variable, g:vimball_home.
|
||||
|
||||
Path Preprocessing *g:vimball_path_escape*
|
||||
|
||||
Paths used in vimball are preprocessed by s:Path(); in addition,
|
||||
certain characters are escaped (by prepending a backslash). The
|
||||
characters are in g:vimball_path_escape, and may be overridden by
|
||||
the user in his/her .vimrc initialization script.
|
||||
|
||||
*vimball-extract*
|
||||
vim filename.vba
|
||||
|
||||
@ -112,12 +117,16 @@ Copyright: (c) 2004-2008 by Charles E. Campbell, Jr. *Vimball-copyright*
|
||||
file holds the "Vimball Archiver by Charles E. Campbell, Jr., Ph.D."
|
||||
line.
|
||||
|
||||
:VimballList *:VimballList*
|
||||
LISTING FILES IN A VIMBALL *:VimballList*
|
||||
|
||||
:VimballList
|
||||
|
||||
This command will tell Vimball to list the files in the archive, along
|
||||
with their lengths in lines.
|
||||
|
||||
:UseVimball [path] *:UseVimball*
|
||||
MANUALLY INVOKING VIMBALL EXTRACTION *:UseVimball*
|
||||
|
||||
:UseVimball [path]
|
||||
|
||||
This command is contained within the vimball itself; it invokes the
|
||||
vimball#Vimball() routine which is responsible for unpacking the
|
||||
@ -126,7 +135,9 @@ Copyright: (c) 2004-2008 by Charles E. Campbell, Jr. *Vimball-copyright*
|
||||
installation, thereby overriding the automatic choice of the first
|
||||
existing directory on the |'runtimepath'|.
|
||||
|
||||
:RmVimball vimballfile [path] *:RmVimball*
|
||||
REMOVING A VIMBALL *:RmVimball*
|
||||
|
||||
:RmVimball vimballfile [path]
|
||||
|
||||
This command removes all files generated by the specified vimball
|
||||
(but not any directories it may have made). One may choose a path
|
||||
@ -136,10 +147,29 @@ Copyright: (c) 2004-2008 by Charles E. Campbell, Jr. *Vimball-copyright*
|
||||
containing a record of what files need to be removed for all vimballs
|
||||
used thus far.
|
||||
|
||||
PREVENTING LOADING
|
||||
|
||||
If for some reason you don't want to be able to extract plugins
|
||||
using vimballs: you may prevent the loading of vimball.vim by
|
||||
putting the following two variables in your <.vimrc>: >
|
||||
|
||||
let g:loaded_vimballPlugin= 1
|
||||
let g:loaded_vimball = 1
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
4. Vimball History *vimball-history* {{{1
|
||||
|
||||
30 : Dec 08, 2008 * fnameescape() inserted to protect error
|
||||
messaging using corrupted filenames from
|
||||
causing problems
|
||||
* RmVimball supports filenames that would
|
||||
otherwise be considered to have "magic"
|
||||
characters (ie. Abc[1].vba)
|
||||
Feb 18, 2009 * s:Escape(), g:vimball_shq, and g:netrw_shq
|
||||
removed (shellescape() used directly)
|
||||
Oct 05, 2009 * (Nikolai Weibull) suggested that MkVimball
|
||||
be allowed to use slashes in the filename.
|
||||
26 : May 27, 2008 * g:vimball_mkdir usage installed. Makes the
|
||||
$HOME/.vim (or $HOME\vimfiles) directory if
|
||||
necessary.
|
||||
@ -164,7 +194,7 @@ Copyright: (c) 2004-2008 by Charles E. Campbell, Jr. *Vimball-copyright*
|
||||
will extract plugin/somefile to the AsNeeded/
|
||||
directory
|
||||
17 : Jun 28, 2006 * changes all \s to /s internally for Windows
|
||||
16 : Jun 15, 2006 * A. Mechylynck's idea to allow users to specify
|
||||
16 : Jun 15, 2006 * A. Mechelynck's idea to allow users to specify
|
||||
installation root paths implemented for
|
||||
UseVimball, MkVimball, and RmVimball.
|
||||
* RmVimball implemented
|
||||
|
@ -1,12 +1,3 @@
|
||||
:CVSEdit vcscommand.txt /*:CVSEdit*
|
||||
:CVSEditors vcscommand.txt /*:CVSEditors*
|
||||
:CVSUnedit vcscommand.txt /*:CVSUnedit*
|
||||
:CVSWatch vcscommand.txt /*:CVSWatch*
|
||||
:CVSWatchAdd vcscommand.txt /*:CVSWatchAdd*
|
||||
:CVSWatchOff vcscommand.txt /*:CVSWatchOff*
|
||||
:CVSWatchOn vcscommand.txt /*:CVSWatchOn*
|
||||
:CVSWatchRemove vcscommand.txt /*:CVSWatchRemove*
|
||||
:CVSWatchers vcscommand.txt /*:CVSWatchers*
|
||||
:Explore pi_netrw.txt /*:Explore*
|
||||
:GLVS pi_getscript.txt /*:GLVS*
|
||||
:GetLatestVimScripts_dat pi_getscript.txt /*:GetLatestVimScripts_dat*
|
||||
@ -40,6 +31,7 @@
|
||||
:RmVimball pi_vimball.txt /*:RmVimball*
|
||||
:Search MultipleSearch.txt /*:Search*
|
||||
:SearchBuffers MultipleSearch.txt /*:SearchBuffers*
|
||||
:Sexplore pi_netrw.txt /*:Sexplore*
|
||||
:TComment tComment.txt /*:TComment*
|
||||
:TCommentAs tComment.txt /*:TCommentAs*
|
||||
:TCommentBlock tComment.txt /*:TCommentBlock*
|
||||
@ -47,23 +39,6 @@
|
||||
:TCommentRight tComment.txt /*:TCommentRight*
|
||||
:Texplore pi_netrw.txt /*:Texplore*
|
||||
:UseVimball pi_vimball.txt /*:UseVimball*
|
||||
:VCSAdd vcscommand.txt /*:VCSAdd*
|
||||
:VCSAnnotate vcscommand.txt /*:VCSAnnotate*
|
||||
:VCSBlame vcscommand.txt /*:VCSBlame*
|
||||
:VCSCommit vcscommand.txt /*:VCSCommit*
|
||||
:VCSDelete vcscommand.txt /*:VCSDelete*
|
||||
:VCSDiff vcscommand.txt /*:VCSDiff*
|
||||
:VCSGotoOriginal vcscommand.txt /*:VCSGotoOriginal*
|
||||
:VCSInfo vcscommand.txt /*:VCSInfo*
|
||||
:VCSLock vcscommand.txt /*:VCSLock*
|
||||
:VCSLog vcscommand.txt /*:VCSLog*
|
||||
:VCSRemove vcscommand.txt /*:VCSRemove*
|
||||
:VCSRevert vcscommand.txt /*:VCSRevert*
|
||||
:VCSReview vcscommand.txt /*:VCSReview*
|
||||
:VCSStatus vcscommand.txt /*:VCSStatus*
|
||||
:VCSUnlock vcscommand.txt /*:VCSUnlock*
|
||||
:VCSUpdate vcscommand.txt /*:VCSUpdate*
|
||||
:VCSVimDiff vcscommand.txt /*:VCSVimDiff*
|
||||
:Vexplore pi_netrw.txt /*:Vexplore*
|
||||
:VimballList pi_vimball.txt /*:VimballList*
|
||||
Align-copyright Align.txt /*Align-copyright*
|
||||
@ -92,25 +67,6 @@ SRHiGrp SrchRplcHiGrp.txt /*SRHiGrp*
|
||||
SRSearch SrchRplcHiGrp.txt /*SRSearch*
|
||||
SrchRplcHiGrp.txt SrchRplcHiGrp.txt /*SrchRplcHiGrp.txt*
|
||||
TCommentDefineType() tComment.txt /*TCommentDefineType()*
|
||||
VCSCommandCVSDiffOpt vcscommand.txt /*VCSCommandCVSDiffOpt*
|
||||
VCSCommandCVSExec vcscommand.txt /*VCSCommandCVSExec*
|
||||
VCSCommandCommitOnWrite vcscommand.txt /*VCSCommandCommitOnWrite*
|
||||
VCSCommandDeleteOnHide vcscommand.txt /*VCSCommandDeleteOnHide*
|
||||
VCSCommandDiffSplit vcscommand.txt /*VCSCommandDiffSplit*
|
||||
VCSCommandDisableAll vcscommand.txt /*VCSCommandDisableAll*
|
||||
VCSCommandDisableExtensionMappings vcscommand.txt /*VCSCommandDisableExtensionMappings*
|
||||
VCSCommandDisableMappings vcscommand.txt /*VCSCommandDisableMappings*
|
||||
VCSCommandEdit vcscommand.txt /*VCSCommandEdit*
|
||||
VCSCommandEnableBufferSetup vcscommand.txt /*VCSCommandEnableBufferSetup*
|
||||
VCSCommandMapPrefix vcscommand.txt /*VCSCommandMapPrefix*
|
||||
VCSCommandMappings vcscommand.txt /*VCSCommandMappings*
|
||||
VCSCommandResultBufferNameExtension vcscommand.txt /*VCSCommandResultBufferNameExtension*
|
||||
VCSCommandResultBufferNameFunction vcscommand.txt /*VCSCommandResultBufferNameFunction*
|
||||
VCSCommandSVKExec vcscommand.txt /*VCSCommandSVKExec*
|
||||
VCSCommandSVNDiffExt vcscommand.txt /*VCSCommandSVNDiffExt*
|
||||
VCSCommandSVNDiffOpt vcscommand.txt /*VCSCommandSVNDiffOpt*
|
||||
VCSCommandSVNExec vcscommand.txt /*VCSCommandSVNExec*
|
||||
VCSCommandSplit vcscommand.txt /*VCSCommandSplit*
|
||||
VimPdb.txt VimPdb.txt /*VimPdb.txt*
|
||||
Vimball-copyright pi_vimball.txt /*Vimball-copyright*
|
||||
[% matchit.txt /*[%*
|
||||
@ -132,6 +88,7 @@ align-option Align.txt /*align-option*
|
||||
align-options Align.txt /*align-options*
|
||||
align-strlen Align.txt /*align-strlen*
|
||||
align-usage Align.txt /*align-usage*
|
||||
align-userguide Align.txt /*align-userguide*
|
||||
align-utf Align.txt /*align-utf*
|
||||
align-utf8 Align.txt /*align-utf8*
|
||||
align.txt Align.txt /*align.txt*
|
||||
@ -162,6 +119,8 @@ alignman Align.txt /*alignman*
|
||||
alignmanual Align.txt /*alignmanual*
|
||||
alignmap-Htd Align.txt /*alignmap-Htd*
|
||||
alignmap-T= Align.txt /*alignmap-T=*
|
||||
alignmap-Tsp Align.txt /*alignmap-Tsp*
|
||||
alignmap-a( Align.txt /*alignmap-a(*
|
||||
alignmap-a, Align.txt /*alignmap-a,*
|
||||
alignmap-a< Align.txt /*alignmap-a<*
|
||||
alignmap-a= Align.txt /*alignmap-a=*
|
||||
@ -187,16 +146,15 @@ alignmap-t? Align.txt /*alignmap-t?*
|
||||
alignmap-tab Align.txt /*alignmap-tab*
|
||||
alignmap-tml Align.txt /*alignmap-tml*
|
||||
alignmap-ts, Align.txt /*alignmap-ts,*
|
||||
alignmap-ts: Align.txt /*alignmap-ts:*
|
||||
alignmap-ts< Align.txt /*alignmap-ts<*
|
||||
alignmap-ts= Align.txt /*alignmap-ts=*
|
||||
alignmap-tsp Align.txt /*alignmap-tsp*
|
||||
alignmap-tsq Align.txt /*alignmap-tsq*
|
||||
alignmap-tt Align.txt /*alignmap-tt*
|
||||
alignmap-t~ Align.txt /*alignmap-t~*
|
||||
alignmaps Align.txt /*alignmaps*
|
||||
alignusage Align.txt /*alignusage*
|
||||
b:VCSCommandCommand vcscommand.txt /*b:VCSCommandCommand*
|
||||
b:VCSCommandOriginalBuffer vcscommand.txt /*b:VCSCommandOriginalBuffer*
|
||||
b:VCSCommandSourceFile vcscommand.txt /*b:VCSCommandSourceFile*
|
||||
b:VCSCommandVCSType vcscommand.txt /*b:VCSCommandVCSType*
|
||||
b:match_col matchit.txt /*b:match_col*
|
||||
b:match_debug matchit.txt /*b:match_debug*
|
||||
b:match_ignorecase matchit.txt /*b:match_ignorecase*
|
||||
@ -1450,11 +1408,11 @@ crvdoc-licGPL crefvimdoc.txt /*crvdoc-licGPL*
|
||||
crvdoc-licLGPL crefvimdoc.txt /*crvdoc-licLGPL*
|
||||
crvdoc-limbugs crefvimdoc.txt /*crvdoc-limbugs*
|
||||
crvdoc-usage crefvimdoc.txt /*crvdoc-usage*
|
||||
cvscommand-changes vcscommand.txt /*cvscommand-changes*
|
||||
dav pi_netrw.txt /*dav*
|
||||
davs pi_netrw.txt /*davs*
|
||||
drv-dtArrayInit crefvim.txt /*drv-dtArrayInit*
|
||||
drv-dtIncompleteArrayDecl crefvim.txt /*drv-dtIncompleteArrayDecl*
|
||||
editsrec.txt editsrec.txt /*editsrec.txt*
|
||||
ex-visincr-I visincr.txt /*ex-visincr-I*
|
||||
ex-visincr-IA visincr.txt /*ex-visincr-IA*
|
||||
ex-visincr-ID visincr.txt /*ex-visincr-ID*
|
||||
@ -1470,17 +1428,20 @@ g:MultipleSearchColorSequence MultipleSearch.txt /*g:MultipleSearchColorSequence
|
||||
g:MultipleSearchMaxColors MultipleSearch.txt /*g:MultipleSearchMaxColors*
|
||||
g:MultipleSearchTextColorSequence MultipleSearch.txt /*g:MultipleSearchTextColorSequence*
|
||||
g:NetrwTopLvlMenu pi_netrw.txt /*g:NetrwTopLvlMenu*
|
||||
g:Netrw_funcref pi_netrw.txt /*g:Netrw_funcref*
|
||||
g:netrw_alto pi_netrw.txt /*g:netrw_alto*
|
||||
g:netrw_altv pi_netrw.txt /*g:netrw_altv*
|
||||
g:netrw_banner pi_netrw.txt /*g:netrw_banner*
|
||||
g:netrw_browse_split pi_netrw.txt /*g:netrw_browse_split*
|
||||
g:netrw_browsex_viewer pi_netrw.txt /*g:netrw_browsex_viewer*
|
||||
g:netrw_chgperm pi_netrw.txt /*g:netrw_chgperm*
|
||||
g:netrw_chgwin pi_netrw.txt /*g:netrw_chgwin*
|
||||
g:netrw_compress pi_netrw.txt /*g:netrw_compress*
|
||||
g:netrw_ctags pi_netrw.txt /*g:netrw_ctags*
|
||||
g:netrw_cursorline pi_netrw.txt /*g:netrw_cursorline*
|
||||
g:netrw_cygwin pi_netrw.txt /*g:netrw_cygwin*
|
||||
g:netrw_dav_cmd pi_netrw.txt /*g:netrw_dav_cmd*
|
||||
g:netrw_decompress pi_netrw.txt /*g:netrw_decompress*
|
||||
g:netrw_extracmd pi_netrw.txt /*g:netrw_extracmd*
|
||||
g:netrw_fastbrowse pi_netrw.txt /*g:netrw_fastbrowse*
|
||||
g:netrw_fetch_cmd pi_netrw.txt /*g:netrw_fetch_cmd*
|
||||
g:netrw_fname_escape pi_netrw.txt /*g:netrw_fname_escape*
|
||||
@ -1490,6 +1451,7 @@ g:netrw_ftp_cmd pi_netrw.txt /*g:netrw_ftp_cmd*
|
||||
g:netrw_ftp_list_cmd pi_netrw.txt /*g:netrw_ftp_list_cmd*
|
||||
g:netrw_ftp_sizelist_cmd pi_netrw.txt /*g:netrw_ftp_sizelist_cmd*
|
||||
g:netrw_ftp_timelist_cmd pi_netrw.txt /*g:netrw_ftp_timelist_cmd*
|
||||
g:netrw_ftpextracmd pi_netrw.txt /*g:netrw_ftpextracmd*
|
||||
g:netrw_ftpmode pi_netrw.txt /*g:netrw_ftpmode*
|
||||
g:netrw_glob_escape pi_netrw.txt /*g:netrw_glob_escape*
|
||||
g:netrw_hide pi_netrw.txt /*g:netrw_hide*
|
||||
@ -1508,6 +1470,7 @@ g:netrw_localmovecmd pi_netrw.txt /*g:netrw_localmovecmd*
|
||||
g:netrw_maxfilenamelen pi_netrw.txt /*g:netrw_maxfilenamelen*
|
||||
g:netrw_menu pi_netrw.txt /*g:netrw_menu*
|
||||
g:netrw_mkdir_cmd pi_netrw.txt /*g:netrw_mkdir_cmd*
|
||||
g:netrw_mousemaps pi_netrw.txt /*g:netrw_mousemaps*
|
||||
g:netrw_nogx pi_netrw.txt /*g:netrw_nogx*
|
||||
g:netrw_preview pi_netrw.txt /*g:netrw_preview*
|
||||
g:netrw_rcp_cmd pi_netrw.txt /*g:netrw_rcp_cmd*
|
||||
@ -1518,6 +1481,7 @@ g:netrw_rmf_cmd pi_netrw.txt /*g:netrw_rmf_cmd*
|
||||
g:netrw_rsync_cmd pi_netrw.txt /*g:netrw_rsync_cmd*
|
||||
g:netrw_scp_cmd pi_netrw.txt /*g:netrw_scp_cmd*
|
||||
g:netrw_scpport pi_netrw.txt /*g:netrw_scpport*
|
||||
g:netrw_sepchr pi_netrw.txt /*g:netrw_sepchr*
|
||||
g:netrw_sftp_cmd pi_netrw.txt /*g:netrw_sftp_cmd*
|
||||
g:netrw_silent pi_netrw.txt /*g:netrw_silent*
|
||||
g:netrw_sort_by pi_netrw.txt /*g:netrw_sort_by*
|
||||
@ -1544,7 +1508,6 @@ g:tcommentMapLeaderOp2 tComment.txt /*g:tcommentMapLeaderOp2*
|
||||
g:tcommentOpModeExtra tComment.txt /*g:tcommentOpModeExtra*
|
||||
g:vimball_home pi_vimball.txt /*g:vimball_home*
|
||||
g:vimball_mkdir pi_vimball.txt /*g:vimball_mkdir*
|
||||
g:vimball_path_escape pi_vimball.txt /*g:vimball_path_escape*
|
||||
g:visincr_datedivset visincr.txt /*g:visincr_datedivset*
|
||||
getlatestvimscripts-install pi_getscript.txt /*getlatestvimscripts-install*
|
||||
getscript pi_getscript.txt /*getscript*
|
||||
@ -1611,11 +1574,13 @@ netreadfixup pi_netrw.txt /*netreadfixup*
|
||||
netrw pi_netrw.txt /*netrw*
|
||||
netrw-% pi_netrw.txt /*netrw-%*
|
||||
netrw-- pi_netrw.txt /*netrw--*
|
||||
netrw-C pi_netrw.txt /*netrw-C*
|
||||
netrw-D pi_netrw.txt /*netrw-D*
|
||||
netrw-O pi_netrw.txt /*netrw-O*
|
||||
netrw-P pi_netrw.txt /*netrw-P*
|
||||
netrw-R pi_netrw.txt /*netrw-R*
|
||||
netrw-S pi_netrw.txt /*netrw-S*
|
||||
netrw-T pi_netrw.txt /*netrw-T*
|
||||
netrw-U pi_netrw.txt /*netrw-U*
|
||||
netrw-a pi_netrw.txt /*netrw-a*
|
||||
netrw-activate pi_netrw.txt /*netrw-activate*
|
||||
@ -1633,6 +1598,7 @@ netrw-cadaver pi_netrw.txt /*netrw-cadaver*
|
||||
netrw-chgup pi_netrw.txt /*netrw-chgup*
|
||||
netrw-clean pi_netrw.txt /*netrw-clean*
|
||||
netrw-contents pi_netrw.txt /*netrw-contents*
|
||||
netrw-copyright pi_netrw.txt /*netrw-copyright*
|
||||
netrw-cr pi_netrw.txt /*netrw-cr*
|
||||
netrw-credits pi_netrw.txt /*netrw-credits*
|
||||
netrw-ctrl-h pi_netrw.txt /*netrw-ctrl-h*
|
||||
@ -1652,10 +1618,14 @@ netrw-explore pi_netrw.txt /*netrw-explore*
|
||||
netrw-explore-cmds pi_netrw.txt /*netrw-explore-cmds*
|
||||
netrw-externapp pi_netrw.txt /*netrw-externapp*
|
||||
netrw-file pi_netrw.txt /*netrw-file*
|
||||
netrw-filigree pi_netrw.txt /*netrw-filigree*
|
||||
netrw-fixup pi_netrw.txt /*netrw-fixup*
|
||||
netrw-ftp pi_netrw.txt /*netrw-ftp*
|
||||
netrw-ftype pi_netrw.txt /*netrw-ftype*
|
||||
netrw-gb pi_netrw.txt /*netrw-gb*
|
||||
netrw-getftype pi_netrw.txt /*netrw-getftype*
|
||||
netrw-gh pi_netrw.txt /*netrw-gh*
|
||||
netrw-gp pi_netrw.txt /*netrw-gp*
|
||||
netrw-gx pi_netrw.txt /*netrw-gx*
|
||||
netrw-handler pi_netrw.txt /*netrw-handler*
|
||||
netrw-help pi_netrw.txt /*netrw-help*
|
||||
@ -1667,6 +1637,7 @@ netrw-horiz pi_netrw.txt /*netrw-horiz*
|
||||
netrw-i pi_netrw.txt /*netrw-i*
|
||||
netrw-incompatible pi_netrw.txt /*netrw-incompatible*
|
||||
netrw-intro-browse pi_netrw.txt /*netrw-intro-browse*
|
||||
netrw-leftmouse pi_netrw.txt /*netrw-leftmouse*
|
||||
netrw-list pi_netrw.txt /*netrw-list*
|
||||
netrw-listbookmark pi_netrw.txt /*netrw-listbookmark*
|
||||
netrw-listhack pi_netrw.txt /*netrw-listhack*
|
||||
@ -1680,8 +1651,10 @@ netrw-me pi_netrw.txt /*netrw-me*
|
||||
netrw-mf pi_netrw.txt /*netrw-mf*
|
||||
netrw-mg pi_netrw.txt /*netrw-mg*
|
||||
netrw-mh pi_netrw.txt /*netrw-mh*
|
||||
netrw-middlemouse pi_netrw.txt /*netrw-middlemouse*
|
||||
netrw-ml_get pi_netrw.txt /*netrw-ml_get*
|
||||
netrw-mm pi_netrw.txt /*netrw-mm*
|
||||
netrw-mouse pi_netrw.txt /*netrw-mouse*
|
||||
netrw-move pi_netrw.txt /*netrw-move*
|
||||
netrw-mp pi_netrw.txt /*netrw-mp*
|
||||
netrw-mr pi_netrw.txt /*netrw-mr*
|
||||
@ -1700,6 +1673,7 @@ netrw-p pi_netrw.txt /*netrw-p*
|
||||
netrw-p1 pi_netrw.txt /*netrw-p1*
|
||||
netrw-p10 pi_netrw.txt /*netrw-p10*
|
||||
netrw-p11 pi_netrw.txt /*netrw-p11*
|
||||
netrw-p12 pi_netrw.txt /*netrw-p12*
|
||||
netrw-p2 pi_netrw.txt /*netrw-p2*
|
||||
netrw-p3 pi_netrw.txt /*netrw-p3*
|
||||
netrw-p4 pi_netrw.txt /*netrw-p4*
|
||||
@ -1732,6 +1706,7 @@ netrw-ref pi_netrw.txt /*netrw-ref*
|
||||
netrw-rename pi_netrw.txt /*netrw-rename*
|
||||
netrw-reverse pi_netrw.txt /*netrw-reverse*
|
||||
netrw-rexplore pi_netrw.txt /*netrw-rexplore*
|
||||
netrw-rightmouse pi_netrw.txt /*netrw-rightmouse*
|
||||
netrw-s pi_netrw.txt /*netrw-s*
|
||||
netrw-settings pi_netrw.txt /*netrw-settings*
|
||||
netrw-sexplore pi_netrw.txt /*netrw-sexplore*
|
||||
@ -1746,6 +1721,7 @@ netrw-starstarpat pi_netrw.txt /*netrw-starstarpat*
|
||||
netrw-start pi_netrw.txt /*netrw-start*
|
||||
netrw-t pi_netrw.txt /*netrw-t*
|
||||
netrw-texplore pi_netrw.txt /*netrw-texplore*
|
||||
netrw-todo pi_netrw.txt /*netrw-todo*
|
||||
netrw-transparent pi_netrw.txt /*netrw-transparent*
|
||||
netrw-u pi_netrw.txt /*netrw-u*
|
||||
netrw-uidpass pi_netrw.txt /*netrw-uidpass*
|
||||
@ -1791,29 +1767,6 @@ v_]% matchit.txt /*v_]%*
|
||||
v_a% matchit.txt /*v_a%*
|
||||
v_g% matchit.txt /*v_g%*
|
||||
vba pi_vimball.txt /*vba*
|
||||
vcscommand vcscommand.txt /*vcscommand*
|
||||
vcscommand-buffer-management vcscommand.txt /*vcscommand-buffer-management*
|
||||
vcscommand-buffer-variables vcscommand.txt /*vcscommand-buffer-variables*
|
||||
vcscommand-bugs vcscommand.txt /*vcscommand-bugs*
|
||||
vcscommand-commands vcscommand.txt /*vcscommand-commands*
|
||||
vcscommand-config vcscommand.txt /*vcscommand-config*
|
||||
vcscommand-contents vcscommand.txt /*vcscommand-contents*
|
||||
vcscommand-customize vcscommand.txt /*vcscommand-customize*
|
||||
vcscommand-events vcscommand.txt /*vcscommand-events*
|
||||
vcscommand-install vcscommand.txt /*vcscommand-install*
|
||||
vcscommand-intro vcscommand.txt /*vcscommand-intro*
|
||||
vcscommand-manual vcscommand.txt /*vcscommand-manual*
|
||||
vcscommand-mappings vcscommand.txt /*vcscommand-mappings*
|
||||
vcscommand-mappings-override vcscommand.txt /*vcscommand-mappings-override*
|
||||
vcscommand-naming vcscommand.txt /*vcscommand-naming*
|
||||
vcscommand-options vcscommand.txt /*vcscommand-options*
|
||||
vcscommand-ssh vcscommand.txt /*vcscommand-ssh*
|
||||
vcscommand-ssh-config vcscommand.txt /*vcscommand-ssh-config*
|
||||
vcscommand-ssh-env vcscommand.txt /*vcscommand-ssh-env*
|
||||
vcscommand-ssh-other vcscommand.txt /*vcscommand-ssh-other*
|
||||
vcscommand-ssh-wrapper vcscommand.txt /*vcscommand-ssh-wrapper*
|
||||
vcscommand-statusline vcscommand.txt /*vcscommand-statusline*
|
||||
vcscommand.txt vcscommand.txt /*vcscommand.txt*
|
||||
vimball pi_vimball.txt /*vimball*
|
||||
vimball-contents pi_vimball.txt /*vimball-contents*
|
||||
vimball-extract pi_vimball.txt /*vimball-extract*
|
||||
|
@ -2,8 +2,8 @@
|
||||
" FileType: XML
|
||||
" Author: Rene de Zwart <renez (at) lightcon.xs4all.nl>
|
||||
" Maintainer: Rene de Zwart <renez (at) lightcon.xs4all.nl>
|
||||
" Last Change: $Date: 2007/03/17 12:39:40 $
|
||||
" Version: $Revision: 1.35 $
|
||||
" Last Change: Date: 2009-11-12
|
||||
" Version: Revision: 1.37
|
||||
"
|
||||
" Licence: This program is free software; you can redistribute it
|
||||
" and/or modify it under the terms of the GNU General Public
|
||||
@ -12,12 +12,17 @@
|
||||
" for the original code. Guo-Peng Wen for the self
|
||||
" install documentation code.
|
||||
" Bart vam Deenen for makeElement function
|
||||
" Rene de Zwart
|
||||
|
||||
|
||||
" Observation - If you want to do something to a match pair most of the time
|
||||
" you must do first the close tag. Because doing first the open
|
||||
" tag could change the close tag position.
|
||||
|
||||
" NOTE with filetype index on de standard indent/html.vim interferes
|
||||
" with xml.vim. You can
|
||||
" 1) set filetype indent off in .vimrc
|
||||
" 2) echo "let b:did_indent = 1" > .vim/indent/html.vim
|
||||
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
@ -54,7 +59,7 @@ let s:OptAttrib = s:Attrib . '*'. s:NoSlashBeforeGt
|
||||
let s:ReqAttrib = s:Attrib . '\+'. s:NoSlashBeforeGt
|
||||
let s:OpenTag = '<[^!/?][^>]*' . s:OptAttrib
|
||||
let s:OpenOrCloseTag = '<[^!?][^>]*'. s:OptAttrib
|
||||
let s:CloseTag = '<\/[^>]*'. s:OptAttrib
|
||||
let s:CloseTag = '<\/[^>]*'. s:NoSlashBeforeGt
|
||||
let s:SpaceInfront = '^\s*<'
|
||||
let s:EndofName = '\($\|\s\|>\)'
|
||||
|
||||
@ -109,25 +114,19 @@ endfunction
|
||||
endif
|
||||
|
||||
" SavePos() saves position in bufferwide variable {{{1
|
||||
if !exists('*s:SavePos')
|
||||
fun! s:SavePos()
|
||||
retu 'call cursor('.line('.').','. col('.'). ')'
|
||||
endf
|
||||
en
|
||||
|
||||
" findOpenTag() {{{1
|
||||
if !exists('*s:findOpenTag')
|
||||
fun! s:findOpenTag(flag)
|
||||
call search(s:OpenTag,a:flag)
|
||||
endf
|
||||
en
|
||||
|
||||
" findCloseTag() {{{1
|
||||
if !exists('*s:findCloseTag')
|
||||
fun! s:findCloseTag(flag)
|
||||
call search(s:CloseTag,a:flag)
|
||||
endf
|
||||
en
|
||||
|
||||
" GetTagName() Gets the tagname from start position {{{1
|
||||
"Now lets go for the name part. The namepart are xmlnamechars which
|
||||
@ -141,7 +140,6 @@ endf
|
||||
en
|
||||
" hasAtt() Looks for attribute in open tag {{{1
|
||||
" expect cursor to be on <
|
||||
if !exists('*s:hasAtt')
|
||||
fun! s:hasAtt()
|
||||
"Check if this open tag has attributes
|
||||
let l:line = line('.') | let l:col = col('.')
|
||||
@ -151,7 +149,6 @@ fun! s:hasAtt()
|
||||
en
|
||||
en
|
||||
endf
|
||||
en
|
||||
|
||||
|
||||
" TagUnderCursor() Is there a tag under the cursor? {{{1
|
||||
@ -266,7 +263,7 @@ fun! s:Match(name)
|
||||
let l:flags='bW'
|
||||
let l:level = -1
|
||||
el
|
||||
exe 'normal '.b:endline.'G0'.(b:endcol-1).'l'
|
||||
exe 'normal! '.b:endline.'G0'.(b:endcol-1).'l'
|
||||
let l:flags='W'
|
||||
let l:level = 1
|
||||
en
|
||||
@ -351,16 +348,16 @@ fun! s:DelComment()
|
||||
if s:InComment()
|
||||
if b:begcom
|
||||
if search('-->','W' ) >=0
|
||||
normal hh3x
|
||||
normal! hh3x
|
||||
call cursor(b:begcomline,b:begcomcol)
|
||||
normal 4x
|
||||
normal! 4x
|
||||
retu 1
|
||||
en
|
||||
el
|
||||
if search('<!--','bW' ) >=0
|
||||
normal 4x
|
||||
normal! 4x
|
||||
call cursor(b:endcomline,b:endcomcol)
|
||||
normal hh3x
|
||||
normal! hh3x
|
||||
retu 1
|
||||
en
|
||||
en
|
||||
@ -382,20 +379,20 @@ fun! s:DelCommentSection()
|
||||
let l:len = strlen(l:sentinel)
|
||||
if b:begcom
|
||||
if search('-->','W' ) >=0
|
||||
exe "normal f>a".l:sentinel."\<Esc>"
|
||||
exe "normal! f>a".l:sentinel."\<Esc>"
|
||||
call cursor(b:begcomline,b:begcomcol)
|
||||
exe "normal \"xd/".l:sentinel."/e-".l:len."\<Cr>"
|
||||
exe "normal ".l:len."x"
|
||||
exe "normal! \"xd/".l:sentinel."/e-".l:len."\<Cr>"
|
||||
exe "normal! ".l:len."x"
|
||||
retu 1
|
||||
en
|
||||
el
|
||||
if search('<!--','bW' ) >=0
|
||||
let l:restore = s:SavePos()
|
||||
call cursor(b:endcomline,b:endcomcol)
|
||||
exe "normal a".l:sentinel."\<Esc>"
|
||||
exe "normal! a".l:sentinel."\<Esc>"
|
||||
exe l:restore
|
||||
exe "normal \"xd/".l:sentinel."/e-".l:len."\<Cr>"
|
||||
exe "normal ".l:len."x"
|
||||
exe "normal! \"xd/".l:sentinel."/e-".l:len."\<Cr>"
|
||||
exe "normal! ".l:len."x"
|
||||
retu 1
|
||||
en
|
||||
en
|
||||
@ -415,16 +412,16 @@ fun! s:DelCData()
|
||||
if s:InCData()
|
||||
if b:begdat
|
||||
if search(']]>','W' ) >=0
|
||||
normal hh3x
|
||||
normal! hh3x
|
||||
call cursor(b:begdatline,b:begdatcol)
|
||||
normal 9x
|
||||
normal! 9x
|
||||
retu 1
|
||||
en
|
||||
el
|
||||
if search('<![CDATA[','bW' ) >=0
|
||||
normal 9x
|
||||
normal! 9x
|
||||
call cursor(b:enddatline,b:enddatcol)
|
||||
normal hh3x
|
||||
normal! hh3x
|
||||
retu 1
|
||||
en
|
||||
en
|
||||
@ -503,20 +500,20 @@ fun! s:DelCDataSection()
|
||||
let l:len = strlen(l:sentinel)
|
||||
if b:begdat
|
||||
if search(']]>','W' ) >=0
|
||||
exe "normal f>a".l:sentinel."\<Esc>"
|
||||
exe "normal! f>a".l:sentinel."\<Esc>"
|
||||
call cursor(b:begdatline,b:begdatcol)
|
||||
exe "normal \"xd/".l:sentinel."/e-".l:len."\<Cr>"
|
||||
exe "normal ".l:len."x"
|
||||
exe "normal! \"xd/".l:sentinel."/e-".l:len."\<Cr>"
|
||||
exe "normal! ".l:len."x"
|
||||
retu 1
|
||||
en
|
||||
el
|
||||
if search('<![CDATA[','bW' ) >=0
|
||||
let l:restore = s:SavePos()
|
||||
call cursor(b:enddatline,b:enddatcol)
|
||||
exe "normal a".l:sentinel."\<Esc>"
|
||||
exe "normal! a".l:sentinel."\<Esc>"
|
||||
exe l:restore
|
||||
exe "normal \"xd/".l:sentinel."/e-".l:len."\<Cr>"
|
||||
exe "normal ".l:len."x"
|
||||
exe "normal! \"xd/".l:sentinel."/e-".l:len."\<Cr>"
|
||||
exe "normal! ".l:len."x"
|
||||
retu 1
|
||||
en
|
||||
en
|
||||
@ -546,16 +543,16 @@ fun! s:MatchesVisual()
|
||||
let l:restore = s:SavePos()
|
||||
if s:TagUnderCursor()
|
||||
if b:firstWasEndTag
|
||||
normal f>
|
||||
normal! f>
|
||||
en
|
||||
normal gv
|
||||
normal! gv
|
||||
if s:Match(b:tagName)
|
||||
if b:firstWasEndTag == 0
|
||||
normal f>
|
||||
normal! f>
|
||||
en
|
||||
retu
|
||||
en
|
||||
normal v
|
||||
normal! v
|
||||
en
|
||||
exe l:restore
|
||||
endf
|
||||
@ -568,18 +565,18 @@ function! s:makeElement()
|
||||
let b:haveAtt = 0
|
||||
let l:alone = (match(getline('.'),'^\s*>\s*$') >= 0)
|
||||
let l:endOfLine = ((col('.')+1) == col('$'))
|
||||
normal i<pf>
|
||||
normal! i<pf>
|
||||
if b:html_mode && b:tagName =~? b:emptyTags
|
||||
if b:haveAtt == 0
|
||||
call s:Callback (b:tagName, b:html_mode)
|
||||
endif
|
||||
if b:xml_use_xhtml
|
||||
exe "normal i/\<Esc>l"
|
||||
exe "normal! i/\<Esc>l"
|
||||
en
|
||||
if l:endOfLine
|
||||
start!
|
||||
el
|
||||
normal l
|
||||
normal! l
|
||||
start
|
||||
en
|
||||
el
|
||||
@ -607,29 +604,29 @@ fun! s:CloseTagFun()
|
||||
"<t>
|
||||
" cursor comes here
|
||||
"</t>
|
||||
normal h
|
||||
normal! h
|
||||
if s:TagUnderCursor()
|
||||
if b:firstWasEndTag == 0
|
||||
exe "normal 2f>s\<Cr>\<Esc>Ox\<Esc>>>$x"
|
||||
exe "normal! 2f>s\<Cr>\<Esc>Ox\<Esc>>>$x"
|
||||
start!
|
||||
retu
|
||||
en
|
||||
en
|
||||
elseif s:TagUnderCursor()
|
||||
if b:firstWasEndTag == 0
|
||||
exe "normal />\<Cr>"
|
||||
exe "normal! />\<Cr>"
|
||||
if b:html_mode && b:tagName =~? b:emptyTags
|
||||
if b:haveAtt == 0
|
||||
call s:Callback (b:tagName, b:html_mode)
|
||||
en
|
||||
if b:xml_use_xhtml
|
||||
exe "normal i/\<Esc>l"
|
||||
exe "normal! i/\<Esc>l"
|
||||
en
|
||||
if l:endOfLine
|
||||
start!
|
||||
retu
|
||||
el
|
||||
normal l
|
||||
normal! l
|
||||
start
|
||||
retu
|
||||
en
|
||||
@ -647,7 +644,7 @@ fun! s:CloseTagFun()
|
||||
if (col('.')+1) == col("$")
|
||||
startinsert!
|
||||
else
|
||||
normal l
|
||||
normal! l
|
||||
startinsert
|
||||
en
|
||||
endf
|
||||
@ -671,14 +668,14 @@ fun! s:BlockTag(multi)
|
||||
|
||||
"Get at the end of the block
|
||||
if col('.') == col("'<") && line('.') == line("'<")
|
||||
normal gvov
|
||||
normal! gvov
|
||||
en
|
||||
if a:multi
|
||||
exe "normal! a\<Cr></".l:newname.">\<Cr>\<Esc>"
|
||||
let l:eline = line('.')
|
||||
normal gvov
|
||||
normal! gvov
|
||||
if col('.') == col("'>") && line('.') == line("'>")
|
||||
normal gvov
|
||||
normal! gvov
|
||||
en
|
||||
let l:sline = line(".") + 2
|
||||
exe "normal! i\<Cr><".l:newname.
|
||||
@ -688,11 +685,11 @@ fun! s:BlockTag(multi)
|
||||
let &report=999999
|
||||
exe l:sline.','.l:eline.'>'
|
||||
let &report= l:rep
|
||||
exe 'normal '.l:sline.'G0mh'.l:eline."G$v'hgq"
|
||||
exe 'normal! '.l:sline.'G0mh'.l:eline."G$v'hgq"
|
||||
el
|
||||
exe "normal! a</".l:newname.">\<Esc>gvov"
|
||||
if col('.') == col("'>") && line('.') == line("'>")
|
||||
normal gvov
|
||||
normal! gvov
|
||||
en
|
||||
exe "normal! i<".l:newname.
|
||||
\ (strlen(l:newatt) ? ' '.l:newatt : '' )
|
||||
@ -707,10 +704,10 @@ en
|
||||
if !exists('*s:BlockWith')
|
||||
fun! s:BlockWith(open,close)
|
||||
if col('.') == col("'<") && line('.') == line("'<")
|
||||
normal gvov
|
||||
normal! gvov
|
||||
en
|
||||
exe "normal! a\<Cr>;x\<Esc>0cfx".a:close."\<Cr>\<Esc>"
|
||||
normal gvov
|
||||
normal! gvov
|
||||
exe "normal! i\<Cr>;x\<Esc>0cfx".a:open."\<Cr>\<Esc>"
|
||||
endf
|
||||
en
|
||||
@ -722,10 +719,10 @@ if !exists('*s:vlistitem')
|
||||
fun! s:vlistitem()
|
||||
"Get at the end of the block
|
||||
if col('.') == col("'<") && line('.') == line("'<")
|
||||
normal gvov
|
||||
normal! gvov
|
||||
en
|
||||
exe "normal! a</para>\<Cr></listitem>\<Esc>mh"
|
||||
normal gvov
|
||||
normal! gvov
|
||||
exe "normal! i\<Cr><listitem>\<Cr>\<Tab><para>\<Esc>'h/listitem>/e+1\<Cr>"
|
||||
endf
|
||||
en
|
||||
@ -741,9 +738,9 @@ fun! s:Change()
|
||||
let b:lastTag = l:newname
|
||||
if s:Match(b:tagName)
|
||||
exe b:gotoCloseTag
|
||||
exe 'normal 2lcw' . l:newname . "\<Esc>"
|
||||
exe 'normal! 2lcw' . l:newname . "\<Esc>"
|
||||
exe b:gotoOpenTag
|
||||
exe 'normal lcw' . l:newname . "\<Esc>"
|
||||
exe 'normal! lcw' . l:newname . "\<Esc>"
|
||||
en
|
||||
en
|
||||
endf
|
||||
@ -777,7 +774,7 @@ fun! s:Join()
|
||||
el
|
||||
let b:gotoCloseTag = s:SavePos()
|
||||
en
|
||||
let l:DeleteTag = "normal d/>/e\<Cr>"
|
||||
let l:DeleteTag = "normal! d/>/e\<Cr>"
|
||||
exe b:gotoCloseTag
|
||||
exe l:DeleteTag
|
||||
exe b:gotoOpenTag
|
||||
@ -804,9 +801,9 @@ fun! s:ChangeWholeTag()
|
||||
en
|
||||
if s:Match(b:tagName)
|
||||
exe b:gotoCloseTag
|
||||
exe "normal 2lc/>\<Cr>".l:newname."\<Esc>"
|
||||
exe "normal! 2lc/>\<Cr>".l:newname."\<Esc>"
|
||||
exe b:gotoOpenTag
|
||||
exe "normal lc/>/\<Cr>".l:newname.
|
||||
exe "normal! lc/>/\<Cr>".l:newname.
|
||||
\ (strlen(l:newatt) ? ' '.l:newatt : '' )
|
||||
\."\<Esc>"
|
||||
en
|
||||
@ -820,7 +817,7 @@ fun! s:Delete()
|
||||
let l:restore = s:SavePos()
|
||||
if s:TagUnderCursor()
|
||||
if s:Match(b:tagName)
|
||||
let l:DeleteTag = "normal d/>/e\<Cr>"
|
||||
let l:DeleteTag = "normal! d/>/e\<Cr>"
|
||||
exe b:gotoCloseTag
|
||||
exe l:DeleteTag
|
||||
exe b:gotoOpenTag
|
||||
@ -845,10 +842,10 @@ fun! s:DeleteSection()
|
||||
let l:rep=&report
|
||||
let &report=999999
|
||||
exe b:gotoCloseTag
|
||||
exe "normal />\<Cr>a".l:sentinel."\<Esc>"
|
||||
exe "normal! />\<Cr>a".l:sentinel."\<Esc>"
|
||||
exe b:gotoOpenTag
|
||||
exe "normal \"xd/".l:sentinel."/e-".l:len."\<Cr>"
|
||||
exe "normal ".l:len."x"
|
||||
exe "normal! \"xd/".l:sentinel."/e-".l:len."\<Cr>"
|
||||
exe "normal! ".l:len."x"
|
||||
let &report= l:rep
|
||||
en
|
||||
en
|
||||
@ -889,7 +886,7 @@ fun! s:FoldTagAll()
|
||||
en
|
||||
let b:lastTag = l:tname
|
||||
en
|
||||
normal G$
|
||||
normal! G$
|
||||
let l:flag='w'
|
||||
while search('<'.l:tname.s:OptAttrib,l:flag) > 0
|
||||
let l:flag='W'
|
||||
@ -952,7 +949,7 @@ fun! s:EndTag()
|
||||
if l:level == 0
|
||||
let l:Name = s:GetTagName(col('.'))
|
||||
exe l:restore
|
||||
exe 'normal a</'. l:Name.">\e"
|
||||
exe 'normal! a</'. l:Name.">\e"
|
||||
el
|
||||
exe l:restore
|
||||
en
|
||||
@ -1087,9 +1084,9 @@ fun! s:FormatTag()
|
||||
if s:TagUnderCursor()
|
||||
if s:Match(b:tagName)
|
||||
exe b:gotoCloseTag
|
||||
normal hhmh
|
||||
normal! hhmh
|
||||
exe b:gotoOpenTag
|
||||
exe "normal />/e+1\<Cr>v'hgq"
|
||||
exe "normal! />/e+1\<Cr>v'hgq"
|
||||
en
|
||||
en
|
||||
endf
|
||||
@ -1112,18 +1109,18 @@ fun! s:FormatTagAll()
|
||||
retu
|
||||
en
|
||||
en
|
||||
normal G$
|
||||
normal! G$
|
||||
let l:flag = 'w'
|
||||
while search('<'.l:tname . s:OptAttrib, l:flag) > 0
|
||||
let l:flag = 'W'
|
||||
let l:sline = line('.')
|
||||
let l:level = 1
|
||||
exe "normal />/e+1\<cr>mh"
|
||||
exe "normal! />/e+1\<cr>mh"
|
||||
while l:level && search('</\='.l:tname . s:EndofName,'W') > 0
|
||||
let l:level = l:level + (getline('.')[col('.')] == '/' ? -1 : 1)
|
||||
endwhile
|
||||
if l:level == 0
|
||||
normal hv'hogq
|
||||
normal! hv'hogq
|
||||
el
|
||||
let l:tmp =
|
||||
\ inputdialog("The tag ".l:tname."(".l:sline.") doesn't have a closetag")
|
||||
@ -1143,39 +1140,39 @@ fun! s:IndentAll()
|
||||
let l:rep=&report
|
||||
let &report=999999
|
||||
"shift everything left
|
||||
normal 1G<G<G<G<G<G<GG$
|
||||
normal! 1G<G<G<G<G<G<GG$
|
||||
if search(s:OpenTag,'w') > 0
|
||||
let l:level = 1
|
||||
normal f>
|
||||
normal! f>
|
||||
"if there is something after the tag move that to the next line
|
||||
if col('.')+1 != col('$')
|
||||
echo "after tag".line('.')
|
||||
exe "normal a\<Cr>\<Esc>"
|
||||
exe "normal! a\<Cr>\<Esc>"
|
||||
el
|
||||
normal j
|
||||
normal! j
|
||||
en
|
||||
normal >Gk$
|
||||
normal! >Gk$
|
||||
while search(s:OpenOrCloseTag,'W') > 0
|
||||
"if there is text before the tag then move the tag to the next line
|
||||
if match(getline('.'),s:SpaceInfront) == -1
|
||||
exe "normal i\<Cr>\<Esc>l"
|
||||
exe "normal! i\<Cr>\<Esc>l"
|
||||
en
|
||||
if getline('.')[col('.')] == '/'
|
||||
normal <G0f>
|
||||
normal! <G0f>
|
||||
"if there is something after the tag move that to the next line
|
||||
if col('.')+1 != col('$')
|
||||
exe "normal a\<Cr>\<Esc>"
|
||||
exe "normal! a\<Cr>\<Esc>"
|
||||
en
|
||||
let l:level = l:level - 1
|
||||
el
|
||||
normal f>
|
||||
normal! f>
|
||||
"if there is something after the tag move that to the next line
|
||||
if col('.')+1 != col('$')
|
||||
exe "normal a\<Cr>\<Esc>"
|
||||
exe "normal! a\<Cr>\<Esc>"
|
||||
el
|
||||
normal j0
|
||||
normal! j0
|
||||
en
|
||||
normal >Gk$
|
||||
normal! >Gk$
|
||||
let l:level = l:level + 1
|
||||
en
|
||||
endwhile
|
||||
@ -1298,7 +1295,7 @@ function! s:XmlInstallDocumentation(full_name, revision)
|
||||
" Try a default configuration in user home:
|
||||
"let l:vim_doc_path = expand("~") . l:doc_home
|
||||
let l:vim_doc_path = matchstr(&rtp,
|
||||
\ escape($HOME, '\') .'[/\\]\%(\.vim\|vimfiles\)')
|
||||
\ escape($HOME, ' \') .'[/\\]\%(\.vim\|vimfiles\)')
|
||||
if (!(filewritable(l:vim_doc_path) == 2))
|
||||
execute l:mkdir_cmd . l:vim_doc_path
|
||||
if (!(filewritable(l:vim_doc_path) == 2))
|
||||
@ -1367,7 +1364,7 @@ function! s:XmlInstallDocumentation(full_name, revision)
|
||||
call append(line('$'), ' v' . 'im:tw=78:ts=8:fen:fdm=marker:ft=help:norl:')
|
||||
|
||||
" Replace revision:
|
||||
exe "normal :1,5s/#version#/ v" . a:revision . "/\<CR>"
|
||||
exe "normal! :1,5s/#version#/ v" . a:revision . "/\<CR>"
|
||||
|
||||
" Save the help document:
|
||||
exe 'w! ' . l:doc_file
|
||||
@ -1382,7 +1379,7 @@ endfunction
|
||||
" }}}2
|
||||
|
||||
let s:revision=
|
||||
\ substitute("$Revision: 1.35 $",'\$\S*: \([.0-9]\+\) \$','\1','')
|
||||
\ substitute("$Revision: 1.36 $",'\$\S*: \([.0-9]\+\) \$','\1','')
|
||||
silent! let s:install_status =
|
||||
\ s:XmlInstallDocumentation(expand('<sfile>:p'), s:revision)
|
||||
if (s:install_status == 1)
|
||||
@ -1744,9 +1741,6 @@ for details.
|
||||
------------------------------------------------------------------------------
|
||||
*xml-plugin-callbacks*
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
*xml-plugin-callbacks*
|
||||
|
||||
Callback Functions {{{2 ~
|
||||
|
||||
A callback function is a function used to customize features on a per tag
|
||||
|
@ -1,6 +1,6 @@
|
||||
" AlignMapsPlugin: Alignment maps based upon <Align.vim> and <AlignMaps.vim>
|
||||
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Date: Oct 24, 2008
|
||||
" Date: Mar 03, 2009
|
||||
"
|
||||
" NOTE: the code herein needs vim 6.0 or later
|
||||
" needs <Align.vim> v6 or later
|
||||
@ -36,10 +36,11 @@
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
if &cp
|
||||
if &cp || exists("g:loaded_AlignMapsPlugin")
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
let s:keepcpo = &cpo
|
||||
let g:loaded_AlignMapsPlugin = "v41"
|
||||
set cpo&vim
|
||||
|
||||
" =====================================================================
|
||||
@ -63,11 +64,12 @@ endif
|
||||
nmap <silent> <script> <Plug>AlignMapsWrapperEnd :call AlignMaps#WrapperEnd()<CR>:set nolz<CR>
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Complex C-code alignment maps: {{{2!= ""
|
||||
" Complex C-code alignment maps: {{{2
|
||||
if !hasmapto('<Plug>AM_a?') |map <unique> <Leader>a? <Plug>AM_a?|endif
|
||||
if !hasmapto('<Plug>AM_a,') |map <unique> <Leader>a, <Plug>AM_a,|endif
|
||||
if !hasmapto('<Plug>AM_a<') |map <unique> <Leader>a< <Plug>AM_a<|endif
|
||||
if !hasmapto('<Plug>AM_a=') |map <unique> <Leader>a= <Plug>AM_a=|endif
|
||||
if !hasmapto('<Plug>AM_a(') |map <unique> <Leader>a( <Plug>AM_a(|endif
|
||||
if !hasmapto('<Plug>AM_abox') |map <unique> <Leader>abox <Plug>AM_abox|endif
|
||||
if !hasmapto('<Plug>AM_acom') |map <unique> <Leader>acom <Plug>AM_acom|endif
|
||||
if !hasmapto('<Plug>AM_adcom')|map <unique> <Leader>adcom <Plug>AM_adcom|endif
|
||||
@ -88,6 +90,7 @@ endif
|
||||
map <silent> <script> <Plug>AM_a? <SID>WS:AlignCtrl mIp1P1lC ? : : : : <CR>:'a,.Align<CR>:'a,'z-1s/\(\s\+\)? /?\1/e<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_a, <SID>WS:'y,'zs/\(\S\)\s\+/\1 /ge<CR>'yjma'zk:call AlignMaps#CharJoiner(",")<cr>:silent 'y,'zg/,/call AlignMaps#FixMultiDec()<CR>'z:exe "norm \<Plug>AM_adec"<cr><SID>WE
|
||||
map <silent> <script> <Plug>AM_a< <SID>WS:AlignCtrl mIp1P1=l << >><CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_a( <SID>WS:AlignCtrl mIp0P1=l<CR>:'a,.Align [(,]<CR>:sil 'y+1,'z-1s/\(\s\+\),/,\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_a= <SID>WS:AlignCtrl mIp1P1=l<CR>:AlignCtrl g :=<CR>:'a,'zAlign :\==<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_abox <SID>WS:let g:alignmaps_iws=substitute(getline("'a"),'^\(\s*\).*$','\1','e')<CR>:'a,'z-1s/^\s\+//e<CR>:'a,'z-1s/^.*$/@&@/<CR>:AlignCtrl m=p01P0w @<CR>:'a,.Align<CR>:'a,'z-1s/@/ * /<CR>:'a,'z-1s/@$/*/<CR>'aYP:s/./*/g<CR>0r/'zkYp:s/./*/g<CR>0r A/<Esc>:exe "'a-1,'z-1s/^/".g:alignmaps_iws."/e"<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_acom <SID>WS:'a,.s/\/[*/]\/\=/@&@/e<CR>:'a,.s/\*\//@&/e<CR>:'y,'zs/^\( *\) @/\1@/e<CR>'zk:call AlignMaps#StdAlign(2)<CR>:'y,'zs/^\(\s*\) @/\1/e<CR>:'y,'zs/ @//eg<CR><SID>WE
|
||||
@ -97,8 +100,8 @@ map <silent> <script> <Plug>AM_ascom <SID>WS:'a,.s/\/[*/]/@&@/e<CR>:'a,.s/\*\//@
|
||||
map <silent> <script> <Plug>AM_adec <SID>WS:'a,'zs/\([^ \t/(]\)\([*&]\)/\1 \2/e<CR>:'y,'zv/^\//s/\([^ \t]\)\s\+/\1 /ge<CR>:'y,'zv/^\s*[*/]/s/\([^/][*&]\)\s\+/\1/ge<CR>:'y,'zv/^\s*[*/]/s/^\(\s*\%(\K\k*\s\+\%([a-zA-Z_*(&]\)\@=\)\+\)\([*(&]*\)\s*\([a-zA-Z0-9_()]\+\)\s*\(\(\[.\{-}]\)*\)\s*\(=\)\=\s*\(.\{-}\)\=\s*;/\1@\2#@\3\4@\6@\7;@/e<CR>:'y,'zv/^\s*[*/]/s/\*\/\s*$/@*\//e<CR>:'y,'zv/^\s*[*/]/s/^\s\+\*/@@@@@* /e<CR>:'y,'zv/^\s*[*/]/s/^@@@@@\*\(.*[^*/]\)$/&@*/e<CR>'yjma'zk:AlignCtrl v ^\s*[*/#]<CR>:call AlignMaps#StdAlign(1)<cr>:'y,'zv/^\s*[*/]/s/@ //ge<CR>:'y,'zv/^\s*[*/]/s/\(\s*\);/;\1/e<CR>:'y,'zv/^#/s/# //e<CR>:'y,'zv/^\s\+[*/#]/s/\([^/*]\)\(\*\+\)\( \+\)/\1\3\2/e<CR>:'y,'zv/^\s\+[*/#]/s/\((\+\)\( \+\)\*/\2\1*/e<CR>:'y,'zv/^\s\+[*/#]/s/^\(\s\+\) \*/\1*/e<CR>:'y,'zv/^\s\+[*/#]/s/[ \t@]*$//e<CR>:'y,'zs/^[*]/ */e<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_adef <SID>WS:AlignPush<CR>:AlignCtrl v ^\s*\(\/\*\<bar>\/\/\)<CR>:'a,.v/^\s*\(\/\*\<bar>\/\/\)/s/^\(\s*\)#\(\s\)*define\s*\(\I[a-zA-Z_0-9(),]*\)\s*\(.\{-}\)\($\<Bar>\/\*\)/#\1\2define @\3@\4@\5/e<CR>:'a,.v/^\s*\(\/\*\<bar>\/\/\)/s/\($\<Bar>\*\/\)/@&/e<CR>'zk:call AlignMaps#StdAlign(1)<cr>'yjma'zk:'a,.v/^\s*\(\/\*\<bar>\/\/\)/s/ @//g<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_afnc :<c-u>set lz<CR>:silent call AlignMaps#Afnc()<CR>:set nolz<CR>
|
||||
map <silent> <script> <Plug>AM_aunum <SID>WS:'a,'zs/\%([0-9.]\)\s\+\zs\([-+.]\=\d\)/@\1/ge<CR>:'a,'zs/\(\(^\|\s\)\d\+\)\(\s\+\)@/\1@\3@/ge<CR>:'a,'zs/\.@/\.0@/ge<CR>:AlignCtrl mp0P0r<CR>:'a,'zAlign [.@]<CR>:'a,'zs/@/ /ge<CR>:'a,'zs/\(\.\)\(\s\+\)\([0-9.,eE+]\+\)/\1\3\2/ge<CR>:'a,'zs/\([eE]\)\(\s\+\)\([0-9+\-+]\+\)/\1\3\2/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_aenum <SID>WS:'a,'zs/\%([0-9.]\)\s\+\([-+]\=\d\)/\1@\2/ge<CR>:'a,'zs/\.@/\.0@/ge<CR>:AlignCtrl mp0P0r<CR>:'a,'zAlign [,@]<CR>:'a,'zs/@/ /ge<CR>:'a,'zs/\(,\)\(\s\+\)\([-0-9.,eE+]\+\)/\1\3\2/ge<CR>:'a,'zs/\([eE]\)\(\s\+\)\([0-9+\-+]\+\)/\1\3\2/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_aunum <SID>WS:'a,'zs/\%([0-9.]\)\s\+\zs\([-+.]\=\d\)/@\1/ge<CR>:'a,'zs/\(\(^\|\s\)\d\+\)\(\s\+\)@/\1@\3@/ge<CR>:'a,'zs/\.@/\.0@/ge<CR>:AlignCtrl wmp0P0r<CR>:'a,'zAlign [.@]<CR>:'a,'zs/@/ /ge<CR>:'a,'zs/\(\.\)\(\s\+\)\([0-9.,eE+]\+\)/\1\3\2/ge<CR>:'a,'zs/\([eE]\)\(\s\+\)\([0-9+\-+]\+\)/\1\3\2/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_aenum <SID>WS:'a,'zs/\%([0-9.]\)\s\+\([-+]\=\d\)/\1@\2/ge<CR>:'a,'zs/\.@/\.0@/ge<CR>:AlignCtrl wmp0P0r<CR>:'a,'zAlign [,@]<CR>:'a,'zs/@/ /ge<CR>:'a,'zs/\(,\)\(\s\+\)\([-0-9.,eE+]\+\)/\1\3\2/ge<CR>:'a,'zs/\([eE]\)\(\s\+\)\([0-9+\-+]\+\)/\1\3\2/ge<CR><SID>WE
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" html table alignment {{{2
|
||||
@ -128,7 +131,7 @@ map <silent> <script> <Plug>AM_Ts, <SID>WS:AlignCtrl mIp0P1=r ,<CR>:'a,.Align<C
|
||||
map <silent> <script> <Plug>AM_T: <SID>WS:AlignCtrl mIp1P1=r :<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_T; <SID>WS:AlignCtrl mIp0P0=r ;<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_T< <SID>WS:AlignCtrl mIp0P0=r <<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_T= <SID>WS:'a,'z-1s/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'z-1s@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'z-1s/; */;@/e<CR>:'a,'z-1s/==/\="\<Char-0xff>\<Char-0xff>"/ge<CR>:'a,'z-1s/!=/\x="!\<Char-0xff>"/ge<CR>:AlignCtrl mIp1P1=r = @<CR>:AlignCtrl g =<CR>:'a,'z-1Align<CR>:'a,'z-1s/; *@/;/e<CR>:'a,'z-1s/; *$/;/e<CR>:'a,'z-1s@\([*/+\-%<Bar>&\~^]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1s/\( \+\);/;\1/ge<CR>:'a,'z-1s/\xff/=/ge<CR><SID>WE:exe "norm <Plug>acom"
|
||||
map <silent> <script> <Plug>AM_T= <SID>WS:'a,'z-1s/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'z-1s@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'z-1s/; */;@/e<CR>:'a,'z-1s/==/\="\<Char-0x0f>\<Char-0x0f>"/ge<CR>:'a,'z-1s/!=/\x="!\<Char-0x0f>"/ge<CR>:AlignCtrl mIp1P1=r = @<CR>:AlignCtrl g =<CR>:'a,'z-1Align<CR>:'a,'z-1s/; *@/;/e<CR>:'a,'z-1s/; *$/;/e<CR>:'a,'z-1s@\([*/+\-%<Bar>&\~^]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1s/\( \+\);/;\1/ge<CR>:'a,'z-1s/\xff/=/ge<CR><SID>WE:exe "norm <Plug>acom"
|
||||
map <silent> <script> <Plug>AM_T? <SID>WS:AlignCtrl mIp0P0=r ?<CR>:'a,.Align<CR>:'y,'zs/ \( *\);/;\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_T@ <SID>WS:AlignCtrl mIp0P0=r @<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_Tab <SID>WS:'a,.s/^\(\t*\)\(.*\)/\=submatch(1).escape(substitute(submatch(2),'\t','@','g'),'\')/<CR>:AlignCtrl mI=r @<CR>:'a,.Align<CR>:'y+1,'z-1s/@/ /g<CR><SID>WE
|
||||
@ -140,11 +143,15 @@ map <silent> <script> <Plug>AM_T~ <SID>WS:AlignCtrl mIp0P0=r ~<CR>:'a,.Align<C
|
||||
if !hasmapto('<Plug>AM_t|') |map <unique> <Leader>t| <Plug>AM_t||endif
|
||||
if !hasmapto('<Plug>AM_t#') |map <unique> <Leader>t# <Plug>AM_t#|endif
|
||||
if !hasmapto('<Plug>AM_t,') |map <unique> <Leader>t, <Plug>AM_t,|endif
|
||||
if !hasmapto('<Plug>AM_ts,') |map <unique> <Leader>ts, <Plug>AM_ts,|endif
|
||||
if !hasmapto('<Plug>AM_t:') |map <unique> <Leader>t: <Plug>AM_t:|endif
|
||||
if !hasmapto('<Plug>AM_t;') |map <unique> <Leader>t; <Plug>AM_t;|endif
|
||||
if !hasmapto('<Plug>AM_t<') |map <unique> <Leader>t< <Plug>AM_t<|endif
|
||||
if !hasmapto('<Plug>AM_t=') |map <unique> <Leader>t= <Plug>AM_t=|endif
|
||||
if !hasmapto('<Plug>AM_ts,') |map <unique> <Leader>ts, <Plug>AM_ts,|endif
|
||||
if !hasmapto('<Plug>AM_ts:') |map <unique> <Leader>ts: <Plug>AM_ts:|endif
|
||||
if !hasmapto('<Plug>AM_ts;') |map <unique> <Leader>ts; <Plug>AM_ts;|endif
|
||||
if !hasmapto('<Plug>AM_ts<') |map <unique> <Leader>ts< <Plug>AM_ts<|endif
|
||||
if !hasmapto('<Plug>AM_ts=') |map <unique> <Leader>ts= <Plug>AM_ts=|endif
|
||||
if !hasmapto('<Plug>AM_w=') |map <unique> <Leader>w= <Plug>AM_w=|endif
|
||||
if !hasmapto('<Plug>AM_t?') |map <unique> <Leader>t? <Plug>AM_t?|endif
|
||||
if !hasmapto('<Plug>AM_t~') |map <unique> <Leader>t~ <Plug>AM_t~|endif
|
||||
@ -159,17 +166,22 @@ if !hasmapto('<Plug>AM_tt') |map <unique> <Leader>tt <Plug>AM_tt|endif
|
||||
map <silent> <script> <Plug>AM_t| <SID>WS:AlignCtrl mIp0P0=l <Bar><CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t# <SID>WS:AlignCtrl mIp0P0=l #<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t, <SID>WS:AlignCtrl mIp0P1=l ,<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_ts, <SID>WS:AlignCtrl mIp0P1=l ,<CR>:'a,.Align<CR>:'a,.s/\(\s*\),/,\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t: <SID>WS:AlignCtrl mIp1P1=l :<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t; <SID>WS:AlignCtrl mIp0P1=l ;<CR>:'a,.Align<CR>:'y,'zs/\( *\);/;\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t; <SID>WS:AlignCtrl mIp0P1=l ;<CR>:'a,.Align<CR>:sil 'y,'zs/\( *\);/;\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t< <SID>WS:AlignCtrl mIp0P0=l <<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t= <SID>WS:call AlignMaps#Equals()<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_w= <SID>WS:'a,'zg/=/s/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'zg/=/s@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'zg/=/s/==/\="\<Char-0xff>\<Char-0xff>"/ge<CR>:'a,'zg/=/s/!=/\="!\<Char-0xff>"/ge<CR>'zk:AlignCtrl mWp1P1=l =<CR>:AlignCtrl g =<CR>:'a,'z-1g/=/Align<CR>:'a,'z-1g/=/s@\([*/+\-%<Bar>&\~^!=]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1g/=/s/\( \+\);/;\1/ge<CR>:'a,'z-1v/^\s*\/[*/]/s/\/[*/]/@&@/e<CR>:'a,'z-1v/^\s*\/[*/]/s/\*\//@&/e<CR>'zk:call AlignMaps#StdAlign(1)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'a,'z-1g/=/s/\xff/=/ge<CR>:'y,'zg/=/s/ @//eg<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_ts, <SID>WS:AlignCtrl mIp0P1=l #<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\)#/,\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_ts, <SID>WS:AlignCtrl mIp0P1=l ,<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\),/,\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_ts: <SID>WS:AlignCtrl mIp1P1=l :<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\):/:\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_ts; <SID>WS:AlignCtrl mIp1P1=l ;<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\);/;\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_ts< <SID>WS:AlignCtrl mIp1P1=l <<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\)</<\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_ts= <SID>WS:AlignCtrl mIp1P1=l =<CR>:'a,.Align<CR>:sil 'y+1,'z-1s/\(\s*\)=/=\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_w= <SID>WS:'a,'zg/=/s/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'zg/=/s@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'zg/=/s/==/\="\<Char-0x0f>\<Char-0x0f>"/ge<CR>:'a,'zg/=/s/!=/\="!\<Char-0x0f>"/ge<CR>'zk:AlignCtrl mWp1P1=l =<CR>:AlignCtrl g =<CR>:'a,'z-1g/=/Align<CR>:'a,'z-1g/=/s@\([*/+\-%<Bar>&\~^!=]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1g/=/s/\( \+\);/;\1/ge<CR>:'a,'z-1v/^\s*\/[*/]/s/\/[*/]/@&@/e<CR>:'a,'z-1v/^\s*\/[*/]/s/\*\//@&/e<CR>'zk:call AlignMaps#StdAlign(1)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'a,'z-1g/=/s/\xff/=/ge<CR>:'y,'zg/=/s/ @//eg<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t? <SID>WS:AlignCtrl mIp0P0=l ?<CR>:'a,.Align<CR>:.,'zs/ \( *\);/;\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t~ <SID>WS:AlignCtrl mIp0P0=l ~<CR>:'a,.Align<CR>:'y,'zs/ \( *\);/;\1/ge<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_t@ <SID>WS::call AlignMaps#StdAlign(1)<cr>:<SID>WE
|
||||
map <silent> <script> <Plug>AM_m= <SID>WS:'a,'zs/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'zs@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'zs/==/\="\<Char-0xff>\<Char-0xff>"/ge<CR>:'a,'zs/!=/\="!\<Char-0xff>"/ge<CR>'zk:AlignCtrl mIp1P1=l =<CR>:AlignCtrl g =<CR>:'a,'z-1Align<CR>:'a,'z-1s@\([*/+\-%<Bar>&\~^!=]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1s/\( \+\);/;\1/ge<CR>:'a,'z-s/%\ze[^=]/ @%@ /e<CR>'zk:call AlignMaps#StdAlign(1)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'a,'z-1s/\xff/=/ge<CR>:'y,'zs/ @//eg<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_tab <SID>WS:'a,.s/^\(\t*\)\(.*\)$/\=submatch(1).escape(substitute(submatch(2),'\t',"\<Char-0xff>",'g'),'\')/<CR>:if &ts == 1<bar>exe "AlignCtrl mI=lp0P0 \<Char-0xff>"<bar>else<bar>exe "AlignCtrl mI=l \<Char-0xff>"<bar>endif<CR>:'a,.Align<CR>:exe "'y+1,'z-1s/\<Char-0xff>/".((&ts == 1)? '\t' : ' ')."/g"<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_m= <SID>WS:'a,'zs/\s\+\([*/+\-%<Bar>&\~^]\==\)/ \1/e<CR>:'a,'zs@ \+\([*/+\-%<Bar>&\~^]\)=@\1=@ge<CR>:'a,'zs/==/\="\<Char-0x0f>\<Char-0x0f>"/ge<CR>:'a,'zs/!=/\="!\<Char-0x0f>"/ge<CR>'zk:AlignCtrl mIp1P1=l =<CR>:AlignCtrl g =<CR>:'a,'z-1Align<CR>:'a,'z-1s@\([*/+\-%<Bar>&\~^!=]\)\( \+\)=@\2\1=@ge<CR>:'a,'z-1s/\( \+\);/;\1/ge<CR>:'a,'z-s/%\ze[^=]/ @%@ /e<CR>'zk:call AlignMaps#StdAlign(1)<cr>:'y,'zs/^\(\s*\) @/\1/e<CR>:'a,'z-1s/\xff/=/ge<CR>:'y,'zs/ @//eg<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_tab <SID>WS:'a,.s/^\(\t*\)\(.*\)$/\=submatch(1).escape(substitute(submatch(2),'\t',"\<Char-0x0f>",'g'),'\')/<CR>:if &ts == 1<bar>exe "AlignCtrl mI=lp0P0 \<Char-0x0f>"<bar>else<bar>exe "AlignCtrl mI=l \<Char-0x0f>"<bar>endif<CR>:'a,.Align<CR>:exe "'y+1,'z-1s/\<Char-0x0f>/".((&ts == 1)? '\t' : ' ')."/g"<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_tml <SID>WS:AlignCtrl mWp1P0=l \\\@<!\\\s*$<CR>:'a,.Align<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_tsp <SID>WS:'a,.s/^\(\s*\)\(.*\)/\=submatch(1).escape(substitute(submatch(2),'\s\+','@','g'),'\')/<CR>:AlignCtrl mI=lp0P0 @<CR>:'a,.Align<CR>:'y+1,'z-1s/@/ /g<CR><SID>WE
|
||||
map <silent> <script> <Plug>AM_tsq <SID>WS:'a,.AlignReplaceQuotedSpaces<CR>:'a,.s/^\(\s*\)\(.*\)/\=submatch(1).substitute(submatch(2),'\s\+','@','g')/<CR>:AlignCtrl mIp0P0=l @<CR>:'a,.Align<CR>:'y+1,'z-1s/[%@]/ /g<CR><SID>WE
|
||||
|
@ -1,6 +1,6 @@
|
||||
" AlignPlugin: tool to align multiple fields based on one or more separators
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Date: Nov 15, 2007
|
||||
" Date: Nov 02, 2008
|
||||
" GetLatestVimScripts: 294 1 :AutoInstall: Align.vim
|
||||
" GetLatestVimScripts: 1066 1 :AutoInstall: cecutil.vim
|
||||
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell, Jr. {{{1
|
||||
@ -19,10 +19,10 @@
|
||||
" faith to faith.
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
if &cp || exists("g:loaded_alignPlugin")
|
||||
if &cp || exists("g:loaded_AlignPlugin")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_alignPlugin = 1
|
||||
let g:loaded_AlignPlugin = "v35"
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,468 +0,0 @@
|
||||
" ---------------------------------------------------------------------
|
||||
" GetLatestVimScripts.vim
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Date: Feb 15, 2006
|
||||
" Version: 20
|
||||
" Installing: :help glvs-install
|
||||
" Usage: :help glvs
|
||||
"
|
||||
" GetLatestVimScripts: 642 1 :AutoInstall: GetLatestVimScripts.vim
|
||||
" ---------------------------------------------------------------------
|
||||
" Initialization: {{{1
|
||||
" if you're sourcing this file, surely you can't be
|
||||
" expecting vim to be in its vi-compatible mode
|
||||
if &cp
|
||||
echoerr "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
|
||||
finish
|
||||
endif
|
||||
let s:keepfo = &fo
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists("loaded_GetLatestVimScripts")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_GetLatestVimScripts= "v20"
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Global Variables: {{{1
|
||||
" allow user to change the command for obtaining scripts (does fetch work?)
|
||||
if !exists("g:GetLatestVimScripts_wget")
|
||||
let g:GetLatestVimScripts_wget= "wget"
|
||||
endif
|
||||
if !exists("g:GetLatestVimScripts_options")
|
||||
let g:GetLatestVimScripts_options= "-q -O"
|
||||
endif
|
||||
if !exists("g:GetLatestVimScripts_allowautoinstall")
|
||||
let g:GetLatestVimScripts_allowautoinstall= 1
|
||||
endif
|
||||
|
||||
"" For debugging:
|
||||
"let g:GetLatestVimScripts_wget = "echo"
|
||||
"let g:GetLatestVimScripts_options = "options"
|
||||
|
||||
" check if s:autoinstall is possible
|
||||
let s:autoinstall= ""
|
||||
if g:GetLatestVimScripts_allowautoinstall
|
||||
|
||||
if (has("win32") || has("gui_win32") || has("gui_win32s") || has("win16") || has("win64") || has("win32unix") || has("win95")) && &shell != "bash"
|
||||
" windows (but not cygwin/bash)
|
||||
let s:dotvim= "vimfiles"
|
||||
if !exists("g:GetLatestVimScripts_mv")
|
||||
let g:GetLatestVimScripts_mv= "ren"
|
||||
endif
|
||||
|
||||
else
|
||||
" unix
|
||||
let s:dotvim= ".vim"
|
||||
if !exists("g:GetLatestVimScripts_mv")
|
||||
let g:GetLatestVimScripts_mv= "mv"
|
||||
endif
|
||||
endif
|
||||
|
||||
if exists('$HOME') && isdirectory(expand("$HOME")."/".s:dotvim)
|
||||
let s:autoinstall= $HOME."/".s:dotvim
|
||||
endif
|
||||
" call Decho("s:autoinstall<".s:autoinstall.">")
|
||||
else
|
||||
" call Decho("g:GetLatestVimScripts_allowautoinstall=".g:GetLatestVimScripts_allowautoinstall.": :AutoInstall: disabled")
|
||||
endif
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Public Interface: {{{1
|
||||
com! -nargs=0 GetLatestVimScripts call <SID>GetLatestVimScripts()
|
||||
silent! com -nargs=0 GLVS call <SID>GetLatestVimScripts()
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" GetOneScript: (Get Latest Vim Script) this function operates {{{1
|
||||
" on the current line, interpreting two numbers and text as
|
||||
" ScriptID, SourceID, and Filename.
|
||||
" It downloads any scripts that have newer versions from vim.sf.net.
|
||||
fun! <SID>GetOneScript(...)
|
||||
" call Dfunc("GetOneScript()")
|
||||
|
||||
" set options to allow progress to be shown on screen
|
||||
let t_ti= &t_ti
|
||||
let t_te= &t_te
|
||||
let rs = &rs
|
||||
set t_ti= t_te= nors
|
||||
|
||||
" put current line on top-of-screen and interpret it into
|
||||
" a script identifer : used to obtain webpage
|
||||
" source identifier : used to identify current version
|
||||
" and an associated comment: used to report on what's being considered
|
||||
if a:0 >= 3
|
||||
let scriptid = a:1
|
||||
let srcid = a:2
|
||||
let cmmnt = a:3
|
||||
" call Decho("scriptid<".scriptid.">")
|
||||
" call Decho("srcid <".srcid.">")
|
||||
" call Decho("cmmnt <".cmmnt.">")
|
||||
else
|
||||
let curline = getline(".")
|
||||
let parsepat = '^\s*\(\d\+\)\s\+\(\d\+\)\s\+\(.\{-}\)$'
|
||||
try
|
||||
let scriptid = substitute(curline,parsepat,'\1','e')
|
||||
catch /^Vim\%((\a\+)\)\=:E486/
|
||||
let scriptid= 0
|
||||
endtry
|
||||
try
|
||||
let srcid = substitute(curline,parsepat,'\2','e')
|
||||
catch /^Vim\%((\a\+)\)\=:E486/
|
||||
let srcid= 0
|
||||
endtry
|
||||
try
|
||||
let cmmnt = substitute(curline,parsepat,'\3','e')
|
||||
catch /^Vim\%((\a\+)\)\=:E486/
|
||||
let cmmnt= ""
|
||||
endtry
|
||||
" call Decho("curline <".curline.">")
|
||||
" call Decho("parsepat<".parsepat.">")
|
||||
" call Decho("scriptid<".scriptid.">")
|
||||
" call Decho("srcid <".srcid.">")
|
||||
" call Decho("cmmnt <".cmmnt.">")
|
||||
endif
|
||||
|
||||
if scriptid == 0 || srcid == 0
|
||||
" When looking for :AutoInstall: lines, skip scripts that
|
||||
" have 0 0 scriptname
|
||||
" call Dret("GetOneScript : skipping a scriptid==srcid==0 line")
|
||||
return
|
||||
endif
|
||||
|
||||
let doautoinstall= 0
|
||||
if cmmnt =~ ":AutoInstall:"
|
||||
" call Decho("cmmnt<".cmmnt."> has :AutoInstall:...")
|
||||
let aicmmnt= substitute(cmmnt,'\s\+:AutoInstall:\s\+',' ','')
|
||||
" call Decho("aicmmnt<".aicmmnt."> s:autoinstall=".s:autoinstall)
|
||||
if s:autoinstall != ""
|
||||
let doautoinstall = g:GetLatestVimScripts_allowautoinstall
|
||||
endif
|
||||
else
|
||||
let aicmmnt= cmmnt
|
||||
endif
|
||||
" call Decho("aicmmnt<".aicmmnt.">: doautoinstall=".doautoinstall)
|
||||
|
||||
exe "norm z\<CR>"
|
||||
redraw!
|
||||
" call Decho('considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid)
|
||||
echomsg 'considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid
|
||||
|
||||
" grab a copy of the plugin's vim.sf.net webpage
|
||||
let scriptaddr = 'http://vim.sf.net/script.php?script_id='.scriptid
|
||||
let tmpfile = tempname()
|
||||
let v:errmsg = ""
|
||||
|
||||
" make three tries at downloading the description
|
||||
let itry= 1
|
||||
while itry <= 3
|
||||
" call Decho("try#".itry." to download description of <".aicmmnt."> with addr=".scriptaddr)
|
||||
if has("win32") || has("win16") || has("win95")
|
||||
" call Decho("silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".tmpfile.' "'.scriptaddr.'"')
|
||||
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".tmpfile.' "'.scriptaddr.'"'
|
||||
else
|
||||
" call Decho("silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".tmpfile." '".scriptaddr."'")
|
||||
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".tmpfile." '".scriptaddr."'"
|
||||
endif
|
||||
if itry == 1
|
||||
exe "silent vsplit ".tmpfile
|
||||
else
|
||||
silent! e %
|
||||
endif
|
||||
|
||||
" find the latest source-id in the plugin's webpage
|
||||
silent! 1
|
||||
let findpkg= search('Click on the package to download','W')
|
||||
if findpkg > 0
|
||||
break
|
||||
endif
|
||||
let itry= itry + 1
|
||||
endwhile
|
||||
" call Decho(" --- end downloading tries while loop --- itry=".itry)
|
||||
|
||||
" testing: did finding /Click on the package.../ fail?
|
||||
if findpkg == 0 || itry >= 4
|
||||
silent q!
|
||||
call delete(tmpfile)
|
||||
" restore options
|
||||
let &t_ti = t_ti
|
||||
let &t_te = t_te
|
||||
let &rs = rs
|
||||
let s:downerrors = s:downerrors + 1
|
||||
" call Decho("***warning*** couldn'".'t find "Click on the package..." in description page for <'.aicmmnt.">")
|
||||
echomsg "***warning*** couldn'".'t find "Click on the package..." in description page for <'.aicmmnt.">"
|
||||
" call Dret("GetOneScript : srch for /Click on the package/ failed")
|
||||
return
|
||||
endif
|
||||
" call Decho('found "Click on the package to download"')
|
||||
|
||||
let findsrcid= search('src_id=','W')
|
||||
if findsrcid == 0
|
||||
silent q!
|
||||
call delete(tmpfile)
|
||||
" restore options
|
||||
let &t_ti = t_ti
|
||||
let &t_te = t_te
|
||||
let &rs = rs
|
||||
let s:downerrors = s:downerrors + 1
|
||||
" call Decho("***warning*** couldn'".'t find "src_id=" in description page for <'.aicmmnt.">")
|
||||
echomsg "***warning*** couldn'".'t find "src_id=" in description page for <'.aicmmnt.">"
|
||||
" call Dret("GetOneScript : srch for /src_id/ failed")
|
||||
return
|
||||
endif
|
||||
" call Decho('found "src_id=" in description page')
|
||||
|
||||
let srcidpat = '^\s*<td class.*src_id=\(\d\+\)">\([^<]\+\)<.*$'
|
||||
let latestsrcid= substitute(getline("."),srcidpat,'\1','')
|
||||
let fname = substitute(getline("."),srcidpat,'\2','')
|
||||
" call Decho("srcidpat<".srcidpat."> latestsrcid<".latestsrcid."> fname<".fname.">")
|
||||
silent q!
|
||||
call delete(tmpfile)
|
||||
|
||||
" convert the strings-of-numbers into numbers
|
||||
let srcid = srcid + 0
|
||||
let latestsrcid = latestsrcid + 0
|
||||
" call Decho("srcid=".srcid." latestsrcid=".latestsrcid." fname<".fname.">")
|
||||
|
||||
" has the plugin's most-recent srcid increased, which indicates
|
||||
" that it has been updated
|
||||
if latestsrcid > srcid
|
||||
let s:downloads= s:downloads + 1
|
||||
if fname == bufname("%")
|
||||
" GetLatestVimScript has to be careful about downloading itself
|
||||
let fname= "NEW_".fname
|
||||
endif
|
||||
|
||||
" the plugin has been updated since we last obtained it, so download a new copy
|
||||
" call Decho("...downloading new <".fname.">")
|
||||
echomsg "...downloading new <".fname.">"
|
||||
if has("win32") || has("gui_win32") || has("gui_win32s") || has("win16") || has("win64") || has("win32unix") || has("win95")
|
||||
" call Decho("windows: silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".fname.' "'.'http://vim.sf.net/scripts/download_script.php?src_id='.latestsrcid.'"')
|
||||
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".fname.' "'.'http://vim.sf.net/scripts/download_script.php?src_id='.latestsrcid.'"'
|
||||
else
|
||||
" call Decho("unix: silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".fname." '".'http://vim.sf.net/scripts/download_script.php?src_id='.latestsrcid."'")
|
||||
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".fname." '".'http://vim.sf.net/scripts/download_script.php?src_id='.latestsrcid."'"
|
||||
endif
|
||||
|
||||
" AutoInstall: only if doautoinstall is so indicating
|
||||
if doautoinstall
|
||||
" call Decho("attempting to do autoinstall: getcwd<".getcwd()."> filereadable(".fname.")=".filereadable(fname))
|
||||
if filereadable(fname)
|
||||
" call Decho("move <".fname."> to ".s:autoinstall)
|
||||
" call Decho("DISABLED for testing")
|
||||
exe "silent !"g:GetLatestVimScripts_mv." ".fname." ".s:autoinstall
|
||||
let curdir= escape(substitute(getcwd(),'\','/','ge'),"|[]*'\" #")
|
||||
exe "cd ".s:autoinstall
|
||||
if fname =~ '\.bz2$'
|
||||
" call Decho("attempt to bunzip2 ".fname)
|
||||
exe "silent !bunzip2 ".fname
|
||||
let fname= substitute(fname,'\.bz2$','','')
|
||||
elseif fname =~ '\.gz$'
|
||||
" call Decho("attempt to gunzip ".fname)
|
||||
exe "silent !gunzip ".fname
|
||||
let fname= substitute(fname,'\.gz$','','')
|
||||
endif
|
||||
if fname =~ '\.zip$'
|
||||
" call Decho("attempt to unzip ".fname)
|
||||
exe "silent !unzip -o".fname
|
||||
elseif fname =~ '\.tar$'
|
||||
" call Decho("attempt to untar ".fname)
|
||||
exe "silent !tar -oxvf ".fname
|
||||
endif
|
||||
if fname =~ '.vim$'
|
||||
" call Decho("attempt to simply move ".fname." to plugin")
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".fname." plugin"
|
||||
endif
|
||||
exe "helptags ../".s:dotvim."/doc"
|
||||
exe "cd ".curdir
|
||||
endif
|
||||
endif
|
||||
|
||||
" update the data in the <GetLatestVimScripts.dat> file
|
||||
let modline=scriptid." ".latestsrcid." ".cmmnt
|
||||
call setline(line("."),modline)
|
||||
" call Decho("modline<".modline."> (updated GetLatestVimScripts.dat file)")
|
||||
endif
|
||||
|
||||
" restore options
|
||||
let &t_ti= t_ti
|
||||
let &t_te= t_te
|
||||
let &rs = rs
|
||||
|
||||
" call Dret("GetOneScript")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" GetLatestVimScripts: this function gets the latest versions of {{{1
|
||||
" scripts based on the list in
|
||||
"
|
||||
" (first dir in runtimepath)/GetLatest/GetLatestVimScripts.dat
|
||||
fun! <SID>GetLatestVimScripts()
|
||||
" call Dfunc("GetLatestVimScripts() autoinstall<".s:autoinstall.">")
|
||||
|
||||
" insure that wget is executable
|
||||
if executable(g:GetLatestVimScripts_wget) != 1
|
||||
echoerr "GetLatestVimScripts needs ".g:GetLatestVimScripts_wget." which apparently is not available on your system"
|
||||
" call Dret("GetLatestVimScripts : wget not executable/availble")
|
||||
return
|
||||
endif
|
||||
|
||||
" Find the .../GetLatest sudirectory under the runtimepath
|
||||
let rtplist= &rtp
|
||||
while rtplist != ""
|
||||
let datadir= substitute(rtplist,',.*$','','e')."/GetLatest"
|
||||
if isdirectory(datadir)
|
||||
" call Decho("found directory<".datadir.">")
|
||||
break
|
||||
endif
|
||||
unlet datadir
|
||||
if rtplist =~ ','
|
||||
let rtplist= substitute(rtplist,'^.\{-},','','e')
|
||||
else
|
||||
let rtplist= ""
|
||||
endif
|
||||
endwhile
|
||||
|
||||
" Sanity checks: readability and writability
|
||||
if !exists("datadir")
|
||||
echoerr "Unable to find a GetLatest subdirectory on your runtimepath"
|
||||
" call Dret("GetLatestVimScripts : unable to find a GetLatest subdirectory")
|
||||
return
|
||||
endif
|
||||
if filewritable(datadir) != 2
|
||||
echoerr "Your ".datadir." isn't writable"
|
||||
" call Dret("GetLatestVimScripts : non-writable directory<".datadir.">")
|
||||
return
|
||||
endif
|
||||
let datafile= datadir."/GetLatestVimScripts.dat"
|
||||
if !filereadable(datafile)
|
||||
echoerr "Your data file<".datafile."> isn't readable"
|
||||
" call Dret("GetLatestVimScripts : non-readable datafile<".datafile.">")
|
||||
return
|
||||
endif
|
||||
if !filewritable(datafile)
|
||||
echoerr "Your data file<".datafile."> isn't writable"
|
||||
" call Dret("GetLatestVimScripts : non-writable datafile<".datafile.">")
|
||||
return
|
||||
endif
|
||||
" call Decho("datadir <".datadir.">")
|
||||
" call Decho("datafile <".datafile.">")
|
||||
|
||||
" don't let any events interfere (like winmanager's, taglist's, etc)
|
||||
let eikeep= &ei
|
||||
set ei=all
|
||||
|
||||
" record current directory, change to datadir, open split window with
|
||||
" datafile
|
||||
let origdir= getcwd()
|
||||
exe "cd ".escape(substitute(datadir,'\','/','ge'),"|[]*'\" #")
|
||||
split
|
||||
exe "e ".escape(substitute(datafile,'\','/','ge'),"|[]*'\" #")
|
||||
res 1000
|
||||
let s:downloads = 0
|
||||
let s:downerrors= 0
|
||||
|
||||
" Check on dependencies mentioned in plugins
|
||||
" call Decho(" ")
|
||||
" call Decho("searching plugins for GetLatestVimScripts dependencies")
|
||||
let lastline = line("$")
|
||||
let plugins = globpath(&rtp,"plugin/*.vim")
|
||||
let foundscript = 0
|
||||
|
||||
" call Decho("plugins<".plugins."> lastline#".lastline)
|
||||
while plugins != ""
|
||||
let plugin = substitute(plugins,'\n.*$','','e')
|
||||
let plugins= (plugins =~ '\n')? substitute(plugins,'^.\{-}\n\(.*\)$','\1','e') : ""
|
||||
$
|
||||
" call Decho(".dependency checking<".plugin."> line$=".line("$"))
|
||||
exe "silent r ".plugin
|
||||
while search('^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+','W') != 0
|
||||
let newscript= substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+\s\+\(.*\)$','\1','e')
|
||||
let llp1 = lastline+1
|
||||
|
||||
if newscript !~ '^"'
|
||||
" found a "GetLatestVimScripts: # #" line in the script; check if its already in the datafile
|
||||
let curline = line(".")
|
||||
let noai_script = substitute(newscript,'\s*:AutoInstall:\s*','','e')
|
||||
exe llp1
|
||||
let srchline = search('\<'.noai_script.'\>','bW')
|
||||
" call Decho("..newscript<".newscript."> noai_script<".noai_script."> srch=".srchline." lastline=".lastline)
|
||||
|
||||
if srchline == 0
|
||||
" found a new script to permanently include in the datafile
|
||||
let keep_rega = @a
|
||||
let @a = substitute(getline(curline),'^"\s\+GetLatestVimScripts:\s\+','','')
|
||||
exe lastline."put a"
|
||||
echomsg "Appending <".@a."> to ".datafile." for ".newscript
|
||||
" call Decho("..APPEND (".noai_script.")<".@a."> to GetLatestVimScripts.dat")
|
||||
let @a = keep_rega
|
||||
let lastline = llp1
|
||||
let curline = curline + 1
|
||||
let foundscript = foundscript + 1
|
||||
" else " Decho
|
||||
" call Decho("..found <".noai_script."> (already in datafile at line#".srchline.")")
|
||||
endif
|
||||
|
||||
let curline = curline + 1
|
||||
exe curline
|
||||
endif
|
||||
|
||||
endwhile
|
||||
let llp1= lastline + 1
|
||||
" call Decho(".deleting lines: ".llp1.",$d")
|
||||
exe "silent! ".llp1.",$d"
|
||||
endwhile
|
||||
|
||||
if foundscript == 0
|
||||
set nomod
|
||||
endif
|
||||
|
||||
" Check on out-of-date scripts using GetLatest/GetLatestVimScripts.dat
|
||||
set lz
|
||||
" call Decho(" --- end of dependency checking loop --- ")
|
||||
" call Decho("call GetOneScript on lines at end of datafile<".datafile.">")
|
||||
1
|
||||
/^-----/,$g/^\s*\d/call <SID>GetOneScript()
|
||||
|
||||
" Final report (an echomsg)
|
||||
try
|
||||
silent! ?^-------?
|
||||
catch /^Vim\%((\a\+)\)\=:E114/
|
||||
" call Dret("GetLatestVimScripts : nothing done!")
|
||||
return
|
||||
endtry
|
||||
exe "norm! kz\<CR>"
|
||||
let s:msg = ""
|
||||
if s:downloads == 1
|
||||
let s:msg = "Downloaded one updated script to <".datadir.">"
|
||||
elseif s:downloads == 2
|
||||
let s:msg= "Downloaded two updated scripts to <".datadir.">"
|
||||
elseif s:downloads > 1
|
||||
let s:msg= "Downloaded ".s:downloads." updated scripts to <".datadir.">"
|
||||
else
|
||||
let s:msg= "Everything was already current"
|
||||
endif
|
||||
if s:downerrors > 0
|
||||
let s:msg= s:msg." (".s:downerrors." downloading errors)"
|
||||
endif
|
||||
echomsg s:msg
|
||||
" save the file
|
||||
if &mod
|
||||
wq
|
||||
else
|
||||
q
|
||||
endif
|
||||
|
||||
" restore events and current directory
|
||||
exe "cd ".escape(substitute(origdir,'\','/','ge'),"|[]*'\" #")
|
||||
let &ei= eikeep
|
||||
set nolz
|
||||
" call Dret("GetLatestVimScripts : did ".s:downloads." downloads")
|
||||
endfun
|
||||
" ---------------------------------------------------------------------
|
||||
|
||||
" Restore Options: {{{1
|
||||
let &fo = s:keepfo
|
||||
let &cpo= s:keepcpo
|
||||
|
||||
" vim: ts=4 fdm=marker nowrap
|
@ -83,7 +83,7 @@ fun! SaveWinPosn(...)
|
||||
return ""
|
||||
endif
|
||||
let so_keep = &l:so
|
||||
let siso_keep = &l:siso
|
||||
let siso_keep = &siso
|
||||
let ss_keep = &l:ss
|
||||
setlocal so=0 siso=0 ss=0
|
||||
|
||||
@ -115,7 +115,7 @@ fun! SaveWinPosn(...)
|
||||
endif
|
||||
|
||||
let &l:so = so_keep
|
||||
let &l:siso = siso_keep
|
||||
let &siso = siso_keep
|
||||
let &l:ss = ss_keep
|
||||
|
||||
" if exists("b:cecutil_iwinposn") " Decho
|
||||
@ -129,6 +129,8 @@ endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" RestoreWinPosn: {{{2
|
||||
" call RestoreWinPosn()
|
||||
" call RestoreWinPosn(winposn)
|
||||
fun! RestoreWinPosn(...)
|
||||
" call Dfunc("RestoreWinPosn() a:0=".a:0)
|
||||
" call Decho("getline(1)<".getline(1).">")
|
||||
|
169
vimfiles/plugin/editsrec.vim
Normal file
169
vimfiles/plugin/editsrec.vim
Normal file
@ -0,0 +1,169 @@
|
||||
" Vim Global Plugin for Editing .srec Files
|
||||
" Maintainer: Alexander Fleck
|
||||
" <alexander.fleck@gmx.net>
|
||||
" License: This File is placed in the Public Domain.
|
||||
" Revision | Date [DD.MM.YY] | Changes
|
||||
" 00.01.00 | 05.07.09 | 01. Revision
|
||||
|
||||
if exists("loaded_editsrec")
|
||||
finish
|
||||
endif
|
||||
let loaded_editsrec = 1
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" BC = ByteCount
|
||||
if !hasmapto('<Plug>EditSrecLineBC')
|
||||
map <unique> <Leader>lb <Plug>EditSrecLineBC
|
||||
endif
|
||||
noremap <unique> <script> <Plug>EditSrecLineBC <SID>AutoLineBC
|
||||
noremap <SID>AutoLineBC <Esc>:call <SID>AutoLineBC()<CR>
|
||||
if !hasmapto('<Plug>EditSrecPartBC')
|
||||
map <unique> <Leader>pb <Plug>EditSrecPartBC
|
||||
endif
|
||||
noremap <unique> <script> <Plug>EditSrecPartBC <SID>AutoPartBC
|
||||
noremap <SID>AutoPartBC <Esc>:call <SID>AutoPartBC()<CR>
|
||||
|
||||
" AD = ADdress
|
||||
if !hasmapto('<Plug>EditSrecLineAD')
|
||||
map <unique> <Leader>la <Plug>EditSrecLineAD
|
||||
endif
|
||||
noremap <unique> <script> <Plug>EditSrecLineAD <SID>AutoLineAD
|
||||
noremap <SID>AutoLineAD <Esc>:call <SID>AutoLineAD()<CR>
|
||||
if !hasmapto('<Plug>EditSrecPartAD')
|
||||
map <unique> <Leader>pa <Plug>EditSrecPartAD
|
||||
endif
|
||||
noremap <unique> <script> <Plug>EditSrecPartAD <SID>AutoPartAD
|
||||
noremap <SID>AutoPartAD <Esc>:call <SID>AutoPartAD()<CR>
|
||||
|
||||
" DA = DAta
|
||||
if !hasmapto('<Plug>EditSrecLineDA')
|
||||
map <unique> <Leader>ld <Plug>EditSrecLineDA
|
||||
endif
|
||||
noremap <unique> <script> <Plug>EditSrecLineDA <SID>AutoLineDA
|
||||
noremap <SID>AutoLineDA <Esc>:call <SID>AutoLineDA()<CR>
|
||||
if !hasmapto('<Plug>EditSrecPartDA')
|
||||
map <unique> <Leader>pd <Plug>EditSrecPartDA
|
||||
endif
|
||||
noremap <unique> <script> <Plug>EditSrecPartDA <SID>AutoPartDA
|
||||
noremap <SID>AutoPartDA <Esc>:call <SID>AutoPartDA()<CR>
|
||||
|
||||
" CS = CheckSum
|
||||
if !hasmapto('<Plug>EditSrecLineCS')
|
||||
map <unique> <Leader>lc <Plug>EditSrecLineCS
|
||||
endif
|
||||
noremap <unique> <script> <Plug>EditSrecLineCS <SID>AutoLineCS
|
||||
noremap <SID>AutoLineCS <Esc>:call <SID>AutoLineCS()<CR>
|
||||
if !hasmapto('<Plug>EditSrecPartCS')
|
||||
map <unique> <Leader>pc <Plug>EditSrecPartCS
|
||||
endif
|
||||
noremap <unique> <script> <Plug>EditSrecPartCS <SID>AutoPartCS
|
||||
noremap <SID>AutoPartCS <Esc>:call <SID>AutoPartCS()<CR>
|
||||
|
||||
" obsolete Mappings
|
||||
"imap <F5> <Esc>:call <SID>AutoLineBC()<CR>a
|
||||
"imap <F6> <Esc>:call <SID>AutoLineAD()<CR>a
|
||||
"imap <F7> <Esc>:call <SID>AutoLineDA()<CR>a
|
||||
"imap <F8> <Esc>:call <SID>AutoLineCS()<CR>a
|
||||
"imap <C-F5> <Esc>:call <SID>AutoPartBC()<CR>a
|
||||
"imap <C-F6> <Esc>:call <SID>AutoPartAD()<CR>a
|
||||
"imap <C-F7> <Esc>:call <SID>AutoPartDA()<CR>a
|
||||
"imap <C-F8> <Esc>:call <SID>AutoPartCS()<CR>a
|
||||
|
||||
" create Line from ByteCount
|
||||
fun s:AutoLineBC()
|
||||
let s:ln = getline(".")
|
||||
|
||||
let s:ln = s:ln . libsrec#CrBC(s:ln)
|
||||
let s:ln = s:ln . libsrec#CrAD(s:ln)
|
||||
let s:ln = s:ln . libsrec#CrDA(s:ln)
|
||||
let s:ln = s:ln . libsrec#CrCS(s:ln)
|
||||
|
||||
call setline(".", s:ln)
|
||||
|
||||
unlet s:ln
|
||||
endfun
|
||||
|
||||
" create only ByteCount
|
||||
fun s:AutoPartBC()
|
||||
let s:ln = getline(".")
|
||||
|
||||
let s:ln = s:ln . libsrec#CrBC(s:ln)
|
||||
|
||||
call setline(".", s:ln)
|
||||
|
||||
unlet s:ln
|
||||
endfun
|
||||
|
||||
" create Line from ADdress
|
||||
fun s:AutoLineAD()
|
||||
let s:ln = getline(".")
|
||||
|
||||
let s:ln = s:ln . libsrec#CrAD(s:ln)
|
||||
let s:ln = s:ln . libsrec#CrDA(s:ln)
|
||||
let s:ln = s:ln . libsrec#CrCS(s:ln)
|
||||
|
||||
call setline(".", s:ln)
|
||||
|
||||
unlet s:ln
|
||||
endfun
|
||||
|
||||
" create only ADdress
|
||||
fun s:AutoPartAD()
|
||||
let s:ln = getline(".")
|
||||
|
||||
let s:ln = s:ln . libsrec#CrAD(s:ln)
|
||||
|
||||
call setline(".", s:ln)
|
||||
|
||||
unlet s:ln
|
||||
endfun
|
||||
|
||||
" create Line from DAta
|
||||
fun s:AutoLineDA()
|
||||
let s:ln = getline(".")
|
||||
|
||||
let s:ln = s:ln . libsrec#CrDA(s:ln)
|
||||
let s:ln = s:ln . libsrec#CrCS(s:ln)
|
||||
|
||||
call setline(".", s:ln)
|
||||
|
||||
unlet s:ln
|
||||
endfun
|
||||
|
||||
" create only DAta
|
||||
fun s:AutoPartDA()
|
||||
let s:ln = getline(".")
|
||||
|
||||
let s:ln = s:ln . libsrec#CrDA(s:ln)
|
||||
|
||||
call setline(".", s:ln)
|
||||
|
||||
unlet s:ln
|
||||
endfun
|
||||
|
||||
" create Line from CheckSum
|
||||
fun s:AutoLineCS()
|
||||
let s:ln = getline(".")
|
||||
|
||||
let s:ln = s:ln . libsrec#CrCS(s:ln)
|
||||
|
||||
call setline(".", s:ln)
|
||||
|
||||
unlet s:ln
|
||||
endfun
|
||||
|
||||
" create only CheckSum
|
||||
fun s:AutoPartCS()
|
||||
let s:ln = getline(".")
|
||||
|
||||
let s:ln = s:ln . libsrec#CrCS(s:ln)
|
||||
|
||||
call setline(".", s:ln)
|
||||
|
||||
unlet s:ln
|
||||
endfun
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
|
337
vimfiles/plugin/editsrec_test.txt
Normal file
337
vimfiles/plugin/editsrec_test.txt
Normal file
@ -0,0 +1,337 @@
|
||||
" Vim Test Cases for Editing .srec Files
|
||||
" Maintainer: Alexander Fleck
|
||||
" <alexander.fleck@gmx.net>
|
||||
" License: This File is placed in the Public Domain.
|
||||
" Revision | Date [DD.MM.YY] | Changes
|
||||
" 00.01.00 | 05.07.09 | 01. Revision
|
||||
|
||||
" This File contains Test Cases for the Plugin 'editsrec.vim'
|
||||
" and its Library 'libsrec.vim'.
|
||||
|
||||
TestCases for ByteCount
|
||||
Line -----------------------------
|
||||
insert a new Line and type "S0"
|
||||
type "<Esc><Leader>lb"
|
||||
the following Line will be created
|
||||
S00F0000FFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
insert a new Line and type "S1"
|
||||
type "<Esc><Leader>lb"
|
||||
the following Line will be created
|
||||
S10F0000FFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
insert a new Line and type "S2"
|
||||
type "<Esc><Leader>lb"
|
||||
the following Line will be created
|
||||
S20F000000FFFFFFFFFFFFFFFFFFFFFFFB
|
||||
insert a new Line and type "S3"
|
||||
type "<Esc><Leader>lb"
|
||||
the following Line will be created
|
||||
S30F00000000FFFFFFFFFFFFFFFFFFFFFA
|
||||
insert a new Line and type "S4"
|
||||
type "<Esc><Leader>lb"
|
||||
Nothing will be created
|
||||
insert a new Line and type "S5"
|
||||
type "<Esc><Leader>lb"
|
||||
the following Line will be created
|
||||
S5030000FC
|
||||
insert a new Line and type "S6"
|
||||
type "<Esc><Leader>lb"
|
||||
Nothing will be created
|
||||
insert a new Line and type "S7"
|
||||
type "<Esc><Leader>lb"
|
||||
the following Line will be created
|
||||
S70500000000FA
|
||||
insert a new Line and type "S8"
|
||||
type "<Esc><Leader>lb"
|
||||
the following Line will be created
|
||||
S804000000FB
|
||||
insert a new Line and type "S9"
|
||||
type "<Esc><Leader>lb"
|
||||
the following Line will be created
|
||||
S9030000FC
|
||||
|
||||
Part -----------------------------
|
||||
insert a new Line and type "S0"
|
||||
type "<Esc><Leader>pb"
|
||||
the following Line will be created
|
||||
S00F
|
||||
insert a new Line and type "S1"
|
||||
type "<Esc><Leader>pb"
|
||||
the following Line will be created
|
||||
S10F
|
||||
insert a new Line and type "S2"
|
||||
type "<Esc><Leader>pb"
|
||||
the following Line will be created
|
||||
S20F
|
||||
insert a new Line and type "S3"
|
||||
type "<Esc><Leader>pb"
|
||||
the following Line will be created
|
||||
S30F
|
||||
insert a new Line and type "S4"
|
||||
type "<Esc><Leader>pb"
|
||||
Nothing will be created
|
||||
insert a new Line and type "S5"
|
||||
type "<Esc><Leader>pb"
|
||||
the following Line will be created
|
||||
S503
|
||||
insert a new Line and type "S6"
|
||||
type "<Esc><Leader>pb"
|
||||
Nothing will be created
|
||||
insert a new Line and type "S7"
|
||||
type "<Esc><Leader>pb"
|
||||
the following Line will be created
|
||||
S705
|
||||
insert a new Line and type "S8"
|
||||
type "<Esc><Leader>pb"
|
||||
the following Line will be created
|
||||
S804
|
||||
insert a new Line and type "S9"
|
||||
type "<Esc><Leader>pb"
|
||||
the following Line will be created
|
||||
S903
|
||||
|
||||
|
||||
TestCases for ADdress
|
||||
Line -----------------------------
|
||||
insert a new Line and type "S00F"
|
||||
type "<Esc><Leader>la"
|
||||
the following Line will be created
|
||||
S00F0000FFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
insert a new Line and type "S10F"
|
||||
type "<Esc><Leader>la"
|
||||
the following Line will be created
|
||||
S10F0000FFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
insert a new Line and type "S20F"
|
||||
type "<Esc><Leader>la"
|
||||
the following Line will be created
|
||||
S20F000000FFFFFFFFFFFFFFFFFFFFFFFB
|
||||
insert a new Line and type "S30F"
|
||||
type "<Esc><Leader>la"
|
||||
the following Line will be created
|
||||
S30F00000000FFFFFFFFFFFFFFFFFFFFFA
|
||||
insert a new Line and type "S40F"
|
||||
type "<Esc><Leader>la"
|
||||
Nothing will be created
|
||||
insert a new Line and type "S503"
|
||||
type "<Esc><Leader>la"
|
||||
the following Line will be created
|
||||
S5030000FC
|
||||
insert a new Line and type "S60F"
|
||||
type "<Esc><Leader>la"
|
||||
Nothing will be created
|
||||
insert a new Line and type "S705"
|
||||
type "<Esc><Leader>la"
|
||||
the following Line will be created
|
||||
S70500000000FA
|
||||
insert a new Line and type "S804"
|
||||
type "<Esc><Leader>la"
|
||||
the following Line will be created
|
||||
S804000000FB
|
||||
insert a new Line and type "S903"
|
||||
type "<Esc><Leader>la"
|
||||
the following Line will be created
|
||||
S9030000FC
|
||||
|
||||
Part -----------------------------
|
||||
insert a new Line and type "S00F"
|
||||
type "<Esc><Leader>pa"
|
||||
the following Line will be created
|
||||
S00F0000
|
||||
insert a new Line and type "S10F"
|
||||
type "<Esc><Leader>pa"
|
||||
the following Line will be created
|
||||
S10F0000
|
||||
insert a new Line and type "S20F"
|
||||
type "<Esc><Leader>pa"
|
||||
the following Line will be created
|
||||
S20F000000
|
||||
insert a new Line and type "S30F"
|
||||
type "<Esc><Leader>pa"
|
||||
the following Line will be created
|
||||
S30F00000000
|
||||
insert a new Line and type "S40F"
|
||||
type "<Esc><Leader>pa"
|
||||
Nothing will be created
|
||||
insert a new Line and type "S503"
|
||||
type "<Esc><Leader>pa"
|
||||
the following Line will be created
|
||||
S5030000
|
||||
insert a new Line and type "S60F"
|
||||
type "<Esc><Leader>pa"
|
||||
Nothing will be created
|
||||
insert a new Line and type "S705"
|
||||
type "<Esc><Leader>pa"
|
||||
the following Line will be created
|
||||
S70500000000
|
||||
insert a new Line and type "S804"
|
||||
type "<Esc><Leader>pa"
|
||||
the following Line will be created
|
||||
S804000000
|
||||
insert a new Line and type "S903"
|
||||
type "<Esc><Leader>pa"
|
||||
the following Line will be created
|
||||
S9030000
|
||||
|
||||
|
||||
TestCases for DAta
|
||||
Line -----------------------------
|
||||
insert a new Line and type "S00F0000"
|
||||
type "<Esc><Leader>ld"
|
||||
the following Line will be created
|
||||
S00F0000FFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
insert a new Line and type "S10F0000"
|
||||
type "<Esc><Leader>ld"
|
||||
the following Line will be created
|
||||
S10F0000FFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
insert a new Line and type "S20F000000"
|
||||
type "<Esc><Leader>ld"
|
||||
the following Line will be created
|
||||
S20F000000FFFFFFFFFFFFFFFFFFFFFFFB
|
||||
insert a new Line and type "S30F00000000"
|
||||
type "<Esc><Leader>ld"
|
||||
the following Line will be created
|
||||
S30F00000000FFFFFFFFFFFFFFFFFFFFFA
|
||||
insert a new Line and type "S40F0000"
|
||||
type "<Esc><Leader>ld"
|
||||
Nothing will be created
|
||||
insert a new Line and type "S5030000"
|
||||
type "<Esc><Leader>ld"
|
||||
the following Line will be created
|
||||
S5030000FC
|
||||
insert a new Line and type "S60F0000"
|
||||
type "<Esc><Leader>ld"
|
||||
Nothing will be created
|
||||
insert a new Line and type "S70500000000"
|
||||
type "<Esc><Leader>ld"
|
||||
the following Line will be created
|
||||
S70500000000FA
|
||||
insert a new Line and type "S804000000"
|
||||
type "<Esc><Leader>ld"
|
||||
the following Line will be created
|
||||
S804000000FB
|
||||
insert a new Line and type "S9030000"
|
||||
type "<Esc><Leader>ld"
|
||||
the following Line will be created
|
||||
S9030000FC
|
||||
|
||||
Part -----------------------------
|
||||
insert a new Line and type "S00F0000"
|
||||
type "<Esc><Leader>pd"
|
||||
the following Line will be created
|
||||
S00F0000FFFFFFFFFFFFFFFFFFFFFFFF
|
||||
insert a new Line and type "S10F0000"
|
||||
type "<Esc><Leader>pd"
|
||||
the following Line will be created
|
||||
S00F0000FFFFFFFFFFFFFFFFFFFFFFFF
|
||||
insert a new Line and type "S20F000000"
|
||||
type "<Esc><Leader>pd"
|
||||
the following Line will be created
|
||||
S00F000000FFFFFFFFFFFFFFFFFFFFFF
|
||||
insert a new Line and type "S30F00000000"
|
||||
type "<Esc><Leader>pd"
|
||||
the following Line will be created
|
||||
S00F00000000FFFFFFFFFFFFFFFFFFFF
|
||||
insert a new Line and type "S40F0000"
|
||||
type "<Esc><Leader>pd"
|
||||
Nothing will be created
|
||||
insert a new Line and type "S5030000"
|
||||
type "<Esc><Leader>pd"
|
||||
the following Line will be created
|
||||
S5030000
|
||||
insert a new Line and type "S60F0000"
|
||||
type "<Esc><Leader>pd"
|
||||
Nothing will be created
|
||||
insert a new Line and type "S70500000000"
|
||||
type "<Esc><Leader>pd"
|
||||
the following Line will be created
|
||||
S70500000000
|
||||
insert a new Line and type "S804000000"
|
||||
type "<Esc><Leader>pd"
|
||||
the following Line will be created
|
||||
S804000000
|
||||
insert a new Line and type "S9030000"
|
||||
type "<Esc><Leader>pd"
|
||||
the following Line will be created
|
||||
S9030000
|
||||
|
||||
|
||||
TestCases for CheckSum
|
||||
Line -----------------------------
|
||||
insert a new Line and type "S00F0000FFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
type "<Esc><Leader>lc"
|
||||
the following Line will be created
|
||||
S00F0000FFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
insert a new Line and type "S10F0000FFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
type "<Esc><Leader>lc"
|
||||
the following Line will be created
|
||||
S10F0000FFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
insert a new Line and type "S20F000000FFFFFFFFFFFFFFFFFFFFFF"
|
||||
type "<Esc><Leader>lc"
|
||||
the following Line will be created
|
||||
S20F000000FFFFFFFFFFFFFFFFFFFFFFFB
|
||||
insert a new Line and type "S30F00000000FFFFFFFFFFFFFFFFFFFF"
|
||||
type "<Esc><Leader>lc"
|
||||
the following Line will be created
|
||||
S30F00000000FFFFFFFFFFFFFFFFFFFFFA
|
||||
insert a new Line and type "S40F0000"
|
||||
type "<Esc><Leader>lc"
|
||||
Nothing will be created
|
||||
insert a new Line and type "S5030000"
|
||||
type "<Esc><Leader>lc"
|
||||
the following Line will be created
|
||||
S5030000FC
|
||||
insert a new Line and type "S60F0000"
|
||||
type "<Esc><Leader>lc"
|
||||
Nothing will be created
|
||||
insert a new Line and type
|
||||
type "<Esc><Leader>lc"
|
||||
the following Line will be created
|
||||
S70500000000FA
|
||||
insert a new Line and type "S804000000"
|
||||
type "<Esc><Leader>lc"
|
||||
the following Line will be created
|
||||
S804000000FB
|
||||
insert a new Line and type "S9030000"
|
||||
type "<Esc><Leader>lc"
|
||||
the following Line will be created
|
||||
S9030000FC
|
||||
|
||||
Part -----------------------------
|
||||
insert a new Line and type "S00F0000FFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
type "<Esc><Leader>pc"
|
||||
the following Line will be created
|
||||
S00F0000FFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
insert a new Line and type "S10F0000FFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
type "<Esc><Leader>pc"
|
||||
the following Line will be created
|
||||
S10F0000FFFFFFFFFFFFFFFFFFFFFFFFFC
|
||||
insert a new Line and type "S20F000000FFFFFFFFFFFFFFFFFFFFFF"
|
||||
type "<Esc><Leader>pc"
|
||||
the following Line will be created
|
||||
S20F000000FFFFFFFFFFFFFFFFFFFFFFFB
|
||||
insert a new Line and type "S30F00000000FFFFFFFFFFFFFFFFFFFF"
|
||||
type "<Esc><Leader>pc"
|
||||
the following Line will be created
|
||||
S30F00000000FFFFFFFFFFFFFFFFFFFFFA
|
||||
insert a new Line and type "S40F0000"
|
||||
type "<Esc><Leader>pc"
|
||||
Nothing will be created
|
||||
insert a new Line and type "S5030000"
|
||||
type "<Esc><Leader>pc"
|
||||
the following Line will be created
|
||||
S5030000FC
|
||||
insert a new Line and type "S60F0000"
|
||||
type "<Esc><Leader>pc"
|
||||
Nothing will be created
|
||||
insert a new Line and type "S70500000000"
|
||||
type "<Esc><Leader>pc"
|
||||
the following Line will be created
|
||||
S70500000000FA
|
||||
insert a new Line and type "S804000000"
|
||||
type "<Esc><Leader>pc"
|
||||
the following Line will be created
|
||||
S804000000FB
|
||||
insert a new Line and type "S9030000"
|
||||
type "<Esc><Leader>pc"
|
||||
the following Line will be created
|
||||
S9030000FC
|
||||
|
@ -20,7 +20,7 @@
|
||||
if &cp || exists("g:loaded_netrwPlugin")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_netrwPlugin = "v134"
|
||||
let g:loaded_netrwPlugin = "v136"
|
||||
if v:version < 702
|
||||
echohl WarningMsg | echo "***netrw*** you need vim version 7.2 for this version of netrw" | echohl None
|
||||
finish
|
||||
@ -49,8 +49,8 @@ augroup Network
|
||||
au BufReadCmd file://* exe "silent doau BufReadPre ".fnameescape(netrw#RFC2396(expand("<amatch>")))|exe 'e '.fnameescape(substitute(netrw#RFC2396(expand("<amatch>")),'file://\(.*\)','\1',""))|exe "bwipe ".fnameescape(expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(netrw#RFC2396(expand("<amatch>")))
|
||||
au BufReadCmd file://localhost/* exe "silent doau BufReadPre ".fnameescape(netrw#RFC2396(expand("<amatch>")))|exe 'e '.fnameescape(substitute(netrw#RFC2396(expand("<amatch>")),'file://localhost/\(.*\)','\1',""))|exe "bwipe ".fnameescape(substitute(expand("<amatch>"),'file://\(\k\+@\)\=','',''))|exe "silent doau BufReadPost ".fnameescape(netrw#RFC2396(expand("<amatch>")))
|
||||
endif
|
||||
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufReadPre ".fnameescape(expand("<amatch>"))|exe '2Nread '.fnameescape(expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(expand("<amatch>"))
|
||||
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileReadPre ".fnameescape(expand("<amatch>"))|exe 'Nread '.fnameescape(expand("<amatch>"))|exe "silent doau FileReadPost ".fnameescape(expand("<amatch>"))
|
||||
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(expand("<amatch>"))
|
||||
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "silent doau FileReadPost ".fnameescape(expand("<amatch>"))
|
||||
au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau BufWritePost ".fnameescape(expand("<amatch>"))
|
||||
au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau FileWritePost ".fnameescape(expand("<amatch>"))
|
||||
try
|
||||
|
@ -1,374 +0,0 @@
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" svndiff (C) 2007 Ico Doornekamp
|
||||
"
|
||||
" This program is free software; you can redistribute it and/or modify it
|
||||
" under the terms of the GNU General Public License as published by the Free
|
||||
" Software Foundation; either version 2 of the License, or (at your option)
|
||||
" any later version.
|
||||
"
|
||||
" This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
" more details.
|
||||
"
|
||||
" Introduction
|
||||
" ------------
|
||||
"
|
||||
" NOTE: This plugin is unix-only!
|
||||
"
|
||||
" An small vim 7.0 plugin for showing RCS diff information in a file while
|
||||
" editing. This plugin runs a diff between the current buffer and the original
|
||||
" file from svn or git, and shows coloured signs indicating where the buffer
|
||||
" differs from the original file from the repository. The original
|
||||
" text is not shown, only signs are used to indicate where changes were made.
|
||||
"
|
||||
" The plugin can be used for files managed with subversion or GIT. The type of
|
||||
" RCS will be detected when first issuing a svndiff command on the file.
|
||||
"
|
||||
" The following symbols and syntax highlight groups are used for the signs:
|
||||
"
|
||||
" > DiffAdd: Newly added lines. (default=blue)
|
||||
"
|
||||
" ! DiffChange: Lines which are changed from the original. (default=cyan)
|
||||
"
|
||||
" < DiffDel: Applied to the lines directly above and below a deleted block
|
||||
" (default=magenta)
|
||||
" Usage
|
||||
" -----
|
||||
"
|
||||
" The plugin defines one function: Svndiff(). This function figures out the
|
||||
" difference between the current buffer and it's svn/git original, and adds
|
||||
" the signs at the places where the buffer differs from the original file from
|
||||
" svn or git. You'll need to call this function after making changes to update
|
||||
" the highlighting.
|
||||
"
|
||||
" The function takes one argument specifying an additional action to perform:
|
||||
"
|
||||
" "prev" : jump to the previous different block
|
||||
" "next" : jump to the next different block
|
||||
" "clear" : clean up all signs
|
||||
"
|
||||
" You might want to map some keys to run the Svndiff function. For
|
||||
" example, add to your .vimrc:
|
||||
"
|
||||
" noremap <F3> :call Svndiff("prev")<CR>
|
||||
" noremap <F4> :call Svndiff("next")<CR>
|
||||
" noremap <F5> :call Svndiff("clear")<CR>
|
||||
"
|
||||
"
|
||||
" Configuration
|
||||
" -------------
|
||||
"
|
||||
" The following configuration variables are availabe:
|
||||
"
|
||||
" * g:svndiff_autoupdate
|
||||
"
|
||||
" If this variable is defined, svndiff will automatically update the signs
|
||||
" when the user stops typing for a short while, and when leaving insert
|
||||
" mode. This might slow things down on large files, so use with caution.
|
||||
" The vim variable 'updatetime' can be used to set the auto-update intervar,
|
||||
" but not that changing this variable other effects as well. (refer to the
|
||||
" vim docs for more info)
|
||||
" To use, add to your .vimrc:
|
||||
"
|
||||
" let g:svndiff_autoupdate = 1
|
||||
"
|
||||
" * g:svndiff_one_sign_delete
|
||||
"
|
||||
" Normally, two 'delete' signs are placed around the location where
|
||||
" text was deleted. When this variable is defined, only one sign is
|
||||
" placed, above the location of the deleted text.
|
||||
" To use, add to your .vimrc:
|
||||
"
|
||||
" let g:svndiff_one_sign_delete = 1
|
||||
"
|
||||
" Colors
|
||||
" ------
|
||||
"
|
||||
" Personally, I find the following colours more intuitive for diff colours:
|
||||
" red=deleted, green=added, yellow=changed. If you want to use these colours,
|
||||
" try adding the following lines to your .vimrc
|
||||
"
|
||||
" hi DiffAdd ctermfg=0 ctermbg=2 guibg='green'
|
||||
" hi DiffDelete ctermfg=0 ctermbg=1 guibg='red'
|
||||
" hi DiffChange ctermfg=0 ctermbg=3 guibg='yellow'
|
||||
"
|
||||
" Changelog
|
||||
" ---------
|
||||
"
|
||||
" 1.0 2007-04-02 Initial version
|
||||
"
|
||||
" 1.1 2007-04-02 Added goto prev/next diffblock commands
|
||||
"
|
||||
" 1.2 2007-06-14 Updated diff arguments from -u0 (obsolete) to -U0
|
||||
"
|
||||
" 2.0 2007-08-16 Changed from syntax highlighting to using signs, thanks
|
||||
" to Noah Spurrier for the idea. NOTE: the name of the
|
||||
" function changed from Svndiff_show() to Svndiff(), so
|
||||
" you might need to update your .vimrc mappings!
|
||||
"
|
||||
" 3.0 2008-02-02 Redesign with some ideas from Jan Bezdekovsky. The
|
||||
" diff is only updated when the buffer actually changes,
|
||||
" cleanup of signs is now done properly and some info
|
||||
" about each diff block is printed in the status line.
|
||||
"
|
||||
" 3.1 2008-02-04 Fixed bug that broke plugin in non-english locales, thanks
|
||||
" to Bernhard Walle for the patch
|
||||
"
|
||||
" 3.2 2008-02-27 The latest rewrite broke vim 6 compatiblity. The plugin
|
||||
" is now simply disabled for older vim versions to avoid
|
||||
" a lot of warnings when loading.
|
||||
"
|
||||
" 4.0 2008-11-24 Added GIT support. The RCS type is now detected (svn/git)
|
||||
"
|
||||
" 4.1 2008-11-25 Added CVS support.
|
||||
"
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
if v:version < 700
|
||||
finish
|
||||
endif
|
||||
|
||||
" Globals for this plugin
|
||||
|
||||
let s:sign_base = 200000 " Base for our sign id's, hoping to avoid colisions
|
||||
let s:is_active = {} " dictionary with buffer names that have svndiff active
|
||||
let s:rcs_type = {} " RCS type, will be autodetected to 'svn' or 'git'
|
||||
let s:rcs_cmd = {} " Shell command to execute to get contents of clean file from RCS
|
||||
let s:diff_signs = {} " dict with list of ids of all signs, per file
|
||||
let s:diff_blocks = {} " dict with list of ids of first line of each diff block, per file
|
||||
let s:changedtick = {} " dict with changedticks of each buffer since last invocation
|
||||
|
||||
" Commands to execute to get current file contents in various rcs systems
|
||||
|
||||
let s:rcs_cmd_svn = "svn cat "
|
||||
let s:rcs_cmd_git = "git cat-file -p HEAD:"
|
||||
let s:rcs_cmd_cvs = "cvs -q update -p "
|
||||
|
||||
"
|
||||
" Do the diff and update signs.
|
||||
"
|
||||
|
||||
function s:Svndiff_update(...)
|
||||
|
||||
let fname = bufname("%")
|
||||
|
||||
if ! exists("s:is_active[fname]")
|
||||
return 0
|
||||
end
|
||||
|
||||
" Guess RCS type for this file
|
||||
|
||||
if ! has_key(s:rcs_type, fname)
|
||||
|
||||
let info = system("LANG=C svn info " . fname)
|
||||
if match(info, "Path") != -1
|
||||
let s:rcs_type[fname] = "svn"
|
||||
let s:rcs_cmd[fname] = s:rcs_cmd_svn
|
||||
end
|
||||
|
||||
let info = system("git st " . fname)
|
||||
if v:shell_error == 0
|
||||
let s:rcs_type[fname] = "git"
|
||||
let s:rcs_cmd[fname] = s:rcs_cmd_git
|
||||
end
|
||||
|
||||
let info = system("cvs st " . fname)
|
||||
if v:shell_error == 0
|
||||
let s:rcs_type[fname] = "cvs"
|
||||
let s:rcs_cmd[fname] = s:rcs_cmd_cvs
|
||||
end
|
||||
end
|
||||
|
||||
" Could not detect RCS type, print message and exit
|
||||
|
||||
if ! has_key(s:rcs_type, fname)
|
||||
echom "Svndiff: Warning, file " . fname . " is not managed by subversion or git"
|
||||
unlet s:is_active[fname]
|
||||
return
|
||||
end
|
||||
|
||||
" Check if the changedticks changed since the last invocation of this
|
||||
" function. If nothing changed, there's no need to update the signs.
|
||||
|
||||
if exists("s:changedtick[fname]") && s:changedtick[fname] == b:changedtick
|
||||
return 1
|
||||
end
|
||||
let s:changedtick[fname] = b:changedtick
|
||||
|
||||
" The diff has changed since the last time, so we need to update the signs.
|
||||
" This is where the magic happens: pipe the current buffer contents to a
|
||||
" shell command calculating the diff in a friendly parsable format.
|
||||
|
||||
let contents = join(getbufline("%", 1, "$"), "\n")
|
||||
let diff = system("diff -U0 <(" . s:rcs_cmd[fname] . fname . ") <(cat;echo)", contents)
|
||||
|
||||
" clear the old signs
|
||||
|
||||
call s:Svndiff_clear()
|
||||
|
||||
" Parse the output of the diff command and put signs at changed, added and
|
||||
" removed lines
|
||||
|
||||
for line in split(diff, '\n')
|
||||
|
||||
let part = matchlist(line, '@@ -\([0-9]*\),*\([0-9]*\) +\([0-9]*\),*\([0-9]*\) @@')
|
||||
|
||||
if ! empty(part)
|
||||
let old_from = part[1]
|
||||
let old_count = part[2] == '' ? 1 : part[2]
|
||||
let new_from = part[3]
|
||||
let new_count = part[4] == '' ? 1 : part[4]
|
||||
|
||||
" Figure out if text was added, removed or changed.
|
||||
|
||||
if old_count == 0
|
||||
let from = new_from
|
||||
let to = new_from + new_count - 1
|
||||
let name = 'svndiff_add'
|
||||
let info = new_count . " lines added"
|
||||
elseif new_count == 0
|
||||
let from = new_from
|
||||
let to = new_from
|
||||
let name = 'svndiff_delete'
|
||||
let info = old_count . " lines deleted"
|
||||
if ! exists("g:svndiff_one_sign_delete")
|
||||
let to += 1
|
||||
endif
|
||||
else
|
||||
let from = new_from
|
||||
let to = new_from + new_count - 1
|
||||
let name = 'svndiff_change'
|
||||
let info = new_count . " lines changed"
|
||||
endif
|
||||
|
||||
let id = from + s:sign_base
|
||||
let s:diff_blocks[fname] += [{ 'id': id, 'info': info }]
|
||||
|
||||
" Add signs to mark the changed lines
|
||||
|
||||
let line = from
|
||||
while line <= to
|
||||
let id = line + s:sign_base
|
||||
exec 'sign place ' . id . ' line=' . line . ' name=' . name . ' file=' . fname
|
||||
let s:diff_signs[fname] += [id]
|
||||
let line = line + 1
|
||||
endwhile
|
||||
|
||||
endif
|
||||
endfor
|
||||
|
||||
endfunction
|
||||
|
||||
|
||||
|
||||
"
|
||||
" Remove all signs we placed earlier
|
||||
"
|
||||
|
||||
function s:Svndiff_clear(...)
|
||||
let fname = bufname("%")
|
||||
if exists("s:diff_signs[fname]")
|
||||
for id in s:diff_signs[fname]
|
||||
exec 'sign unplace ' . id . ' file=' . fname
|
||||
endfor
|
||||
end
|
||||
let s:diff_blocks[fname] = []
|
||||
let s:diff_signs[fname] = []
|
||||
endfunction
|
||||
|
||||
|
||||
"
|
||||
" Jump to previous diff block sign above the current line
|
||||
"
|
||||
|
||||
function s:Svndiff_prev(...)
|
||||
let fname = bufname("%")
|
||||
let diff_blocks_reversed = reverse(copy(s:diff_blocks[fname]))
|
||||
for block in diff_blocks_reversed
|
||||
let line = block.id - s:sign_base
|
||||
if line < line(".")
|
||||
call setpos(".", [ 0, line, 1, 0 ])
|
||||
echom 'svndiff: ' . block.info
|
||||
return
|
||||
endif
|
||||
endfor
|
||||
echom 'svndiff: no more diff blocks above cursor'
|
||||
endfunction
|
||||
|
||||
|
||||
"
|
||||
" Jump to next diff block sign below the current line
|
||||
"
|
||||
|
||||
function s:Svndiff_next(...)
|
||||
let fname = bufname("%")
|
||||
for block in s:diff_blocks[fname]
|
||||
let line = block.id - s:sign_base
|
||||
if line > line(".")
|
||||
call setpos(".", [ 0, line, 1, 0 ])
|
||||
echom 'svndiff: ' . block.info
|
||||
return
|
||||
endif
|
||||
endfor
|
||||
echom 'svndiff: no more diff blocks below cursor'
|
||||
endfunction
|
||||
|
||||
|
||||
"
|
||||
" Wrapper function: Takes one argument, which is the action to perform:
|
||||
" {next|prev|clear}
|
||||
"
|
||||
|
||||
function Svndiff(...)
|
||||
|
||||
let cmd = exists("a:1") ? a:1 : ''
|
||||
let fname = bufname("%")
|
||||
if fname == ""
|
||||
echom "Buffer has no file name, can not do a svn diff"
|
||||
return
|
||||
endif
|
||||
|
||||
if cmd == 'clear'
|
||||
let s:changedtick[fname] = 0
|
||||
if exists("s:is_active[fname]")
|
||||
unlet s:is_active[fname]
|
||||
endif
|
||||
call s:Svndiff_clear()
|
||||
end
|
||||
|
||||
if cmd == 'prev'
|
||||
let s:is_active[fname] = 1
|
||||
let ok = s:Svndiff_update()
|
||||
if ok
|
||||
call s:Svndiff_prev()
|
||||
endif
|
||||
endif
|
||||
|
||||
if cmd == 'next'
|
||||
let s:is_active[fname] = 1
|
||||
let ok = s:Svndiff_update()
|
||||
if ok
|
||||
call s:Svndiff_next()
|
||||
endif
|
||||
endif
|
||||
|
||||
endfunction
|
||||
|
||||
|
||||
" Define sign characters and colors
|
||||
|
||||
sign define svndiff_add text=> texthl=diffAdd
|
||||
sign define svndiff_delete text=< texthl=diffDelete
|
||||
sign define svndiff_change text=! texthl=diffChange
|
||||
|
||||
|
||||
" Define autocmds if autoupdate is enabled
|
||||
|
||||
if exists("g:svndiff_autoupdate")
|
||||
autocmd CursorHold,CursorHoldI * call s:Svndiff_update()
|
||||
autocmd InsertLeave * call s:Svndiff_update()
|
||||
endif
|
||||
|
||||
" vi: ts=2 sw=2
|
||||
|
@ -1,9 +1,9 @@
|
||||
" tComment.vim -- An easily extensible & universal comment plugin
|
||||
" @Author: Thomas Link (micathom AT gmail com)
|
||||
" @Author: Tom Link (micathom AT gmail com)
|
||||
" @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
||||
" @Created: 27-Dez-2004.
|
||||
" @Last Change: 2008-05-15.
|
||||
" @Revision: 1.9.664
|
||||
" @Last Change: 2009-08-07.
|
||||
" @Revision: 1.9.671
|
||||
"
|
||||
" GetLatestVimScripts: 1173 1 tComment.vim
|
||||
|
||||
@ -129,6 +129,7 @@ call TCommentDefineType('c_inline', g:tcommentInlineC )
|
||||
call TCommentDefineType('c_block', g:tcommentBlockC )
|
||||
call TCommentDefineType('cfg', '# %s' )
|
||||
call TCommentDefineType('conf', '# %s' )
|
||||
call TCommentDefineType('crontab', '# %s' )
|
||||
call TCommentDefineType('desktop', '# %s' )
|
||||
call TCommentDefineType('docbk', '<!-- %s -->' )
|
||||
call TCommentDefineType('docbk_inline', g:tcommentInlineXML)
|
||||
@ -158,7 +159,9 @@ call TCommentDefineType('java', '/* %s */' )
|
||||
call TCommentDefineType('java_inline', g:tcommentInlineC )
|
||||
call TCommentDefineType('java_block', g:tcommentBlockC )
|
||||
call TCommentDefineType('java_doc_block', g:tcommentBlockC2 )
|
||||
call TCommentDefineType('jproperties', '# %s' )
|
||||
call TCommentDefineType('lisp', '; %s' )
|
||||
call TCommentDefineType('lynx', '# %s' )
|
||||
call TCommentDefineType('m4', 'dnl %s' )
|
||||
call TCommentDefineType('mail', '> %s' )
|
||||
call TCommentDefineType('msidl', '// %s' )
|
||||
@ -376,3 +379,7 @@ new: >)
|
||||
1.9
|
||||
- Fix left offset for inline comments (via operator binding)
|
||||
|
||||
1.10
|
||||
- tcomment#Operator defines w:tcommentPos if invoked repeatedly
|
||||
- s:GuessFileType: use len(getline()) instead of col()
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
" vimballPlugin : construct a file containing both paths and files
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Copyright: (c) 2004-2007 by Charles E. Campbell, Jr.
|
||||
" Copyright: (c) 2004-2009 by Charles E. Campbell, Jr.
|
||||
" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
|
||||
" (see |copyright|) except use "Vimball" instead of "Vim".
|
||||
" No warranty, express or implied.
|
||||
@ -16,7 +16,7 @@
|
||||
if &cp || exists("g:loaded_vimballPlugin")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_vimballPlugin = "v26"
|
||||
let g:loaded_vimballPlugin = "v30"
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
@ -26,8 +26,8 @@ com! -ra -complete=file -na=+ -bang MkVimball call vimball#MkVimball(<line1>,<
|
||||
com! -na=? -complete=dir UseVimball call vimball#Vimball(1,<f-args>)
|
||||
com! -na=0 VimballList call vimball#Vimball(0)
|
||||
com! -na=* -complete=dir RmVimball call vimball#SaveSettings()|call vimball#RmVimball(<f-args>)|call vimball#RestoreSettings()
|
||||
au BufEnter *.vba.gz,*.vba.bz2,*.vba.zip call vimball#Decompress(expand("<amatch>"))
|
||||
au BufEnter *.vba setlocal ff=unix noma bt=nofile fmr=[[[,]]] fdm=marker|call vimball#ShowMesg(0,"Source this file to extract it! (:so %)")
|
||||
au SourceCmd *.vba.gz,*.vba.bz2,*.vba.zip call vimball#Decompress(expand("<amatch>"))|call vimball#Vimball(1)
|
||||
au BufEnter *.vba,*.vba.gz,*.vba.bz2,*.vba.zip setlocal bt=nofile fmr=[[[,]]] fdm=marker|if &ff != 'unix'| setlocal ff=unix|endif|call vimball#ShowMesg(0,"Source this file to extract it! (:so %)")
|
||||
|
||||
" =====================================================================
|
||||
" Restoration And Modelines: {{{1
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Language : Netrw Remote-Directory Listing Syntax
|
||||
" Maintainer : Charles E. Campbell, Jr.
|
||||
" Last change: Aug 12, 2008
|
||||
" Version : 14
|
||||
" Last change: Jan 14, 2009
|
||||
" Version : 16
|
||||
" ---------------------------------------------------------------------
|
||||
|
||||
" Syntax Clearing: {{{1
|
||||
@ -16,13 +16,14 @@ endif
|
||||
syn cluster NetrwGroup contains=netrwHide,netrwSortBy,netrwSortSeq,netrwQuickHelp,netrwVersion,netrwCopyTgt
|
||||
syn cluster NetrwTreeGroup contains=netrwDir,netrwSymLink,netrwExe
|
||||
|
||||
syn match netrwSpecial "\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)" contains=netrwClassify
|
||||
syn match netrwDir "\.\{1,2}/" contains=netrwClassify
|
||||
syn match netrwDir "\%(\S\+ \)*\S\+/" contains=netrwClassify
|
||||
syn match netrwSizeDate "\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s" contains=netrwDateSep skipwhite nextgroup=netrwTime
|
||||
syn match netrwSymLink "\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)" contains=netrwClassify
|
||||
syn match netrwExe "\%(\S\+ \)*\S\+\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify
|
||||
syn match netrwTreeBar "^\%([-+|] \)*" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
|
||||
syn match netrwPlain "\(\S\+ \)*\S\+" contains=@NoSpell
|
||||
syn match netrwSpecial "\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
|
||||
syn match netrwDir "\.\{1,2}/" contains=netrwClassify,@NoSpell
|
||||
syn match netrwDir "\%(\S\+ \)*\S\+/" contains=netrwClassify,@NoSpell
|
||||
syn match netrwSizeDate "\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s" skipwhite contains=netrwDateSep,@NoSpell nextgroup=netrwTime
|
||||
syn match netrwSymLink "\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
|
||||
syn match netrwExe "\%(\S\+ \)*\S\+\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
|
||||
syn match netrwTreeBar "^\%([-+|] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
|
||||
syn match netrwTreeBarSpace " " contained
|
||||
|
||||
syn match netrwClassify "[*=|@/]\ze\%(\s\{2,}\|$\)" contained
|
||||
@ -30,37 +31,40 @@ syn match netrwDateSep "/" contained
|
||||
syn match netrwTime "\d\{1,2}:\d\{2}:\d\{2}" contained contains=netrwTimeSep
|
||||
syn match netrwTimeSep ":"
|
||||
|
||||
syn match netrwComment '".*\%(\t\|$\)' contains=@NetrwGroup
|
||||
syn match netrwHide '^"\s*\(Hid\|Show\)ing:' skipwhite nextgroup=netrwHidePat
|
||||
syn match netrwComment '".*\%(\t\|$\)' contains=@NetrwGroup,@NoSpell
|
||||
syn match netrwHide '^"\s*\(Hid\|Show\)ing:' skipwhite contains=@NoSpell nextgroup=netrwHidePat
|
||||
syn match netrwSlash "/" contained
|
||||
syn match netrwHidePat "[^,]\+" contained skipwhite nextgroup=netrwHideSep
|
||||
syn match netrwHidePat "[^,]\+" contained skipwhite contains=@NoSpell nextgroup=netrwHideSep
|
||||
syn match netrwHideSep "," contained skipwhite nextgroup=netrwHidePat
|
||||
syn match netrwSortBy "Sorted by" contained transparent skipwhite nextgroup=netrwList
|
||||
syn match netrwSortSeq "Sort sequence:" contained transparent skipwhite nextgroup=netrwList
|
||||
syn match netrwCopyTgt "Copy/Move Tgt:" contained transparent skipwhite nextgroup=netrwList
|
||||
syn match netrwList ".*$" contained contains=netrwComma
|
||||
syn match netrwList ".*$" contained contains=netrwComma,@NoSpell
|
||||
syn match netrwComma "," contained
|
||||
syn region netrwQuickHelp matchgroup=Comment start="Quick Help:\s\+" end="$" contains=netrwHelpCmd keepend contained
|
||||
syn match netrwHelpCmd "\S\ze:" contained skipwhite nextgroup=netrwCmdSep
|
||||
syn region netrwQuickHelp matchgroup=Comment start="Quick Help:\s\+" end="$" contains=netrwHelpCmd,@NoSpell keepend contained
|
||||
syn match netrwHelpCmd "\S\ze:" contained skipwhite contains=@NoSpell nextgroup=netrwCmdSep
|
||||
syn match netrwCmdSep ":" contained nextgroup=netrwCmdNote
|
||||
syn match netrwCmdNote ".\{-}\ze " contained
|
||||
syn match netrwVersion "(netrw.*)" contained
|
||||
syn match netrwCmdNote ".\{-}\ze " contained contains=@NoSpell
|
||||
syn match netrwVersion "(netrw.*)" contained contains=@NoSpell
|
||||
|
||||
" -----------------------------
|
||||
" Special filetype highlighting {{{1
|
||||
" -----------------------------
|
||||
if exists("g:netrw_special_syntax") && netrw_special_syntax
|
||||
syn match netrwBak "\(\S\+ \)*\S\+\.bak\>" contains=netrwTreeBar
|
||||
syn match netrwCompress "\(\S\+ \)*\S\+\.\%(gz\|bz2\|Z\|zip\)\>" contains=netrwTreeBar
|
||||
syn match netrwData "\(\S\+ \)*\S\+\.dat\>" contains=netrwTreeBar
|
||||
syn match netrwHdr "\(\S\+ \)*\S\+\.h\>" contains=netrwTreeBar
|
||||
syn match netrwLib "\(\S\+ \)*\S*\.\%(a\|so\|lib\|dll\)\>" contains=netrwTreeBar
|
||||
syn match netrwMakeFile "\<[mM]akefile\>\|\(\S\+ \)*\S\+\.mak\>" contains=netrwTreeBar
|
||||
syn match netrwObj "\(\S\+ \)*\S*\.\%(o\|obj\)\>" contains=netrwTreeBar
|
||||
syn match netrwTags "\<tags\>" contains=netrwTreeBar
|
||||
syn match netrwTags "\<\(ANmenu\|ANtags\)\>" contains=netrwTreeBar
|
||||
syn match netrwTilde "\(\S\+ \)*\S\+\~\>" contains=netrwTreeBar
|
||||
syn match netrwTmp "\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>" contains=netrwTreeBar
|
||||
syn match netrwBak "\(\S\+ \)*\S\+\.bak\>" contains=netrwTreeBar,@NoSpell
|
||||
syn match netrwCompress "\(\S\+ \)*\S\+\.\%(gz\|bz2\|Z\|zip\)\>" contains=netrwTreeBar,@NoSpell
|
||||
if has("unix")
|
||||
syn match netrwCoreDump "\<core\%(\.\d\+\)\=\>" contains=netrwTreeBar,@NoSpell
|
||||
endif
|
||||
syn match netrwData "\(\S\+ \)*\S\+\.dat\>" contains=netrwTreeBar,@NoSpell
|
||||
syn match netrwHdr "\(\S\+ \)*\S\+\.h\>" contains=netrwTreeBar,@NoSpell
|
||||
syn match netrwLib "\(\S\+ \)*\S*\.\%(a\|so\|lib\|dll\)\>" contains=netrwTreeBar,@NoSpell
|
||||
syn match netrwMakeFile "\<[mM]akefile\>\|\(\S\+ \)*\S\+\.mak\>" contains=netrwTreeBar,@NoSpell
|
||||
syn match netrwObj "\(\S\+ \)*\S*\.\%(o\|obj\)\>" contains=netrwTreeBar,@NoSpell
|
||||
syn match netrwTags "\<tags\>" contains=netrwTreeBar,@NoSpell
|
||||
syn match netrwTags "\<\(ANmenu\|ANtags\)\>" contains=netrwTreeBar,@NoSpell
|
||||
syn match netrwTilde "\(\S\+ \)*\S\+\~\>" contains=netrwTreeBar,@NoSpell
|
||||
syn match netrwTmp "\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>" contains=netrwTreeBar,@NoSpell
|
||||
endif
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
@ -89,6 +93,7 @@ if !exists("did_drchip_netrwlist_syntax")
|
||||
" special syntax highlighting (see :he g:netrw_special_syntax)
|
||||
hi default link netrwBak NonText
|
||||
hi default link netrwCompress Folded
|
||||
hi default link netrwCoreDump WarningMsg
|
||||
hi default link netrwData DiffChange
|
||||
hi default link netrwLib DiffChange
|
||||
hi default link netrwMakefile DiffChange
|
||||
|
Loading…
x
Reference in New Issue
Block a user