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.139.238.74
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: DTD (Document Type Definition for XML) " Maintainer: Doug Kearns <dougkearns@gmail.com> " Previous Maintainer: Nikolai Weibull <now@bitwi.se> " Last Change: 24 Sep 2021 setlocal indentexpr=GetDTDIndent() setlocal indentkeys=!^F,o,O,> setlocal nosmartindent let b:undo_indent = "setl inde< indk< si<" if exists("*GetDTDIndent") finish endif let s:cpo_save = &cpo set cpo&vim " TODO: Needs to be adjusted to stop at [, <, and ]. let s:token_pattern = '^[^[:space:]]\+' function s:lex1(input, start, ...) let pattern = a:0 > 0 ? a:1 : s:token_pattern let start = matchend(a:input, '^\_s*', a:start) if start == -1 return ["", a:start] endif let end = matchend(a:input, pattern, start) if end == -1 return ["", a:start] endif let token = strpart(a:input, start, end - start) return [token, end] endfunction function s:lex(input, start, ...) let pattern = a:0 > 0 ? a:1 : s:token_pattern let info = s:lex1(a:input, a:start, pattern) while info[0] == '--' let info = s:lex1(a:input, info[1], pattern) while info[0] != "" && info[0] != '--' let info = s:lex1(a:input, info[1], pattern) endwhile if info[0] == "" return info endif let info = s:lex1(a:input, info[1], pattern) endwhile return info endfunction function s:indent_to_innermost_parentheses(line, end) let token = '(' let end = a:end let parentheses = [end - 1] while token != "" let [token, end] = s:lex(a:line, end, '^\%([(),|]\|[A-Za-z0-9_-]\+\|#P\=CDATA\|%[A-Za-z0-9_-]\+;\)[?*+]\=') if token[0] == '(' call add(parentheses, end - 1) elseif token[0] == ')' if len(parentheses) == 1 return [-1, end] endif call remove(parentheses, -1) endif endwhile return [parentheses[-1] - strridx(a:line, "\n", parentheses[-1]), end] endfunction " TODO: Line and end could be script global (think OO members). function GetDTDIndent() if v:lnum == 1 return 0 endif " Begin by searching back for a <! that isn’t inside a comment. " From here, depending on what follows immediately after, parse to " where we’re at to determine what to do. if search('<!', 'bceW') == 0 return indent(v:lnum - 1) endif let lnum = line('.') let col = col('.') let indent = indent('.') let line = lnum == v:lnum ? getline(lnum) : join(getline(lnum, v:lnum - 1), "\n") let [declaration, end] = s:lex1(line, col) if declaration == "" return indent + shiftwidth() elseif declaration == '--' " We’re looking at a comment. Now, simply determine if the comment is " terminated or not. If it isn’t, let Vim take care of that using " 'comments' and 'autoindent'. Otherwise, indent to the first lines level. while declaration != "" let [declaration, end] = s:lex(line, end) if declaration == "-->" return indent endif endwhile return -1 elseif declaration == 'ELEMENT' " Check for element name. If none exists, indent one level. let [name, end] = s:lex(line, end) if name == "" return indent + shiftwidth() endif " Check for token following element name. This can be a specification of " whether the start or end tag may be omitted. If nothing is found, indent " one level. let [token, end] = s:lex(line, end, '^\%([-O(]\|ANY\|EMPTY\)') let n = 0 while token =~ '[-O]' && n < 2 let [token, end] = s:lex(line, end, '^\%([-O(]\|ANY\|EMPTY\)') let n += 1 endwhile if token == "" return indent + shiftwidth() endif " Next comes the content model. If the token we’ve found isn’t a " parenthesis it must be either ANY, EMPTY or some random junk. Either " way, we’re done indenting this element, so set it to that of the first " line so that the terminating “>” winds up having the same indentation. if token != '(' return indent endif " Now go through the content model. We need to keep track of the nesting " of parentheses. As soon as we hit 0 we’re done. If that happens we must " have a complete content model. Thus set indentation to be the same as that " of the first line so that the terminating “>” winds up having the same " indentation. Otherwise, we’ll indent to the innermost parentheses not yet " matched. let [indent_of_innermost, end] = s:indent_to_innermost_parentheses(line, end) if indent_of_innermost != -1 return indent_of_innermost endif " Finally, look for any additions and/or exceptions to the content model. " This is defined by a “+” or “-” followed by another content model " declaration. " TODO: Can the “-” be separated by whitespace from the “(”? let seen = { '+(': 0, '-(': 0 } while 1 let [additions_exceptions, end] = s:lex(line, end, '^[+-](') if additions_exceptions != '+(' && additions_exceptions != '-(' let [token, end] = s:lex(line, end) if token == '>' return indent endif " TODO: Should use s:lex here on getline(v:lnum) and check for >. return getline(v:lnum) =~ '^\s*>' || count(values(seen), 0) == 0 ? indent : (indent + shiftwidth()) endif " If we’ve seen an addition or exception already and this is of the same " kind, the user is writing a broken DTD. Time to bail. if seen[additions_exceptions] return indent endif let seen[additions_exceptions] = 1 let [indent_of_innermost, end] = s:indent_to_innermost_parentheses(line, end) if indent_of_innermost != -1 return indent_of_innermost endif endwhile elseif declaration == 'ATTLIST' " Check for element name. If none exists, indent one level. let [name, end] = s:lex(line, end) if name == "" return indent + shiftwidth() endif " Check for any number of attributes. while 1 " Check for attribute name. If none exists, indent one level, unless the " current line is a lone “>”, in which case we indent to the same level " as the first line. Otherwise, if the attribute name is “>”, we have " actually hit the end of the attribute list, in which case we indent to " the same level as the first line. let [name, end] = s:lex(line, end) if name == "" " TODO: Should use s:lex here on getline(v:lnum) and check for >. return getline(v:lnum) =~ '^\s*>' ? indent : (indent + shiftwidth()) elseif name == ">" return indent endif " Check for attribute value declaration. If none exists, indent two " levels. Otherwise, if it’s an enumerated value, check for nested " parentheses and indent to the innermost one if we don’t reach the end " of the listc. Otherwise, just continue with looking for the default " attribute value. " TODO: Do validation of keywords " (CDATA|NMTOKEN|NMTOKENS|ID|IDREF|IDREFS|ENTITY|ENTITIES)? let [value, end] = s:lex(line, end, '^\%((\|[^[:space:]]\+\)') if value == "" return indent + shiftwidth() * 2 elseif value == 'NOTATION' " If this is a enumerated value based on notations, read another token " for the actual value. If it doesn’t exist, indent three levels. " TODO: If validating according to above, value must be equal to '('. let [value, end] = s:lex(line, end, '^\%((\|[^[:space:]]\+\)') if value == "" return indent + shiftwidth() * 3 endif endif if value == '(' let [indent_of_innermost, end] = s:indent_to_innermost_parentheses(line, end) if indent_of_innermost != -1 return indent_of_innermost endif endif " Finally look for the attribute’s default value. If non exists, indent " two levels. let [default, end] = s:lex(line, end, '^\%("\_[^"]*"\|#\(REQUIRED\|IMPLIED\|FIXED\)\)') if default == "" return indent + shiftwidth() * 2 elseif default == '#FIXED' " We need to look for the fixed value. If non exists, indent three " levels. let [default, end] = s:lex(line, end, '^"\_[^"]*"') if default == "" return indent + shiftwidth() * 3 endif endif endwhile elseif declaration == 'ENTITY' " Check for entity name. If none exists, indent one level. Otherwise, if " the name actually turns out to be a percent sign, “%”, this is a " parameter entity. Read another token to determine the entity name and, " again, if none exists, indent one level. let [name, end] = s:lex(line, end) if name == "" return indent + shiftwidth() elseif name == '%' let [name, end] = s:lex(line, end) if name == "" return indent + shiftwidth() endif endif " Now check for the entity value. If none exists, indent one level. If it " does exist, indent to same level as first line, as we’re now done with " this entity. " " The entity value can be a string in single or double quotes (no escapes " to worry about, as entities are used instead). However, it can also be " that this is an external unparsed entity. In that case we have to look " further for (possibly) a public ID and an URI followed by the NDATA " keyword and the actual notation name. For the public ID and URI, indent " two levels, if they don’t exist. If the NDATA keyword doesn’t exist, " indent one level. Otherwise, if the actual notation name doesn’t exist, " indent two level. If it does, indent to same level as first line, as " we’re now done with this entity. let [value, end] = s:lex(line, end) if value == "" return indent + shiftwidth() elseif value == 'SYSTEM' || value == 'PUBLIC' let [quoted_string, end] = s:lex(line, end, '\%("[^"]\+"\|''[^'']\+''\)') if quoted_string == "" return indent + shiftwidth() * 2 endif if value == 'PUBLIC' let [quoted_string, end] = s:lex(line, end, '\%("[^"]\+"\|''[^'']\+''\)') if quoted_string == "" return indent + shiftwidth() * 2 endif endif let [ndata, end] = s:lex(line, end) if ndata == "" return indent + shiftwidth() endif let [name, end] = s:lex(line, end) return name == "" ? (indent + shiftwidth() * 2) : indent else return indent endif elseif declaration == 'NOTATION' " Check for notation name. If none exists, indent one level. let [name, end] = s:lex(line, end) if name == "" return indent + shiftwidth() endif " Now check for the external ID. If none exists, indent one level. let [id, end] = s:lex(line, end) if id == "" return indent + shiftwidth() elseif id == 'SYSTEM' || id == 'PUBLIC' let [quoted_string, end] = s:lex(line, end, '\%("[^"]\+"\|''[^'']\+''\)') if quoted_string == "" return indent + shiftwidth() * 2 endif if id == 'PUBLIC' let [quoted_string, end] = s:lex(line, end, '\%("[^"]\+"\|''[^'']\+''\|>\)') if quoted_string == "" " TODO: Should use s:lex here on getline(v:lnum) and check for >. return getline(v:lnum) =~ '^\s*>' ? indent : (indent + shiftwidth() * 2) elseif quoted_string == '>' return indent endif endif endif return indent endif " TODO: Processing directives could be indented I suppose. But perhaps it’s " just as well to let the user decide how to indent them (perhaps extending " this function to include proper support for whatever processing directive " language they want to use). " Conditional sections are simply passed along to let Vim decide what to do " (and hence the user). return -1 endfunction let &cpo = s:cpo_save unlet s:cpo_save