1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
#
# runtime configuration file for sl (http://www.PracticalThought.com/sl/)
#
# 1. override variables
# turn off color
#set COLORIZE 0
# if your terminal supports Unicode characters, use them
set I18N(...) "\u2026"
set SWITCH(title) 1 ;# turn on prettyname
set SWITCH(nosfx) 1 ;# once you know it's audio or video, don't care what arcane file format it is
set SWITCH(prefix) 3 ;# turn on prefix elision
# if your terminal supports 256 colors, these may be preferable
# For other color codes, see colortest (http://www.vim.org/scripts/script.php?script_id=1349).
array set STYLE {
file ";38;5;28" dir ";38;5;20"
relrec,file ";38;5;202" relrec,dir ";38;5;202"
warning ";38;5;196"
post ";38;5;232"
}
# add names to highlight or not show at all
#append NOTABLE {|TODO$|notes|TOSORT}
#append IGNORE {|^(tmp|old|obsolete|ignore|bkup)$}
#set K 1000; # set K/M/G/T size suffixes to base 10 vs base 2
# set TIME(recent) [expr $TIME(DAY)*2]
#set COLSEP 4
#set NAMEMIN 1000; # turn off name shortening
# see supporting files like C .h and .o
#set SWITCH(ignore) 2
# consider .xml a document, not data
#set EQ(.xml) doc
# some Linux file systems do not update atime, so turn off to avoid stale information
#set SWITCH(relread) 0
# L10N
set I18N(file) fecho
# 2. per file hook to override properties
# startup file gets tuple for each file fully loaded with data, just before display, to modify as he pleases
proc perfile {dir tuple} {
global EQ
# a. unpack
lassign $tuple tail sfx type group sortkey style pre display warning post size mtime atime
# b. your changes here
# example: negate dir reclassification
if {$type=="directory"} {set group "dir"}
# example: show #lines of selected file
if {$tail=="sl" && $type=="file"} {
append post " [lindex [exec wc sl] 0]l"
# example: on Ant build.xml, show date and number of last build (<buildnumber /> task)
} elseif {$tail=="build.xml" && [file readable [set f "$dir/build.number"]]} {
set fid [open $f]; set txt [read $fid]; close $fid
#puts $txt
regexp {build.number=(\d+)} $txt all num
if {$num!=""} {append post " #$num"}
append post "[reltime [file mtime $f]]"
}
# example: auto search for filename matching regexp and highlight (show in black on magenta background)
#if {[regexp -nocase {license|password} $tail]} {set style ";30;46"}
# example: local naming convention that puts date at start of file in form yyyymmdd-filename,
# but problematic for sorting by Tcl lsort -dictionary, so reformat
regsub {^(19|20)(\d\d)(\d\d)(\d\d\D)} $sortkey {\1\2.\3.\4} sortkey
regsub {^(19|20)(\d\d)(\d\d\D)} $sortkey {\1\2.\3} sortkey
# c. repack
return [list $tail $sfx $type $group $sortkey $style $pre $display $warning $post $size $mtime $atime]
}
# 3. redefine procs
#proc vc {} ...
# turn off series construction
#set SWITCH(series) 0
# change how names are shortened
#proc shorten {txt w} {}
# classify dir as plain dir, not audio/video and not separate uppercase/lowercase
#proc classifydir {dir tail l} {return "dir"}
# change evaluation of what constitutes a distinctive file for -only
#proc distinctive {tuple} {return 1}
|