Dotfiles.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
2.2 KiB

12 years ago
#!/usr/bin/tclsh
#
# ~/.tclshrc
#
# Изменён: Сб 24 авг 2013 22:52:58
#
package require tclreadline
#------------------------------------------------------------------
interp alias {} :q {} exit 0
#------------------------------------------------------------------
namespace eval tclreadline {
#PROMPT - вывод текущего времени и количества выполненных команд
proc prompt1 {} {
return "\033\[1;33m\[[clock format [clock seconds] \
-format %H:%M:%S]\]\033\[1;36m % \033\[00m"
}
#PROMPT2
proc prompt2 {} {
return "\[[incr cmd]\] > "
}
}
#Настройка цветов
array set color {
Reset "\033\[00m"
Blue "\033\[1;36m"
Yellow "\033\[1;33m"
Red "\033\[1;31m"
Green "\033\[1;32m"
}
#------------------------------------------------------------------
#Список пакетов
proc lspkg {{pattern *}} {
eval [package unknown] Tcl [package provide Tcl]
foreach package [lsort [package names]] {
if {[string match -nocase $pattern* $package]} {
foreach version [package versions $package] {
set present [expr {[string compare $version \
[package provide $package]] ? " " : "+" }]
set ifneeded [string replace [string trim \
[string map {"\n" " " "\t" " "} [package \
ifneeded $package $version]]] 50 end "..."]
puts [format "%1s%-40s\t%-20s\t%-55s" \
"$present" "$::color(Blue)$package" \
"$::color(Yellow)$version$::color(Reset)" \
"$ifneeded"]
}
}
}
}
#Список Tk-виджетов
proc lstk {{pattern *}} {
package require Tk
set tkCommands [lsort [info commands "::tk::$pattern*"]]
set ttkCommands [lsort [info commands "::ttk::$pattern*"]]
set allCommands [concat $tkCommands $ttkCommands]
foreach cmd $allCommands {
regsub "::tk::" $cmd "$::color(Yellow)tk::$::color(Blue)" cmd
regsub "::ttk::" $cmd "$::color(Green)ttk::$::color(Blue)" cmd
puts "$cmd$::color(Reset)"
}
}
#------------------------------------------------------------------
puts "$color(Blue)#Tcl v[info patchlevel] ([info library])\n"
#Загрузка файла истории
tclreadline::Loop [file join $::env(SHELLRC) var shell tclsh.history]
#------------------------------------------------------------------