Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.217.117
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
vim /
vim90 /
ftplugin /
Delete
Unzip
Name
Size
Permission
Date
Action
8th.vim
833
B
-rw-r--r--
2025-02-16 05:23
a2ps.vim
470
B
-rw-r--r--
2025-02-16 05:23
aap.vim
979
B
-rw-r--r--
2025-02-16 05:23
abap.vim
800
B
-rw-r--r--
2025-02-16 05:23
abaqus.vim
4
KB
-rw-r--r--
2025-02-16 05:23
ada.vim
6.35
KB
-rw-r--r--
2025-02-16 05:23
alsaconf.vim
438
B
-rw-r--r--
2025-02-16 05:23
ant.vim
1.27
KB
-rw-r--r--
2025-02-16 05:23
apache.vim
361
B
-rw-r--r--
2025-02-16 05:23
arch.vim
431
B
-rw-r--r--
2025-02-16 05:23
art.vim
410
B
-rw-r--r--
2025-02-16 05:23
asm.vim
271
B
-rw-r--r--
2025-02-16 05:23
aspvbs.vim
1.83
KB
-rw-r--r--
2025-02-16 05:23
automake.vim
337
B
-rw-r--r--
2025-02-16 05:23
awk.vim
1.47
KB
-rw-r--r--
2025-02-16 05:23
bash.vim
474
B
-rw-r--r--
2025-02-16 05:23
basic.vim
2.02
KB
-rw-r--r--
2025-02-16 05:23
bdf.vim
449
B
-rw-r--r--
2025-02-16 05:23
bitbake.vim
375
B
-rw-r--r--
2025-02-16 05:23
bst.vim
333
B
-rw-r--r--
2025-02-16 05:23
btm.vim
316
B
-rw-r--r--
2025-02-16 05:23
bzl.vim
3.03
KB
-rw-r--r--
2025-02-16 05:23
c.vim
2.26
KB
-rw-r--r--
2025-02-16 05:23
calendar.vim
462
B
-rw-r--r--
2025-02-16 05:23
cdrdaoconf.vim
383
B
-rw-r--r--
2025-02-16 05:23
cfg.vim
388
B
-rw-r--r--
2025-02-16 05:23
ch.vim
472
B
-rw-r--r--
2025-02-16 05:23
changelog.vim
9.09
KB
-rw-r--r--
2025-02-16 05:23
chatito.vim
383
B
-rw-r--r--
2025-02-16 05:23
chicken.vim
1.68
KB
-rw-r--r--
2025-02-16 05:23
clojure.vim
3.24
KB
-rw-r--r--
2025-02-16 05:23
cmake.vim
867
B
-rw-r--r--
2025-02-16 05:23
cobol.vim
9.35
KB
-rw-r--r--
2025-02-16 05:23
conf.vim
434
B
-rw-r--r--
2025-02-16 05:23
config.vim
1.21
KB
-rw-r--r--
2025-02-16 05:23
confini.vim
206
B
-rw-r--r--
2025-02-16 05:23
context.vim
4.34
KB
-rw-r--r--
2025-02-16 05:23
cpp.vim
468
B
-rw-r--r--
2025-02-16 05:23
crm.vim
414
B
-rw-r--r--
2025-02-16 05:23
crontab.vim
361
B
-rw-r--r--
2025-02-16 05:23
cs.vim
1.47
KB
-rw-r--r--
2025-02-16 05:23
csc.vim
697
B
-rw-r--r--
2025-02-16 05:23
csh.vim
1.69
KB
-rw-r--r--
2025-02-16 05:23
css.vim
586
B
-rw-r--r--
2025-02-16 05:23
cucumber.vim
5
KB
-rw-r--r--
2025-02-16 05:23
cvsrc.vim
399
B
-rw-r--r--
2025-02-16 05:23
debchangelog.vim
11.71
KB
-rw-r--r--
2025-02-16 05:23
debcontrol.vim
1.8
KB
-rw-r--r--
2025-02-16 05:23
denyhosts.vim
383
B
-rw-r--r--
2025-02-16 05:23
desktop.vim
300
B
-rw-r--r--
2025-02-16 05:23
dictconf.vim
434
B
-rw-r--r--
2025-02-16 05:23
dictdconf.vim
435
B
-rw-r--r--
2025-02-16 05:23
diff.vim
677
B
-rw-r--r--
2025-02-16 05:23
dircolors.vim
431
B
-rw-r--r--
2025-02-16 05:23
docbk.vim
530
B
-rw-r--r--
2025-02-16 05:23
dockerfile.vim
356
B
-rw-r--r--
2025-02-16 05:23
dosbatch.vim
1.19
KB
-rw-r--r--
2025-02-16 05:23
dosini.vim
459
B
-rw-r--r--
2025-02-16 05:23
dtd.vim
1.06
KB
-rw-r--r--
2025-02-16 05:23
dtrace.vim
1.12
KB
-rw-r--r--
2025-02-16 05:23
dune.vim
502
B
-rw-r--r--
2025-02-16 05:23
eiffel.vim
3.99
KB
-rw-r--r--
2025-02-16 05:23
elinks.vim
436
B
-rw-r--r--
2025-02-16 05:23
elixir.vim
756
B
-rw-r--r--
2025-02-16 05:23
elm.vim
369
B
-rw-r--r--
2025-02-16 05:23
erlang.vim
2.61
KB
-rw-r--r--
2025-02-16 05:23
eruby.vim
4.6
KB
-rw-r--r--
2025-02-16 05:23
eterm.vim
470
B
-rw-r--r--
2025-02-16 05:23
expect.vim
503
B
-rw-r--r--
2025-02-16 05:23
falcon.vim
1.32
KB
-rw-r--r--
2025-02-16 05:23
fennel.vim
569
B
-rw-r--r--
2025-02-16 05:23
fetchmail.vim
397
B
-rw-r--r--
2025-02-16 05:23
fish.vim
375
B
-rw-r--r--
2025-02-16 05:23
flexwiki.vim
1.83
KB
-rw-r--r--
2025-02-16 05:23
fortran.vim
5.14
KB
-rw-r--r--
2025-02-16 05:23
fpcmake.vim
592
B
-rw-r--r--
2025-02-16 05:23
framescript.vim
780
B
-rw-r--r--
2025-02-16 05:23
freebasic.vim
2.52
KB
-rw-r--r--
2025-02-16 05:23
fstab.vim
426
B
-rw-r--r--
2025-02-16 05:23
fvwm.vim
390
B
-rw-r--r--
2025-02-16 05:23
gdb.vim
293
B
-rw-r--r--
2025-02-16 05:23
gdscript.vim
1.59
KB
-rw-r--r--
2025-02-16 05:23
gdshader.vim
309
B
-rw-r--r--
2025-02-16 05:23
gitattributes.vim
278
B
-rw-r--r--
2025-02-16 05:23
gitcommit.vim
1.94
KB
-rw-r--r--
2025-02-16 05:23
gitconfig.vim
376
B
-rw-r--r--
2025-02-16 05:23
gitignore.vim
274
B
-rw-r--r--
2025-02-16 05:23
gitrebase.vim
1.75
KB
-rw-r--r--
2025-02-16 05:23
gitsendemail.vim
157
B
-rw-r--r--
2025-02-16 05:23
go.vim
365
B
-rw-r--r--
2025-02-16 05:23
gpg.vim
433
B
-rw-r--r--
2025-02-16 05:23
gprof.vim
1.09
KB
-rw-r--r--
2025-02-16 05:23
groovy.vim
343
B
-rw-r--r--
2025-02-16 05:23
group.vim
425
B
-rw-r--r--
2025-02-16 05:23
grub.vim
434
B
-rw-r--r--
2025-02-16 05:23
gyp.vim
311
B
-rw-r--r--
2025-02-16 05:23
haml.vim
1.94
KB
-rw-r--r--
2025-02-16 05:23
hamster.vim
1.92
KB
-rw-r--r--
2025-02-16 05:23
hare.vim
672
B
-rw-r--r--
2025-02-16 05:23
haskell.vim
551
B
-rw-r--r--
2025-02-16 05:23
heex.vim
363
B
-rw-r--r--
2025-02-16 05:23
help.vim
471
B
-rw-r--r--
2025-02-16 05:23
hgcommit.vim
363
B
-rw-r--r--
2025-02-16 05:23
hog.vim
1.36
KB
-rw-r--r--
2025-02-16 05:23
hostconf.vim
383
B
-rw-r--r--
2025-02-16 05:23
hostsaccess.vim
436
B
-rw-r--r--
2025-02-16 05:23
html.vim
1.7
KB
-rw-r--r--
2025-02-16 05:23
htmldjango.vim
331
B
-rw-r--r--
2025-02-16 05:23
i3config.vim
333
B
-rw-r--r--
2025-02-16 05:23
icon.vim
958
B
-rw-r--r--
2025-02-16 05:23
indent.vim
487
B
-rw-r--r--
2025-02-16 05:23
initex.vim
1005
B
-rw-r--r--
2025-02-16 05:23
ishd.vim
1.23
KB
-rw-r--r--
2025-02-16 05:23
j.vim
3.46
KB
-rw-r--r--
2025-02-16 05:23
java.vim
1.61
KB
-rw-r--r--
2025-02-16 05:23
javascript.vim
2.54
KB
-rw-r--r--
2025-02-16 05:23
javascriptreact.vim
244
B
-rw-r--r--
2025-02-16 05:23
jproperties.vim
292
B
-rw-r--r--
2025-02-16 05:23
json.vim
360
B
-rw-r--r--
2025-02-16 05:23
jsonc.vim
677
B
-rw-r--r--
2025-02-16 05:23
jsonnet.vim
431
B
-rw-r--r--
2025-02-16 05:23
jsp.vim
1.93
KB
-rw-r--r--
2025-02-16 05:23
julia.vim
3.7
KB
-rw-r--r--
2025-02-16 05:23
kconfig.vim
703
B
-rw-r--r--
2025-02-16 05:23
kwt.vim
851
B
-rw-r--r--
2025-02-16 05:23
ld.vim
470
B
-rw-r--r--
2025-02-16 05:23
less.vim
502
B
-rw-r--r--
2025-02-16 05:23
lftp.vim
434
B
-rw-r--r--
2025-02-16 05:23
libao.vim
440
B
-rw-r--r--
2025-02-16 05:23
limits.vim
436
B
-rw-r--r--
2025-02-16 05:23
liquid.vim
1.85
KB
-rw-r--r--
2025-02-16 05:23
lisp.vim
759
B
-rw-r--r--
2025-02-16 05:23
logcheck.vim
451
B
-rw-r--r--
2025-02-16 05:23
loginaccess.vim
442
B
-rw-r--r--
2025-02-16 05:23
logindefs.vim
440
B
-rw-r--r--
2025-02-16 05:23
logtalk.dict
3.02
KB
-rw-r--r--
2025-02-16 05:23
logtalk.vim
416
B
-rw-r--r--
2025-02-16 05:23
lprolog.vim
1.25
KB
-rw-r--r--
2025-02-16 05:23
lua.vim
1.3
KB
-rw-r--r--
2025-02-16 05:23
lynx.vim
723
B
-rw-r--r--
2025-02-16 05:23
m3build.vim
539
B
-rw-r--r--
2025-02-16 05:23
m3quake.vim
957
B
-rw-r--r--
2025-02-16 05:23
m4.vim
426
B
-rw-r--r--
2025-02-16 05:23
mail.vim
1.36
KB
-rw-r--r--
2025-02-16 05:23
mailaliases.vim
383
B
-rw-r--r--
2025-02-16 05:23
mailcap.vim
434
B
-rw-r--r--
2025-02-16 05:23
make.vim
1.03
KB
-rw-r--r--
2025-02-16 05:23
man.vim
2.11
KB
-rw-r--r--
2025-02-16 05:23
manconf.vim
444
B
-rw-r--r--
2025-02-16 05:23
markdown.vim
2.8
KB
-rw-r--r--
2025-02-16 05:23
masm.vim
1
KB
-rw-r--r--
2025-02-16 05:23
matlab.vim
835
B
-rw-r--r--
2025-02-16 05:23
mermaid.vim
1.69
KB
-rw-r--r--
2025-02-16 05:23
meson.vim
1.12
KB
-rw-r--r--
2025-02-16 05:23
mf.vim
3.46
KB
-rw-r--r--
2025-02-16 05:23
mma.vim
366
B
-rw-r--r--
2025-02-16 05:23
modconf.vim
477
B
-rw-r--r--
2025-02-16 05:23
modula2.vim
1.06
KB
-rw-r--r--
2025-02-16 05:23
modula3.vim
1.16
KB
-rw-r--r--
2025-02-16 05:23
mp.vim
3.8
KB
-rw-r--r--
2025-02-16 05:23
mplayerconf.vim
472
B
-rw-r--r--
2025-02-16 05:23
mrxvtrc.vim
798
B
-rw-r--r--
2025-02-16 05:23
msmessages.vim
1.11
KB
-rw-r--r--
2025-02-16 05:23
muttrc.vim
467
B
-rw-r--r--
2025-02-16 05:23
nanorc.vim
447
B
-rw-r--r--
2025-02-16 05:23
neomuttrc.vim
532
B
-rw-r--r--
2025-02-16 05:23
netrc.vim
428
B
-rw-r--r--
2025-02-16 05:23
nginx.vim
144
B
-rw-r--r--
2025-02-16 05:23
nroff.vim
424
B
-rw-r--r--
2025-02-16 05:23
nsis.vim
1.31
KB
-rw-r--r--
2025-02-16 05:23
objc.vim
296
B
-rw-r--r--
2025-02-16 05:23
obse.vim
1.61
KB
-rw-r--r--
2025-02-16 05:23
ocaml.vim
23.2
KB
-rw-r--r--
2025-02-16 05:23
occam.vim
1.27
KB
-rw-r--r--
2025-02-16 05:23
octave.vim
2.15
KB
-rw-r--r--
2025-02-16 05:23
openvpn.vim
307
B
-rw-r--r--
2025-02-16 05:23
pamconf.vim
433
B
-rw-r--r--
2025-02-16 05:23
pascal.vim
1.51
KB
-rw-r--r--
2025-02-16 05:23
passwd.vim
424
B
-rw-r--r--
2025-02-16 05:23
pbtxt.vim
438
B
-rw-r--r--
2025-02-16 05:23
pdf.vim
2.55
KB
-rw-r--r--
2025-02-16 05:23
perl.vim
3.57
KB
-rw-r--r--
2025-02-16 05:23
php.vim
5.26
KB
-rw-r--r--
2025-02-16 05:23
pinfo.vim
435
B
-rw-r--r--
2025-02-16 05:23
plaintex.vim
1.12
KB
-rw-r--r--
2025-02-16 05:23
pod.vim
2.54
KB
-rw-r--r--
2025-02-16 05:23
poefilter.vim
283
B
-rw-r--r--
2025-02-16 05:23
poke.vim
744
B
-rw-r--r--
2025-02-16 05:23
postscr.vim
1006
B
-rw-r--r--
2025-02-16 05:23
procmail.vim
479
B
-rw-r--r--
2025-02-16 05:23
prolog.vim
440
B
-rw-r--r--
2025-02-16 05:23
protocols.vim
457
B
-rw-r--r--
2025-02-16 05:23
ps1.vim
2.36
KB
-rw-r--r--
2025-02-16 05:23
ps1xml.vim
1009
B
-rw-r--r--
2025-02-16 05:23
pyrex.vim
766
B
-rw-r--r--
2025-02-16 05:23
python.vim
7.78
KB
-rw-r--r--
2025-02-16 05:23
qb64.vim
587
B
-rw-r--r--
2025-02-16 05:23
qf.vim
508
B
-rw-r--r--
2025-02-16 05:23
quake.vim
439
B
-rw-r--r--
2025-02-16 05:23
quarto.vim
25
B
-rw-r--r--
2025-02-16 05:23
r.vim
890
B
-rw-r--r--
2025-02-16 05:23
racc.vim
449
B
-rw-r--r--
2025-02-16 05:23
racket.vim
2.43
KB
-rw-r--r--
2025-02-16 05:23
raku.vim
4.02
KB
-rw-r--r--
2025-02-16 05:23
readline.vim
989
B
-rw-r--r--
2025-02-16 05:23
registry.vim
740
B
-rw-r--r--
2025-02-16 05:23
reva.vim
772
B
-rw-r--r--
2025-02-16 05:23
rhelp.vim
770
B
-rw-r--r--
2025-02-16 05:23
rmd.vim
2.21
KB
-rw-r--r--
2025-02-16 05:23
rnc.vim
431
B
-rw-r--r--
2025-02-16 05:23
rnoweb.vim
1.56
KB
-rw-r--r--
2025-02-16 05:23
routeros.vim
682
B
-rw-r--r--
2025-02-16 05:23
rpl.vim
621
B
-rw-r--r--
2025-02-16 05:23
rrst.vim
1.57
KB
-rw-r--r--
2025-02-16 05:23
rst.vim
1.37
KB
-rw-r--r--
2025-02-16 05:23
ruby.vim
17.23
KB
-rw-r--r--
2025-02-16 05:23
rust.vim
6.42
KB
-rw-r--r--
2025-02-16 05:23
sass.vim
977
B
-rw-r--r--
2025-02-16 05:23
sbt.vim
347
B
-rw-r--r--
2025-02-16 05:23
scala.vim
1.12
KB
-rw-r--r--
2025-02-16 05:23
scdoc.vim
541
B
-rw-r--r--
2025-02-16 05:23
scheme.vim
1.41
KB
-rw-r--r--
2025-02-16 05:23
screen.vim
436
B
-rw-r--r--
2025-02-16 05:23
scss.vim
239
B
-rw-r--r--
2025-02-16 05:23
sensors.vim
455
B
-rw-r--r--
2025-02-16 05:23
services.vim
452
B
-rw-r--r--
2025-02-16 05:23
setserial.vim
439
B
-rw-r--r--
2025-02-16 05:23
sexplib.vim
348
B
-rw-r--r--
2025-02-16 05:23
sgml.vim
1.15
KB
-rw-r--r--
2025-02-16 05:23
sh.vim
1.44
KB
-rw-r--r--
2025-02-16 05:23
sieve.vim
469
B
-rw-r--r--
2025-02-16 05:23
slpconf.vim
477
B
-rw-r--r--
2025-02-16 05:23
slpreg.vim
476
B
-rw-r--r--
2025-02-16 05:23
slpspi.vim
467
B
-rw-r--r--
2025-02-16 05:23
solution.vim
959
B
-rw-r--r--
2025-02-16 05:23
spec.vim
5.68
KB
-rw-r--r--
2025-02-16 05:23
sql.vim
21.11
KB
-rw-r--r--
2025-02-16 05:23
ssa.vim
288
B
-rw-r--r--
2025-02-16 05:23
sshconfig.vim
441
B
-rw-r--r--
2025-02-16 05:23
sudoers.vim
438
B
-rw-r--r--
2025-02-16 05:23
svg.vim
1.14
KB
-rw-r--r--
2025-02-16 05:23
swayconfig.vim
337
B
-rw-r--r--
2025-02-16 05:23
swift.vim
733
B
-rw-r--r--
2025-02-16 05:23
swiftgyb.vim
421
B
-rw-r--r--
2025-02-16 05:23
sysctl.vim
453
B
-rw-r--r--
2025-02-16 05:23
systemd.vim
1.23
KB
-rw-r--r--
2025-02-16 05:23
systemverilog.vim
1.25
KB
-rw-r--r--
2025-02-16 05:23
tap.vim
815
B
-rw-r--r--
2025-02-16 05:23
tcl.vim
1002
B
-rw-r--r--
2025-02-16 05:23
tcsh.vim
961
B
-rw-r--r--
2025-02-16 05:23
terminfo.vim
430
B
-rw-r--r--
2025-02-16 05:23
tex.vim
1.6
KB
-rw-r--r--
2025-02-16 05:23
text.vim
498
B
-rw-r--r--
2025-02-16 05:23
tidy.vim
861
B
-rw-r--r--
2025-02-16 05:23
tmux.vim
372
B
-rw-r--r--
2025-02-16 05:23
toml.vim
464
B
-rw-r--r--
2025-02-16 05:23
treetop.vim
416
B
-rw-r--r--
2025-02-16 05:23
tt2html.vim
513
B
-rw-r--r--
2025-02-16 05:23
typescript.vim
1.18
KB
-rw-r--r--
2025-02-16 05:23
typescriptreact.vim
787
B
-rw-r--r--
2025-02-16 05:23
udevconf.vim
434
B
-rw-r--r--
2025-02-16 05:23
udevperm.vim
432
B
-rw-r--r--
2025-02-16 05:23
udevrules.vim
426
B
-rw-r--r--
2025-02-16 05:23
updatedb.vim
443
B
-rw-r--r--
2025-02-16 05:23
vb.vim
3.39
KB
-rw-r--r--
2025-02-16 05:23
vdf.vim
311
B
-rw-r--r--
2025-02-16 05:23
verilog.vim
1.93
KB
-rw-r--r--
2025-02-16 05:23
vhdl.vim
3.42
KB
-rw-r--r--
2025-02-16 05:23
vim.vim
4.91
KB
-rw-r--r--
2025-02-16 05:23
vroom.vim
924
B
-rw-r--r--
2025-02-16 05:23
vue.vim
667
B
-rw-r--r--
2025-02-16 05:23
wast.vim
470
B
-rw-r--r--
2025-02-16 05:23
wget.vim
737
B
-rw-r--r--
2025-02-16 05:23
wget2.vim
745
B
-rw-r--r--
2025-02-16 05:23
xdefaults.vim
481
B
-rw-r--r--
2025-02-16 05:23
xf86conf.vim
434
B
-rw-r--r--
2025-02-16 05:23
xhtml.vim
1.95
KB
-rw-r--r--
2025-02-16 05:23
xinetd.vim
476
B
-rw-r--r--
2025-02-16 05:23
xml.vim
2.15
KB
-rw-r--r--
2025-02-16 05:23
xmodmap.vim
434
B
-rw-r--r--
2025-02-16 05:23
xs.vim
517
B
-rw-r--r--
2025-02-16 05:23
xsd.vim
1.11
KB
-rw-r--r--
2025-02-16 05:23
xslt.vim
515
B
-rw-r--r--
2025-02-16 05:23
yaml.vim
628
B
-rw-r--r--
2025-02-16 05:23
zig.vim
1.53
KB
-rw-r--r--
2025-02-16 05:23
zimbu.vim
7.28
KB
-rw-r--r--
2025-02-16 05:23
zsh.vim
1.43
KB
-rw-r--r--
2025-02-16 05:23
Save
Rename
" Vim filetype plugin file " Language: generic Changelog file " Maintainer: Martin Florian <marfl@posteo.de> " Previous Maintainer: Nikolai Weibull <now@bitwi.se> " Latest Revision: 2021-10-17 " Variables: " g:changelog_timeformat (deprecated: use g:changelog_dateformat instead) - " description: the timeformat used in ChangeLog entries. " default: "%Y-%m-%d". " g:changelog_dateformat - " description: the format sent to strftime() to generate a date string. " default: "%Y-%m-%d". " g:changelog_username - " description: the username to use in ChangeLog entries " default: try to deduce it from environment variables and system files. " Local Mappings: " <Leader>o - " adds a new changelog entry for the current user for the current date. " Global Mappings: " <Leader>o - " switches to the ChangeLog buffer opened for the current directory, or " opens it in a new buffer if it exists in the current directory. Then " it does the same as the local <Leader>o described above. " Notes: " run 'runtime ftplugin/changelog.vim' to enable the global mapping for " changelog files. " TODO: " should we perhaps open the ChangeLog file even if it doesn't exist already? " Problem is that you might end up with ChangeLog files all over the place. " If 'filetype' isn't "changelog", we must have been to add ChangeLog opener if &filetype == 'changelog' if exists('b:did_ftplugin') finish endif let b:did_ftplugin = 1 let s:cpo_save = &cpo set cpo&vim " Set up the format used for dates. if !exists('g:changelog_dateformat') if exists('g:changelog_timeformat') let g:changelog_dateformat = g:changelog_timeformat else let g:changelog_dateformat = "%Y-%m-%d" endif endif function! s:username() if exists('g:changelog_username') return g:changelog_username elseif $EMAIL != "" return $EMAIL elseif $EMAIL_ADDRESS != "" return $EMAIL_ADDRESS endif let login = s:login() return printf('%s <%s@%s>', s:name(login), login, s:hostname()) endfunction function! s:login() return s:trimmed_system_with_default('whoami', 'unknown') endfunction function! s:trimmed_system_with_default(command, default) return s:first_line(s:system_with_default(a:command, a:default)) endfunction function! s:system_with_default(command, default) let output = system(a:command) if v:shell_error return default endif return output endfunction function! s:first_line(string) return substitute(a:string, '\n.*$', "", "") endfunction function! s:name(login) for name in [s:gecos_name(a:login), $NAME, s:capitalize(a:login)] if name != "" return name endif endfor endfunction function! s:gecos_name(login) for line in s:try_reading_file('/etc/passwd') if line =~ '^' . a:login . ':' return substitute(s:passwd_field(line, 5), '&', s:capitalize(a:login), "") endif endfor return "" endfunction function! s:try_reading_file(path) try return readfile(a:path) catch return [] endtry endfunction function! s:passwd_field(line, field) let fields = split(a:line, ':', 1) if len(fields) < a:field return "" endif return fields[a:field - 1] endfunction function! s:capitalize(word) return toupper(a:word[0]) . strpart(a:word, 1) endfunction function! s:hostname() return s:trimmed_system_with_default('hostname', 'localhost') endfunction " Format used for new date entries. if !exists('g:changelog_new_date_format') let g:changelog_new_date_format = "%d %u\n\n\t* %p%c\n\n" endif " Format used for new entries to current date entry. if !exists('g:changelog_new_entry_format') let g:changelog_new_entry_format = "\t* %p%c" endif " Regular expression used to find a given date entry. if !exists('g:changelog_date_entry_search') let g:changelog_date_entry_search = '^\s*%d\_s*%u' endif " Regular expression used to find the end of a date entry if !exists('g:changelog_date_end_entry_search') let g:changelog_date_end_entry_search = '^\s*$' endif " Substitutes specific items in new date-entry formats and search strings. " Can be done with substitute of course, but unclean, and need \@! then. function! s:substitute_items(str, date, user, prefix) let str = a:str let middles = {'%': '%', 'd': a:date, 'u': a:user, 'p': a:prefix, 'c': '{cursor}'} let i = stridx(str, '%') while i != -1 let inc = 0 if has_key(middles, str[i + 1]) let mid = middles[str[i + 1]] let str = strpart(str, 0, i) . mid . strpart(str, i + 2) let inc = strlen(mid) - 1 endif let i = stridx(str, '%', i + 1 + inc) endwhile return str endfunction " Position the cursor once we've done all the funky substitution. function! s:position_cursor() if search('{cursor}') > 0 let lnum = line('.') let line = getline(lnum) let cursor = stridx(line, '{cursor}') call setline(lnum, substitute(line, '{cursor}', '', '')) endif startinsert endfunction " Internal function to create a new entry in the ChangeLog. function! s:new_changelog_entry(prefix) " Deal with 'paste' option. let save_paste = &paste let &paste = 1 call cursor(1, 1) " Look for an entry for today by our user. let date = strftime(g:changelog_dateformat) let search = s:substitute_items(g:changelog_date_entry_search, date, \ s:username(), a:prefix) if search(search) > 0 " Ok, now we look for the end of the date entry, and add an entry. call cursor(nextnonblank(line('.') + 1), 1) if search(g:changelog_date_end_entry_search, 'W') > 0 let p = (line('.') == line('$')) ? line('.') : line('.') - 1 else let p = line('.') endif let ls = split(s:substitute_items(g:changelog_new_entry_format, '', '', a:prefix), \ '\n') call append(p, ls) call cursor(p + 1, 1) else " Flag for removing empty lines at end of new ChangeLogs. let remove_empty = line('$') == 1 " No entry today, so create a date-user header and insert an entry. let todays_entry = s:substitute_items(g:changelog_new_date_format, \ date, s:username(), a:prefix) " Make sure we have a cursor positioning. if stridx(todays_entry, '{cursor}') == -1 let todays_entry = todays_entry . '{cursor}' endif " Now do the work. call append(0, split(todays_entry, '\n')) " Remove empty lines at end of file. if remove_empty $-/^\s*$/-1,$delete endif " Reposition cursor once we're done. call cursor(1, 1) endif call s:position_cursor() " And reset 'paste' option let &paste = save_paste endfunction let b:undo_ftplugin = "setl com< fo< et< ai<" setlocal comments= setlocal formatoptions+=t setlocal noexpandtab setlocal autoindent if &textwidth == 0 setlocal textwidth=78 let b:undo_ftplugin .= " tw<" endif if !exists("no_plugin_maps") && !exists("no_changelog_maps") && exists(":NewChangelogEntry") != 2 nnoremap <buffer> <silent> <Leader>o :<C-u>call <SID>new_changelog_entry('')<CR> xnoremap <buffer> <silent> <Leader>o :<C-u>call <SID>new_changelog_entry('')<CR> command! -buffer -nargs=0 NewChangelogEntry call s:new_changelog_entry('') let b:undo_ftplugin .= " | sil! exe 'nunmap <buffer> <Leader>o'" . \ " | sil! exe 'vunmap <buffer> <Leader>o'" . \ " | sil! delc NewChangelogEntry" endif let &cpo = s:cpo_save unlet s:cpo_save else let s:cpo_save = &cpo set cpo&vim if !exists("no_plugin_maps") && !exists("no_changelog_maps") " Add the Changelog opening mapping nnoremap <silent> <Leader>o :call <SID>open_changelog()<CR> let b:undo_ftplugin .= " | silent! exe 'nunmap <buffer> <Leader>o" endif function! s:open_changelog() let path = expand('%:p:h') if exists('b:changelog_path') let changelog = b:changelog_path else if exists('b:changelog_name') let name = b:changelog_name else let name = 'ChangeLog' endif while isdirectory(path) let changelog = path . '/' . name if filereadable(changelog) break endif let parent = substitute(path, '/\+[^/]*$', "", "") if path == parent break endif let path = parent endwhile endif if !filereadable(changelog) return endif if exists('b:changelog_entry_prefix') let prefix = call(b:changelog_entry_prefix, []) else let prefix = substitute(strpart(expand('%:p'), strlen(path)), '^/\+', "", "") endif let buf = bufnr(changelog) if buf != -1 if bufwinnr(buf) != -1 execute bufwinnr(buf) . 'wincmd w' else execute 'sbuffer' buf endif else execute 'split' fnameescape(changelog) endif call s:new_changelog_entry(prefix) endfunction let &cpo = s:cpo_save unlet s:cpo_save endif