mirror of
https://github.com/Phantop/dotfiles
synced 2025-11-26 06:06:40 +00:00
Switch from pathogen to native management
This commit is contained in:
parent
65e812ac5b
commit
6bb787c4b0
|
|
@ -1,532 +0,0 @@
|
||||||
"
|
|
||||||
" Script:
|
|
||||||
"
|
|
||||||
" Super Shell indentation
|
|
||||||
"
|
|
||||||
" Version: 1.6
|
|
||||||
"
|
|
||||||
" Description:
|
|
||||||
"
|
|
||||||
" This is a shell indentation script that calculates the indent level based
|
|
||||||
" on begin/end syntax pairs, as opposed to complex conditionals and pattern
|
|
||||||
" matching.
|
|
||||||
"
|
|
||||||
" This script also introduces indentation for:
|
|
||||||
"
|
|
||||||
" case blocks
|
|
||||||
" paren blocks
|
|
||||||
" '[[' blocks
|
|
||||||
" line continuation
|
|
||||||
"
|
|
||||||
" Installation:
|
|
||||||
"
|
|
||||||
" Place this file in your home directory under ~/.vim/indent/, or replace
|
|
||||||
" the system indent/sh.vim file to affect all users.
|
|
||||||
"
|
|
||||||
" Maintainer: Tye Z. <zdro@yahoo.com>
|
|
||||||
"
|
|
||||||
" Customization:
|
|
||||||
"
|
|
||||||
" The only thing that can really be customized at this point is whether or
|
|
||||||
" not a line is echoed explaining the indentation result. To turn this on,
|
|
||||||
" set the following variable like so:
|
|
||||||
"
|
|
||||||
" let b:super_sh_indent_echo = 1
|
|
||||||
"
|
|
||||||
"
|
|
||||||
" History:
|
|
||||||
"
|
|
||||||
" TODO:
|
|
||||||
" - Differentiate between '\' and &&/||/| line continuations
|
|
||||||
"
|
|
||||||
" Version 1.6:
|
|
||||||
" - Performance improvements
|
|
||||||
"
|
|
||||||
" Version 1.5:
|
|
||||||
" - Fixed indentation of first line in a file
|
|
||||||
" - Fixed ignoring of certain keywords in comments
|
|
||||||
" - Tested on 6.2
|
|
||||||
"
|
|
||||||
" Version 1.4:
|
|
||||||
" - Fixed line continuation w/in comments and strings
|
|
||||||
" - Fixed an infinite loop
|
|
||||||
"
|
|
||||||
" Version 1.3:
|
|
||||||
" - fixed elif (again)
|
|
||||||
"
|
|
||||||
" Version 1.2:
|
|
||||||
" - Ignore open/close pairs that are in strings
|
|
||||||
" - Fixed super_sh_indent_echo
|
|
||||||
" - Fixed else/elif
|
|
||||||
"
|
|
||||||
"
|
|
||||||
|
|
||||||
let SuperShIndent_Dbg = 0
|
|
||||||
|
|
||||||
if version < 602
|
|
||||||
echoerr "Super Shell Indentation only supported for Vim 6.2 and up."
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
|
||||||
if exists("b:did_indent") && ! SuperShIndent_Dbg
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
let b:did_indent = 1
|
|
||||||
|
|
||||||
setlocal indentexpr=SuperShIndent()
|
|
||||||
setlocal indentkeys+==then,=do,=else,=elif,=esac,=fi,=fin,=fil,=done
|
|
||||||
setlocal indentkeys-=:,0#
|
|
||||||
|
|
||||||
" Only define the function once.
|
|
||||||
if exists("*SuperShIndent") && ! SuperShIndent_Dbg
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
setlocal indentexpr=SuperShIndent()
|
|
||||||
|
|
||||||
if ! exists("b:super_sh_indent_echo")
|
|
||||||
let b:super_sh_indent_echo = 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
function! SuperShIndent()
|
|
||||||
|
|
||||||
let adj = 0 " Adjustment
|
|
||||||
|
|
||||||
let g:lastindent = ""
|
|
||||||
let currline = getline(v:lnum)
|
|
||||||
let lastline = ''
|
|
||||||
let prevline = ''
|
|
||||||
|
|
||||||
" Find non-blank lines above the current line.
|
|
||||||
let lastlnum = prevnonblank(v:lnum - 1)
|
|
||||||
let prevlnum = prevnonblank(lastlnum - 1)
|
|
||||||
if lastlnum != 0
|
|
||||||
let lastline = getline(lastlnum)
|
|
||||||
endif
|
|
||||||
if prevlnum != 0
|
|
||||||
let prevline = getline(prevlnum)
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Start from the first char on the line. Vim doesn't seem to consistently
|
|
||||||
" place the cursor there before calling the indent routines.
|
|
||||||
call cursor(0, 1)
|
|
||||||
call search('\S')
|
|
||||||
|
|
||||||
"
|
|
||||||
" Call indentation adjustment functions.
|
|
||||||
"
|
|
||||||
let adj = adj + GetPairIndent(currline, lastline, lastlnum, '(', '', ')')
|
|
||||||
let adj = adj + GetPairIndent(currline, lastline, lastlnum, '\[\[', '', ']]')
|
|
||||||
let adj = adj + GetPairIndent(currline, lastline, lastlnum,
|
|
||||||
\ '{', '', '}')
|
|
||||||
let adj = adj + GetPairIndent(currline, lastline, lastlnum,
|
|
||||||
\ '\<do\>', '', '\<done\>')
|
|
||||||
let adj = adj + GetPairIndent(currline, lastline, lastlnum,
|
|
||||||
\ '\<case\>', '', '\<esac\>')
|
|
||||||
let adj = adj + GetPairIndent(currline, lastline, lastlnum,
|
|
||||||
\ '\<then\>', '\<else\>', '\(\<elif\>\|\<fi\>\)')
|
|
||||||
|
|
||||||
let ContRE = '\(|\s*\|&&\s*\)$'
|
|
||||||
let adj = adj + GetContIndent(ContRE, currline, lastline, lastlnum, prevlnum)
|
|
||||||
let adj = adj + GetSimpleContIndent(lastline, lastlnum)
|
|
||||||
|
|
||||||
let adj = adj + GetCaseIndent(currline, lastline, lastlnum)
|
|
||||||
|
|
||||||
" Get default indent and add our adjustment
|
|
||||||
let prevind = indent(lastlnum)
|
|
||||||
let prevind = (prevind == -1 ? 0 : prevind)
|
|
||||||
|
|
||||||
if b:super_sh_indent_echo
|
|
||||||
echom g:lastindent
|
|
||||||
endif
|
|
||||||
|
|
||||||
return adj + prevind
|
|
||||||
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"
|
|
||||||
" Get additional indentation based on blocks of code, as defined by the Head
|
|
||||||
" and Tail patterns.
|
|
||||||
"
|
|
||||||
function! GetPairIndent(CurrLine, LastLine, LastLNum, Head, Mid, Tail)
|
|
||||||
|
|
||||||
let levels = 0
|
|
||||||
let adj = 0
|
|
||||||
let origcol = col(".")
|
|
||||||
let origline = line(".")
|
|
||||||
|
|
||||||
"
|
|
||||||
" How many levels were started on the last line? Search backwards for
|
|
||||||
" pair starters until we're not on the last nonblank. If the last line
|
|
||||||
" doesn't contain the pair-starter, then don't bother with searchpair();
|
|
||||||
" it's a performance bottleneck because (I think) it will always search
|
|
||||||
" all the way back until it finds a match or can't search any more.
|
|
||||||
"
|
|
||||||
if a:LastLine =~ a:Head
|
|
||||||
while 1
|
|
||||||
let pairstart = searchpair(a:Head, a:Mid, a:Tail, 'Wb')
|
|
||||||
if pairstart == 0 || pairstart != a:LastLNum
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
let syn = synIDattr(synID(line("."), col("."), 1), "name")
|
|
||||||
if syn =~ 'shComment\|sh\(Single\|Double\)Quote'
|
|
||||||
continue
|
|
||||||
endif
|
|
||||||
let levels = levels + 1
|
|
||||||
endwhile
|
|
||||||
endif
|
|
||||||
|
|
||||||
" If we aren't within a level that was started on the last line, then
|
|
||||||
" check how many levels were closed on the last line.
|
|
||||||
if levels == 0
|
|
||||||
|
|
||||||
" Move to the beginning of the last line
|
|
||||||
call cursor(a:LastLNum,0)
|
|
||||||
normal ^
|
|
||||||
|
|
||||||
" If the line starts with an open, The close shouldn't be counted as
|
|
||||||
" such, because we're looking for closes that didn't start on this
|
|
||||||
" line.
|
|
||||||
if a:LastLine =~ '^\s*' . a:Head ||
|
|
||||||
\ (a:Mid != '' && a:LastLine =~ '^\s*' . a:Mid)
|
|
||||||
let levels = 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
" If we're calculating close parens and this is a new case condition,
|
|
||||||
" then the next close is the end of the conditional and we don't want
|
|
||||||
" to count it.
|
|
||||||
if a:Tail == ')'
|
|
||||||
if "shCaseEsac" == synIDattr(synID(line("."), col("."), 1), "name")
|
|
||||||
call searchpair(a:Head, a:Mid, a:Tail, 'W')
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
"
|
|
||||||
" Count the closes on the current line (i.e. LastLNum), stopping once
|
|
||||||
" we've hit comments. If the line doesn't even contain the end of the
|
|
||||||
" pair, don't bother with searchpair() (same aforementioned
|
|
||||||
" rationale).
|
|
||||||
"
|
|
||||||
if a:LastLine =~ a:Tail
|
|
||||||
while 1
|
|
||||||
let pairend = searchpair(a:Head, a:Mid, a:Tail, 'W')
|
|
||||||
if pairend == 0 || a:LastLNum != pairend
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
let syn = synIDattr(synID(line("."), col("."), 1), "name")
|
|
||||||
if syn =~ 'shComment\|sh\(Single\|Double\)Quote'
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
let levels = levels - 1
|
|
||||||
endwhile
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
" If the current line starts with a close, count it. It won't effect the
|
|
||||||
" indentation of the next line because it is the first thing on the line
|
|
||||||
" and won't be counted as a "close on the last line".
|
|
||||||
if a:CurrLine =~ '^\s*' . a:Tail
|
|
||||||
\ || (a:Mid != '' && a:CurrLine =~ '^\s*' . a:Mid)
|
|
||||||
let levels = levels - 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Restore original cursor location
|
|
||||||
call cursor(origline, origcol)
|
|
||||||
|
|
||||||
let adj = &sw*levels
|
|
||||||
if adj != 0 && b:super_sh_indent_echo
|
|
||||||
let g:lastindent = g:lastindent .
|
|
||||||
\ "GetPairIndent(" . a:Head . "):" . adj . " "
|
|
||||||
endif
|
|
||||||
|
|
||||||
return adj
|
|
||||||
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
"
|
|
||||||
" Get the proper indentation when inside a case ... esac block. New case
|
|
||||||
" conditionals are lined up with the initial "case" and their statements are
|
|
||||||
" indented.
|
|
||||||
"
|
|
||||||
function! GetCaseIndent(CurrLine, LastLine, LastLNum)
|
|
||||||
|
|
||||||
let adj = 0
|
|
||||||
let syn = ""
|
|
||||||
let lastsyn = ""
|
|
||||||
|
|
||||||
" Get the syntax attribute for the previous two lines, unless they are
|
|
||||||
" 'esac' lines. 'esac' is a special case, because it registers as
|
|
||||||
" 'shCaseEsac', but indentation is decreased by stock indentation.
|
|
||||||
if a:CurrLine !~ '^\s*esac'
|
|
||||||
let syn = synIDattr(synID(line("."), 1, 1), "name")
|
|
||||||
endif
|
|
||||||
if a:LastLine !~ '^\s*esac'
|
|
||||||
let lastsyn = synIDattr(synID(a:LastLNum, 1, 1), "name")
|
|
||||||
endif
|
|
||||||
|
|
||||||
" If this is a new case and the last line was body of the previous case,
|
|
||||||
" decrease the indent. Otherwise, if the last line was a new case and
|
|
||||||
" this line is its body, increase the indent.
|
|
||||||
if syn == "shCaseEsac" && lastsyn != 'shCaseEsac'
|
|
||||||
let adj = adj - &sw
|
|
||||||
elseif lastsyn == 'shCaseEsac' && syn != 'shCaseEsac'
|
|
||||||
let adj = adj + &sw
|
|
||||||
endif
|
|
||||||
|
|
||||||
"
|
|
||||||
" Return the result
|
|
||||||
"
|
|
||||||
if adj != 0 && b:super_sh_indent_echo
|
|
||||||
let g:lastindent = g:lastindent . "GetCaseIndent:" . adj . " "
|
|
||||||
endif
|
|
||||||
return adj
|
|
||||||
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! GetContIndent(Pattern, CurrLine, LastLine, LastLNum, PrevLNum)
|
|
||||||
|
|
||||||
let adj = 0
|
|
||||||
let origcol = col(".")
|
|
||||||
let origline = line(".")
|
|
||||||
let lastcont = 0
|
|
||||||
let prevcont = 0
|
|
||||||
|
|
||||||
" Get the last matching line number. If the match occurs w/in a comment
|
|
||||||
" or string, then it's a non-match.
|
|
||||||
let lastmatchlnum = search(a:Pattern, 'Wb')
|
|
||||||
let syn = synIDattr(synID(line("."), col("."), 1), "name")
|
|
||||||
if syn =~ 'shComment\|sh\(Single\|Double\)Quote'
|
|
||||||
let lastmatchlnum = 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Get the previous matching line number. If the match occurs w/in a
|
|
||||||
" comment or string, then it's a non-match.
|
|
||||||
let prevmatchlnum = search(a:Pattern, 'Wb')
|
|
||||||
let syn = synIDattr(synID(line("."), col("."), 1), "name")
|
|
||||||
if syn =~ 'shComment\|sh\(Single\|Double\)Quote'
|
|
||||||
let prevmatchlnum = 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Figure out the last and previous continuation status
|
|
||||||
if lastmatchlnum && lastmatchlnum == a:LastLNum
|
|
||||||
let lastcont = 1
|
|
||||||
endif
|
|
||||||
if ( lastmatchlnum && lastmatchlnum == a:PrevLNum )
|
|
||||||
\ || ( prevmatchlnum && prevmatchlnum == a:PrevLNum )
|
|
||||||
let prevcont = 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
"echom "lastcont: " . lastcont .
|
|
||||||
" \ ", prevcont: " . prevcont .
|
|
||||||
" \ ", lastmatchlnum: " . lastmatchlnum .
|
|
||||||
" \ ", prevmatchlnum: " . prevmatchlnum .
|
|
||||||
" \ ", lastlnum: " . a:LastLNum .
|
|
||||||
" \ ", PrevLNum: " . a:PrevLNum
|
|
||||||
|
|
||||||
if lastcont && !prevcont && a:CurrLine !~ '^\s*{'
|
|
||||||
let adj = adj + &sw
|
|
||||||
elseif !lastcont && prevcont && a:LastLine !~ '^\s*{'
|
|
||||||
let adj = adj - &sw
|
|
||||||
endif
|
|
||||||
|
|
||||||
call cursor(origline, origcol)
|
|
||||||
|
|
||||||
if adj != 0 && b:super_sh_indent_echo
|
|
||||||
let g:lastindent = g:lastindent .
|
|
||||||
\ "GetContIndent('" . a:Pattern . "'):" . adj . " "
|
|
||||||
endif
|
|
||||||
return adj
|
|
||||||
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"
|
|
||||||
" The '\' line continuation should only effect the following line, as opposed
|
|
||||||
" to the next non-blank line.
|
|
||||||
"
|
|
||||||
function! GetSimpleContIndent(LastLine, LastLNum)
|
|
||||||
|
|
||||||
let adj = 0
|
|
||||||
let currcol = col(".")
|
|
||||||
let currline = line(".")
|
|
||||||
let pcont = 0
|
|
||||||
let p2cont = 0
|
|
||||||
let pndendcont = 0
|
|
||||||
let pnbcont = 0
|
|
||||||
let ppnbcont = 0
|
|
||||||
|
|
||||||
"
|
|
||||||
" If the last non-blank is the immediatly previous line, then we'll look
|
|
||||||
" at it and its previous. Otherwise, we'll see if the prev-non-blank was
|
|
||||||
" the end of a continuation.
|
|
||||||
"
|
|
||||||
if a:LastLNum == currline - 1
|
|
||||||
" Preceding line
|
|
||||||
let pline = getline(currline-1)
|
|
||||||
if pline =~ '\\$'
|
|
||||||
let pcont = 1
|
|
||||||
let syn = synIDattr(synID(currline-1, strlen(pline), 1), "name")
|
|
||||||
if syn =~ 'shComment\|sh\(Single\|Double\)Quote'
|
|
||||||
let pcont = 0
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
" 2nd Preceding line
|
|
||||||
let p2line = getline(currline-2)
|
|
||||||
if p2line =~ '\\$'
|
|
||||||
let p2cont = 1
|
|
||||||
let syn = synIDattr(synID(currline-2, strlen(p2line), 1), "name")
|
|
||||||
if syn =~ 'shComment\|sh\(Single\|Double\)Quote'
|
|
||||||
let p2cont = 0
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if pcont && !p2cont
|
|
||||||
let adj = adj + &sw
|
|
||||||
elseif !pcont && p2cont
|
|
||||||
let adj = adj - &sw
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
if a:LastLine =~ '\\$'
|
|
||||||
let pnb = getline(a:LastLNum)
|
|
||||||
if pnb =~ '\\$'
|
|
||||||
let syn = synIDattr(synID(a:LastLNum, strlen(pnb), 1), "name")
|
|
||||||
if syn !~ 'shComment\|sh\(Single\|Double\)Quote'
|
|
||||||
let pnbcont = 1
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
if ! pnbcont
|
|
||||||
let ppnb = getline(a:LastLNum-1)
|
|
||||||
if ppnb =~ '\\$'
|
|
||||||
let syn = synIDattr(synID(a:LastLNum-1, strlen(ppnb), 1), "name")
|
|
||||||
if syn !~ 'shComment\|sh\(Single\|Double\)Quote'
|
|
||||||
let ppnbcont = 1
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if ! pnbcont && ppnbcont
|
|
||||||
let adj = adj - &sw
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if adj != 0 && b:super_sh_indent_echo
|
|
||||||
let g:lastindent = g:lastindent .
|
|
||||||
\ "GetSimpleContIndent():" . adj . " "
|
|
||||||
endif
|
|
||||||
return adj
|
|
||||||
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
" Try to do things without using searchpair?
|
|
||||||
"
|
|
||||||
|
|
||||||
|
|
||||||
function! BalancedCount(String, Open, Close)
|
|
||||||
|
|
||||||
let trimmed = substitute(a:String, '[^\]#.*$', '', '')
|
|
||||||
echo trimmed
|
|
||||||
|
|
||||||
" This won't really work when a string traverses lines...
|
|
||||||
let trimmed = substitute(trimmed, '\([^\\]\@<="\(\\"\|[^"]\)*"\)', '', 'g')
|
|
||||||
|
|
||||||
echo trimmed
|
|
||||||
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! TstBC()
|
|
||||||
call BalancedCount(' foo("{(()((\"""") {}; { # bar', "{", "}")
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! GetPairIndent(CurrLine, LastLine, LastLNum, Head, Mid, Tail)
|
|
||||||
|
|
||||||
let levels = 0
|
|
||||||
let adj = 0
|
|
||||||
let origcol = col(".")
|
|
||||||
let origline = line(".")
|
|
||||||
|
|
||||||
" How many levels were started on the last line? Search backwards for
|
|
||||||
" pair starters until we're not on the last nonblank.
|
|
||||||
if a:LastLine =~ a:Head
|
|
||||||
while 1
|
|
||||||
let pairstart = searchpair(a:Head, a:Mid, a:Tail, 'Wb')
|
|
||||||
if pairstart == 0 || pairstart != a:LastLNum
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
let syn = synIDattr(synID(line("."), col("."), 1), "name")
|
|
||||||
if syn =~ 'shComment\|sh\(Single\|Double\)Quote'
|
|
||||||
continue
|
|
||||||
endif
|
|
||||||
let levels = levels + 1
|
|
||||||
endwhile
|
|
||||||
endif
|
|
||||||
|
|
||||||
" If we aren't within a level that was started on the last line, then
|
|
||||||
" check how many levels were closed on the last line.
|
|
||||||
if levels == 0
|
|
||||||
|
|
||||||
" Move to the beginning of the last line
|
|
||||||
call cursor(a:LastLNum,0)
|
|
||||||
normal ^
|
|
||||||
|
|
||||||
" If the line starts with an open, The close shouldn't be counted as
|
|
||||||
" such, because we're looking for closes that didn't start on this
|
|
||||||
" line.
|
|
||||||
if a:LastLine =~ '^\s*' . a:Head ||
|
|
||||||
\ (a:Mid != '' && a:LastLine =~ '^\s*' . a:Mid)
|
|
||||||
let levels = 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
" If we're calculating close parens and this is a new case condition,
|
|
||||||
" then the next close is the end of the conditional and we don't want
|
|
||||||
" to count it.
|
|
||||||
if a:Tail == ')'
|
|
||||||
if "shCaseEsac" == synIDattr(synID(line("."), col("."), 1), "name")
|
|
||||||
call searchpair(a:Head, a:Mid, a:Tail, 'W')
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Count the closes on the current line (i.e. LastLNum), stopping once
|
|
||||||
" we've hit comments.
|
|
||||||
if a:LastLine =~ a:Tail
|
|
||||||
while 1
|
|
||||||
let pairend = searchpair(a:Head, a:Mid, a:Tail, 'W')
|
|
||||||
if pairend == 0 || a:LastLNum != pairend
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
let syn = synIDattr(synID(line("."), col("."), 1), "name")
|
|
||||||
if syn =~ 'shComment\|sh\(Single\|Double\)Quote'
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
let levels = levels - 1
|
|
||||||
endwhile
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
" If the current line starts with a close, count it. It won't effect the
|
|
||||||
" indentation of the next line because it is the first thing on the line
|
|
||||||
" and won't be counted as a "close on the last line".
|
|
||||||
if a:CurrLine =~ '^\s*' . a:Tail
|
|
||||||
\ || (a:Mid != '' && a:CurrLine =~ '^\s*' . a:Mid)
|
|
||||||
let levels = levels - 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Restore original cursor location
|
|
||||||
call cursor(origline, origcol)
|
|
||||||
|
|
||||||
let adj = &sw*levels
|
|
||||||
if adj != 0 && b:super_sh_indent_echo
|
|
||||||
let g:lastindent = g:lastindent .
|
|
||||||
\ "GetPairIndent(" . a:Head . "):" . adj . " "
|
|
||||||
endif
|
|
||||||
|
|
||||||
return adj
|
|
||||||
|
|
||||||
endfunction
|
|
||||||
|
|
@ -1,26 +1,3 @@
|
||||||
execute pathogen#infect()
|
|
||||||
|
|
||||||
"call plug#begin()
|
|
||||||
"Plug 'dracula/vim', { 'as': 'dracula' }
|
|
||||||
"Plug 'koirand/tokyo-metro.vim'
|
|
||||||
"Plug 'vim-airline/vim-airline'
|
|
||||||
"Plug 'tpope/vim-surround'
|
|
||||||
"Plug 'scrooloose/nerdtree'
|
|
||||||
"Plug 'RobertAudi/fish.vim'
|
|
||||||
"Plug 'ctrlpvim/ctrlp.vim'
|
|
||||||
"Plug 'mhinz/vim-startify'
|
|
||||||
"Plug 'wincent/terminus'
|
|
||||||
"Plug 'w0rp/ale'
|
|
||||||
"Plug 'tpope/vim-commentary'
|
|
||||||
"Plug 'ajh17/vimcompletesme'
|
|
||||||
"Plug 'tpope/vim-repeat'
|
|
||||||
"Plug 'airblade/vim-gitgutter'
|
|
||||||
"Plug 'tpope/vim-fugitive'
|
|
||||||
"Plug 'tpope/vim-sensible'
|
|
||||||
"Plug 'godlygeek/tabular'
|
|
||||||
"Plug 'Yggdroot/indentLine'
|
|
||||||
"call plug#end()
|
|
||||||
|
|
||||||
set number
|
set number
|
||||||
set ruler
|
set ruler
|
||||||
set nowrap
|
set nowrap
|
||||||
|
|
|
||||||
1
.config/nvim/pack/pack/start
Symbolic link
1
.config/nvim/pack/pack/start
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
../../bundle
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
w0rp/ale
|
|
||||||
ctrlpvim/ctrlp.vim
|
|
||||||
RobertAudi/fish.vim
|
|
||||||
Yggdroot/indentLine
|
|
||||||
scrooloose/nerdtree
|
|
||||||
godlygeek/tabular
|
|
||||||
wincent/terminus
|
|
||||||
koirand/tokyo-metro.vim
|
|
||||||
vim-airline/vim-airline
|
|
||||||
tpope/vim-commentary
|
|
||||||
tpope/vim-fugitive
|
|
||||||
airblade/vim-gitgutter
|
|
||||||
tpope/vim-repeat
|
|
||||||
tpope/vim-sensible
|
|
||||||
mhinz/vim-startify
|
|
||||||
tpope/vim-surround
|
|
||||||
ajh17/vimcompletesme
|
|
||||||
Loading…
Reference in a new issue