Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
Apache/2.4.52 (Ubuntu)
Server IP : 192.168.1.1 & Your IP : 3.129.206.232
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
vim /
vim82 /
indent /
Delete
Unzip
Name
Size
Permission
Date
Action
aap.vim
265
B
-rw-r--r--
2025-04-02 12:39
ada.vim
10.97
KB
-rw-r--r--
2025-04-02 12:39
ant.vim
290
B
-rw-r--r--
2025-04-02 12:39
automake.vim
243
B
-rw-r--r--
2025-04-02 12:39
awk.vim
7.59
KB
-rw-r--r--
2025-04-02 12:39
bash.vim
350
B
-rw-r--r--
2025-04-02 12:39
bib.vim
346
B
-rw-r--r--
2025-04-02 12:39
bst.vim
1.89
KB
-rw-r--r--
2025-04-02 12:39
bzl.vim
2.86
KB
-rw-r--r--
2025-04-02 12:39
c.vim
325
B
-rw-r--r--
2025-04-02 12:39
cdl.vim
4.24
KB
-rw-r--r--
2025-04-02 12:39
ch.vim
470
B
-rw-r--r--
2025-04-02 12:39
chaiscript.vim
1.11
KB
-rw-r--r--
2025-04-02 12:39
changelog.vim
264
B
-rw-r--r--
2025-04-02 12:39
clojure.vim
11.29
KB
-rw-r--r--
2025-04-02 12:39
cmake.vim
2.62
KB
-rw-r--r--
2025-04-02 12:39
cobol.vim
8.63
KB
-rw-r--r--
2025-04-02 12:39
config.vim
2.17
KB
-rw-r--r--
2025-04-02 12:39
context.vim
752
B
-rw-r--r--
2025-04-02 12:39
cpp.vim
329
B
-rw-r--r--
2025-04-02 12:39
cs.vim
1.71
KB
-rw-r--r--
2025-04-02 12:39
css.vim
1.77
KB
-rw-r--r--
2025-04-02 12:39
cucumber.vim
2.62
KB
-rw-r--r--
2025-04-02 12:39
cuda.vim
305
B
-rw-r--r--
2025-04-02 12:39
d.vim
572
B
-rw-r--r--
2025-04-02 12:39
dictconf.vim
337
B
-rw-r--r--
2025-04-02 12:39
dictdconf.vim
338
B
-rw-r--r--
2025-04-02 12:39
docbk.vim
336
B
-rw-r--r--
2025-04-02 12:39
dosbatch.vim
1.35
KB
-rw-r--r--
2025-04-02 12:39
dtd.vim
11.67
KB
-rw-r--r--
2025-04-02 12:39
dtrace.vim
451
B
-rw-r--r--
2025-04-02 12:39
dune.vim
332
B
-rw-r--r--
2025-04-02 12:39
dylan.vim
2.71
KB
-rw-r--r--
2025-04-02 12:39
eiffel.vim
3.24
KB
-rw-r--r--
2025-04-02 12:39
elm.vim
3.2
KB
-rw-r--r--
2025-04-02 12:39
erlang.vim
48.89
KB
-rw-r--r--
2025-04-02 12:39
eruby.vim
2.95
KB
-rw-r--r--
2025-04-02 12:39
eterm.vim
743
B
-rw-r--r--
2025-04-02 12:39
falcon.vim
13.75
KB
-rw-r--r--
2025-04-02 12:39
fortran.vim
7.48
KB
-rw-r--r--
2025-04-02 12:39
framescript.vim
891
B
-rw-r--r--
2025-04-02 12:39
gitconfig.vim
841
B
-rw-r--r--
2025-04-02 12:39
gitolite.vim
1.25
KB
-rw-r--r--
2025-04-02 12:39
go.vim
1.63
KB
-rw-r--r--
2025-04-02 12:39
haml.vim
2.15
KB
-rw-r--r--
2025-04-02 12:39
hamster.vim
1.65
KB
-rw-r--r--
2025-04-02 12:39
hog.vim
1.85
KB
-rw-r--r--
2025-04-02 12:39
html.vim
32.86
KB
-rw-r--r--
2025-04-02 12:39
htmldjango.vim
273
B
-rw-r--r--
2025-04-02 12:39
idlang.vim
1.64
KB
-rw-r--r--
2025-04-02 12:39
ishd.vim
1.83
KB
-rw-r--r--
2025-04-02 12:39
j.vim
1.77
KB
-rw-r--r--
2025-04-02 12:39
java.vim
4.19
KB
-rw-r--r--
2025-04-02 12:39
javascript.vim
15
KB
-rw-r--r--
2025-04-02 12:39
javascriptreact.vim
109
B
-rw-r--r--
2025-04-02 12:39
json.vim
4.42
KB
-rw-r--r--
2025-04-02 12:39
jsonc.vim
4.62
KB
-rw-r--r--
2025-04-02 12:39
jsp.vim
462
B
-rw-r--r--
2025-04-02 12:39
julia.vim
15.09
KB
-rw-r--r--
2025-04-02 12:39
ld.vim
1.82
KB
-rw-r--r--
2025-04-02 12:39
less.vim
243
B
-rw-r--r--
2025-04-02 12:39
lifelines.vim
638
B
-rw-r--r--
2025-04-02 12:39
liquid.vim
1.85
KB
-rw-r--r--
2025-04-02 12:39
lisp.vim
353
B
-rw-r--r--
2025-04-02 12:39
logtalk.vim
1.82
KB
-rw-r--r--
2025-04-02 12:39
lua.vim
1.88
KB
-rw-r--r--
2025-04-02 12:39
mail.vim
355
B
-rw-r--r--
2025-04-02 12:39
make.vim
3.48
KB
-rw-r--r--
2025-04-02 12:39
matlab.vim
4.81
KB
-rw-r--r--
2025-04-02 12:39
meson.vim
5.19
KB
-rw-r--r--
2025-04-02 12:39
mf.vim
156
B
-rw-r--r--
2025-04-02 12:39
mma.vim
2.22
KB
-rw-r--r--
2025-04-02 12:39
mp.vim
11.06
KB
-rw-r--r--
2025-04-02 12:39
nginx.vim
362
B
-rw-r--r--
2025-04-02 12:39
nsis.vim
3.23
KB
-rw-r--r--
2025-04-02 12:39
objc.vim
1.61
KB
-rw-r--r--
2025-04-02 12:39
ocaml.vim
8.98
KB
-rw-r--r--
2025-04-02 12:39
occam.vim
4.59
KB
-rw-r--r--
2025-04-02 12:39
pascal.vim
5.66
KB
-rw-r--r--
2025-04-02 12:39
perl.vim
5.77
KB
-rw-r--r--
2025-04-02 12:39
php.vim
25.29
KB
-rw-r--r--
2025-04-02 12:39
postscr.vim
1.67
KB
-rw-r--r--
2025-04-02 12:39
pov.vim
2.6
KB
-rw-r--r--
2025-04-02 12:39
prolog.vim
1.82
KB
-rw-r--r--
2025-04-02 12:39
ps1.vim
410
B
-rw-r--r--
2025-04-02 12:39
pyrex.vim
326
B
-rw-r--r--
2025-04-02 12:39
python.vim
6.82
KB
-rw-r--r--
2025-04-02 12:39
r.vim
13.71
KB
-rw-r--r--
2025-04-02 12:39
raku.vim
3.34
KB
-rw-r--r--
2025-04-02 12:39
raml.vim
285
B
-rw-r--r--
2025-04-02 12:39
readline.vim
786
B
-rw-r--r--
2025-04-02 12:39
rhelp.vim
2.77
KB
-rw-r--r--
2025-04-02 12:39
rmd.vim
2.14
KB
-rw-r--r--
2025-04-02 12:39
rnoweb.vim
1.06
KB
-rw-r--r--
2025-04-02 12:39
rpl.vim
1.82
KB
-rw-r--r--
2025-04-02 12:39
rrst.vim
1.17
KB
-rw-r--r--
2025-04-02 12:39
rst.vim
1.78
KB
-rw-r--r--
2025-04-02 12:39
ruby.vim
29.44
KB
-rw-r--r--
2025-04-02 12:39
rust.vim
6.35
KB
-rw-r--r--
2025-04-02 12:39
sas.vim
5.15
KB
-rw-r--r--
2025-04-02 12:39
sass.vim
950
B
-rw-r--r--
2025-04-02 12:39
scala.vim
19.2
KB
-rw-r--r--
2025-04-02 12:39
scheme.vim
372
B
-rw-r--r--
2025-04-02 12:39
scss.vim
191
B
-rw-r--r--
2025-04-02 12:39
sdl.vim
2.76
KB
-rw-r--r--
2025-04-02 12:39
sh.vim
9.04
KB
-rw-r--r--
2025-04-02 12:39
sml.vim
6.33
KB
-rw-r--r--
2025-04-02 12:39
sql.vim
1.18
KB
-rw-r--r--
2025-04-02 12:39
sqlanywhere.vim
12.96
KB
-rw-r--r--
2025-04-02 12:39
sshconfig.vim
796
B
-rw-r--r--
2025-04-02 12:39
systemd.vim
205
B
-rw-r--r--
2025-04-02 12:39
systemverilog.vim
8.43
KB
-rw-r--r--
2025-04-02 12:39
tcl.vim
2.48
KB
-rw-r--r--
2025-04-02 12:39
tcsh.vim
1.35
KB
-rw-r--r--
2025-04-02 12:39
teraterm.vim
1.38
KB
-rw-r--r--
2025-04-02 12:39
tex.vim
13.37
KB
-rw-r--r--
2025-04-02 12:39
tf.vim
1.51
KB
-rw-r--r--
2025-04-02 12:39
tilde.vim
1013
B
-rw-r--r--
2025-04-02 12:39
treetop.vim
708
B
-rw-r--r--
2025-04-02 12:39
typescript.vim
14.14
KB
-rw-r--r--
2025-04-02 12:39
vb.vim
2.04
KB
-rw-r--r--
2025-04-02 12:39
verilog.vim
7.98
KB
-rw-r--r--
2025-04-02 12:39
vhdl.vim
14.32
KB
-rw-r--r--
2025-04-02 12:39
vim.vim
5.63
KB
-rw-r--r--
2025-04-02 12:39
vroom.vim
379
B
-rw-r--r--
2025-04-02 12:39
wast.vim
458
B
-rw-r--r--
2025-04-02 12:39
xf86conf.vim
709
B
-rw-r--r--
2025-04-02 12:39
xhtml.vim
269
B
-rw-r--r--
2025-04-02 12:39
xinetd.vim
1.2
KB
-rw-r--r--
2025-04-02 12:39
xml.vim
7.6
KB
-rw-r--r--
2025-04-02 12:39
xsd.vim
253
B
-rw-r--r--
2025-04-02 12:39
xslt.vim
297
B
-rw-r--r--
2025-04-02 12:39
yacc.vim
781
B
-rw-r--r--
2025-04-02 12:39
yaml.vim
5.34
KB
-rw-r--r--
2025-04-02 12:39
zimbu.vim
3.85
KB
-rw-r--r--
2025-04-02 12:39
zsh.vim
411
B
-rw-r--r--
2025-04-02 12:39
Save
Rename
" Vim indent file " Language: R " Author: Jakson Alves de Aquino <jalvesaq@gmail.com> " Homepage: https://github.com/jalvesaq/R-Vim-runtime " Last Change: Sun Aug 19, 2018 09:13PM " Only load this indent file when no other was loaded. if exists("b:did_indent") finish endif let b:did_indent = 1 setlocal indentkeys=0{,0},:,!^F,o,O,e setlocal indentexpr=GetRIndent() " Only define the function once. if exists("*GetRIndent") finish endif let s:cpo_save = &cpo set cpo&vim " Options to make the indentation more similar to Emacs/ESS: let g:r_indent_align_args = get(g:, 'r_indent_align_args', 1) let g:r_indent_ess_comments = get(g:, 'r_indent_ess_comments', 0) let g:r_indent_comment_column = get(g:, 'r_indent_comment_column', 40) let g:r_indent_ess_compatible = get(g:, 'r_indent_ess_compatible', 0) let g:r_indent_op_pattern = get(g:, 'r_indent_op_pattern', \ '\(&\||\|+\|-\|\*\|/\|=\|\~\|%\|->\)\s*$') function s:RDelete_quotes(line) let i = 0 let j = 0 let line1 = "" let llen = strlen(a:line) while i < llen if a:line[i] == '"' let i += 1 let line1 = line1 . 's' while !(a:line[i] == '"' && ((i > 1 && a:line[i-1] == '\' && a:line[i-2] == '\') || a:line[i-1] != '\')) && i < llen let i += 1 endwhile if a:line[i] == '"' let i += 1 endif else if a:line[i] == "'" let i += 1 let line1 = line1 . 's' while !(a:line[i] == "'" && ((i > 1 && a:line[i-1] == '\' && a:line[i-2] == '\') || a:line[i-1] != '\')) && i < llen let i += 1 endwhile if a:line[i] == "'" let i += 1 endif else if a:line[i] == "`" let i += 1 let line1 = line1 . 's' while a:line[i] != "`" && i < llen let i += 1 endwhile if a:line[i] == "`" let i += 1 endif endif endif endif if i == llen break endif let line1 = line1 . a:line[i] let j += 1 let i += 1 endwhile return line1 endfunction " Convert foo(bar()) int foo() function s:RDelete_parens(line) if s:Get_paren_balance(a:line, "(", ")") != 0 return a:line endif let i = 0 let j = 0 let line1 = "" let llen = strlen(a:line) while i < llen let line1 = line1 . a:line[i] if a:line[i] == '(' let nop = 1 while nop > 0 && i < llen let i += 1 if a:line[i] == ')' let nop -= 1 else if a:line[i] == '(' let nop += 1 endif endif endwhile let line1 = line1 . a:line[i] endif let i += 1 endwhile return line1 endfunction function! s:Get_paren_balance(line, o, c) let line2 = substitute(a:line, a:o, "", "g") let openp = strlen(a:line) - strlen(line2) let line3 = substitute(line2, a:c, "", "g") let closep = strlen(line2) - strlen(line3) return openp - closep endfunction function! s:Get_matching_brace(linenr, o, c, delbrace) let line = SanitizeRLine(getline(a:linenr)) if a:delbrace == 1 let line = substitute(line, '{$', "", "") endif let pb = s:Get_paren_balance(line, a:o, a:c) let i = a:linenr while pb != 0 && i > 1 let i -= 1 let pb += s:Get_paren_balance(SanitizeRLine(getline(i)), a:o, a:c) endwhile return i endfunction " This function is buggy because there 'if's without 'else' " It must be rewritten relying more on indentation function! s:Get_matching_if(linenr, delif) let line = SanitizeRLine(getline(a:linenr)) if a:delif let line = substitute(line, "if", "", "g") endif let elsenr = 0 let i = a:linenr let ifhere = 0 while i > 0 let line2 = substitute(line, '\<else\>', "xxx", "g") let elsenr += strlen(line) - strlen(line2) if line =~ '.*\s*if\s*()' || line =~ '.*\s*if\s*()' let elsenr -= 1 if elsenr == 0 let ifhere = i break endif endif let i -= 1 let line = SanitizeRLine(getline(i)) endwhile if ifhere return ifhere else return a:linenr endif endfunction function! s:Get_last_paren_idx(line, o, c, pb) let blc = a:pb let line = substitute(a:line, '\t', s:curtabstop, "g") let theidx = -1 let llen = strlen(line) let idx = 0 while idx < llen if line[idx] == a:o let blc -= 1 if blc == 0 let theidx = idx endif else if line[idx] == a:c let blc += 1 endif endif let idx += 1 endwhile return theidx + 1 endfunction " Get previous relevant line. Search back until getting a line that isn't " comment or blank function s:Get_prev_line(lineno) let lnum = a:lineno - 1 let data = getline( lnum ) while lnum > 0 && (data =~ '^\s*#' || data =~ '^\s*$') let lnum = lnum - 1 let data = getline( lnum ) endwhile return lnum endfunction " This function is also used by r-plugin/common_global.vim " Delete from '#' to the end of the line, unless the '#' is inside a string. function SanitizeRLine(line) let newline = s:RDelete_quotes(a:line) let newline = s:RDelete_parens(newline) let newline = substitute(newline, '#.*', "", "") let newline = substitute(newline, '\s*$', "", "") if &filetype == "rhelp" && newline =~ '^\\method{.*}{.*}(.*' let newline = substitute(newline, '^\\method{\(.*\)}{.*}', '\1', "") endif return newline endfunction function GetRIndent() let clnum = line(".") " current line let cline = getline(clnum) if cline =~ '^\s*#' if g:r_indent_ess_comments == 1 if cline =~ '^\s*###' return 0 endif if cline !~ '^\s*##' return g:r_indent_comment_column endif endif endif let cline = SanitizeRLine(cline) if cline =~ '^\s*}' let indline = s:Get_matching_brace(clnum, '{', '}', 1) if indline > 0 && indline != clnum let iline = SanitizeRLine(getline(indline)) if s:Get_paren_balance(iline, "(", ")") == 0 || iline =~ '(\s*{$' return indent(indline) else let indline = s:Get_matching_brace(indline, '(', ')', 1) return indent(indline) endif endif endif if cline =~ '^\s*)$' let indline = s:Get_matching_brace(clnum, '(', ')', 1) return indent(indline) endif " Find the first non blank line above the current line let lnum = s:Get_prev_line(clnum) " Hit the start of the file, use zero indent. if lnum == 0 return 0 endif let line = SanitizeRLine(getline(lnum)) if &filetype == "rhelp" if cline =~ '^\\dontshow{' || cline =~ '^\\dontrun{' || cline =~ '^\\donttest{' || cline =~ '^\\testonly{' return 0 endif if line =~ '^\\examples{' || line =~ '^\\usage{' || line =~ '^\\dontshow{' || line =~ '^\\dontrun{' || line =~ '^\\donttest{' || line =~ '^\\testonly{' return 0 endif endif if &filetype == "rnoweb" && line =~ "^<<.*>>=" return 0 endif if cline =~ '^\s*{' && s:Get_paren_balance(cline, '{', '}') > 0 if g:r_indent_ess_compatible && line =~ ')$' let nlnum = lnum let nline = line while s:Get_paren_balance(nline, '(', ')') < 0 let nlnum = s:Get_prev_line(nlnum) let nline = SanitizeRLine(getline(nlnum)) . nline endwhile if nline =~ '^\s*function\s*(' && indent(nlnum) == shiftwidth() return 0 endif endif if s:Get_paren_balance(line, "(", ")") == 0 return indent(lnum) endif endif " line is an incomplete command: if line =~ '\<\(if\|while\|for\|function\)\s*()$' || line =~ '\<else$' || line =~ '<-$' || line =~ '->$' return indent(lnum) + shiftwidth() endif " Deal with () and [] let pb = s:Get_paren_balance(line, '(', ')') if line =~ '^\s*{$' || line =~ '(\s*{' || (pb == 0 && (line =~ '{$' || line =~ '(\s*{$')) return indent(lnum) + shiftwidth() endif let s:curtabstop = repeat(' ', &tabstop) if g:r_indent_align_args == 1 if pb > 0 && line =~ '{$' return s:Get_last_paren_idx(line, '(', ')', pb) + shiftwidth() endif let bb = s:Get_paren_balance(line, '[', ']') if pb > 0 if &filetype == "rhelp" let ind = s:Get_last_paren_idx(line, '(', ')', pb) else let ind = s:Get_last_paren_idx(getline(lnum), '(', ')', pb) endif return ind endif if pb < 0 && line =~ '.*[,&|\-\*+<>]$' let lnum = s:Get_prev_line(lnum) while pb < 1 && lnum > 0 let line = SanitizeRLine(getline(lnum)) let line = substitute(line, '\t', s:curtabstop, "g") let ind = strlen(line) while ind > 0 if line[ind] == ')' let pb -= 1 else if line[ind] == '(' let pb += 1 endif endif if pb == 1 return ind + 1 endif let ind -= 1 endwhile let lnum -= 1 endwhile return 0 endif if bb > 0 let ind = s:Get_last_paren_idx(getline(lnum), '[', ']', bb) return ind endif endif let post_block = 0 if line =~ '}$' && s:Get_paren_balance(line, '{', '}') < 0 let lnum = s:Get_matching_brace(lnum, '{', '}', 0) let line = SanitizeRLine(getline(lnum)) if lnum > 0 && line =~ '^\s*{' let lnum = s:Get_prev_line(lnum) let line = SanitizeRLine(getline(lnum)) endif let pb = s:Get_paren_balance(line, '(', ')') let post_block = 1 endif " Indent after operator pattern let olnum = s:Get_prev_line(lnum) let oline = getline(olnum) if olnum > 0 if line =~ g:r_indent_op_pattern && s:Get_paren_balance(line, "(", ")") == 0 if oline =~ g:r_indent_op_pattern && s:Get_paren_balance(line, "(", ")") == 0 return indent(lnum) else return indent(lnum) + shiftwidth() endif else if oline =~ g:r_indent_op_pattern && s:Get_paren_balance(line, "(", ")") == 0 return indent(lnum) - shiftwidth() endif endif endif let post_fun = 0 if pb < 0 && line !~ ')\s*[,&|\-\*+<>]$' let post_fun = 1 while pb < 0 && lnum > 0 let lnum -= 1 let linepiece = SanitizeRLine(getline(lnum)) let pb += s:Get_paren_balance(linepiece, "(", ")") let line = linepiece . line endwhile if line =~ '{$' && post_block == 0 return indent(lnum) + shiftwidth() endif " Now we can do some tests again if cline =~ '^\s*{' return indent(lnum) endif if post_block == 0 let newl = SanitizeRLine(line) if newl =~ '\<\(if\|while\|for\|function\)\s*()$' || newl =~ '\<else$' || newl =~ '<-$' return indent(lnum) + shiftwidth() endif endif endif if cline =~ '^\s*else' if line =~ '<-\s*if\s*()' return indent(lnum) + shiftwidth() else if line =~ '\<if\s*()' return indent(lnum) else return indent(lnum) - shiftwidth() endif endif endif let bb = s:Get_paren_balance(line, '[', ']') if bb < 0 && line =~ '.*]' while bb < 0 && lnum > 0 let lnum -= 1 let linepiece = SanitizeRLine(getline(lnum)) let bb += s:Get_paren_balance(linepiece, "[", "]") let line = linepiece . line endwhile let line = s:RDelete_parens(line) endif let plnum = s:Get_prev_line(lnum) let ppost_else = 0 if plnum > 0 let pline = SanitizeRLine(getline(plnum)) let ppost_block = 0 if pline =~ '}$' let ppost_block = 1 let plnum = s:Get_matching_brace(plnum, '{', '}', 0) let pline = SanitizeRLine(getline(plnum)) if pline =~ '^\s*{$' && plnum > 0 let plnum = s:Get_prev_line(plnum) let pline = SanitizeRLine(getline(plnum)) endif endif if pline =~ 'else$' let ppost_else = 1 let plnum = s:Get_matching_if(plnum, 0) let pline = SanitizeRLine(getline(plnum)) endif if pline =~ '^\s*else\s*if\s*(' let pplnum = s:Get_prev_line(plnum) let ppline = SanitizeRLine(getline(pplnum)) while ppline =~ '^\s*else\s*if\s*(' || ppline =~ '^\s*if\s*()\s*\S$' let plnum = pplnum let pline = ppline let pplnum = s:Get_prev_line(plnum) let ppline = SanitizeRLine(getline(pplnum)) endwhile while ppline =~ '\<\(if\|while\|for\|function\)\s*()$' || ppline =~ '\<else$' || ppline =~ '<-$' let plnum = pplnum let pline = ppline let pplnum = s:Get_prev_line(plnum) let ppline = SanitizeRLine(getline(pplnum)) endwhile endif let ppb = s:Get_paren_balance(pline, '(', ')') if ppb < 0 && (pline =~ ')\s*{$' || pline =~ ')$') while ppb < 0 && plnum > 0 let plnum -= 1 let linepiece = SanitizeRLine(getline(plnum)) let ppb += s:Get_paren_balance(linepiece, "(", ")") let pline = linepiece . pline endwhile let pline = s:RDelete_parens(pline) endif endif let ind = indent(lnum) if g:r_indent_align_args == 0 && pb != 0 let ind += pb * shiftwidth() return ind endif if g:r_indent_align_args == 0 && bb != 0 let ind += bb * shiftwidth() return ind endif if plnum > 0 let pind = indent(plnum) else let pind = 0 endif if ind == pind || (ind == (pind + shiftwidth()) && pline =~ '{$' && ppost_else == 0) return ind endif let pline = getline(plnum) let pbb = s:Get_paren_balance(pline, '[', ']') while pind < ind && plnum > 0 && ppb == 0 && pbb == 0 let ind = pind let plnum = s:Get_prev_line(plnum) let pline = getline(plnum) let ppb = s:Get_paren_balance(pline, '(', ')') let pbb = s:Get_paren_balance(pline, '[', ']') while pline =~ '^\s*else' let plnum = s:Get_matching_if(plnum, 1) let pline = getline(plnum) let ppb = s:Get_paren_balance(pline, '(', ')') let pbb = s:Get_paren_balance(pline, '[', ']') endwhile let pind = indent(plnum) if ind == (pind + shiftwidth()) && pline =~ '{$' return ind endif endwhile return ind endfunction let &cpo = s:cpo_save unlet s:cpo_save " vim: sw=2