.tclshrc

Created by CecilWesterhof.

My .tclshrc

The part about setting the colours uses Get Colour Escape String and probably only works when using XWindows.

# In principal not necessary anymore, but: The cautious seldom err. - Confucius
if {$tcl_interactive} {
    package require tclreadline

    # To be able to enter expressions
    namespace path {::tcl::mathop ::tcl::mathfunc}


    # The output from this proc is used as primary prompt.
    proc ::tclreadline::prompt1 {} {
        set colour1     [getColour redLight]
        set colour2     [getColour white]
        set colour3     [getColour nothing]
        set user        $::tcl_platform(user)
        if {$user eq "root"} {
            set temp    $colour1
            set colour1 $colour2
            set colour2 $temp
        }
        set currentDir  [regsub "^/home/$user" [pwd] ~]
        set dateTime    [clock format [clock seconds] -format "%a, %e %b %T"]
        set host        [lindex [split [info hostname] "."] 0]
        format "%s%s %s\[%s %s@%s:%s\]\n$ %s" \
            $colour1                        \
            tclsh$::tcl_version             \
            $colour2                        \
            $dateTime                       \
            $user                           \
            $host                           \
            $currentDir                     \
            $colour3
    }

    # I do not want unrecognised commands to be executed as shell commands.
    # This minimises the difference between a script and an interactive shell.
    # But this dimisses the usage as command line shell.
    # If you want to use it as a command line shell comment this out.
    set auto_noexec True


    # Start the readline loop
    ::tclreadline::Loop
}

I use a terminal with a black background and a green font. This results in a prompt like:

tclsh8.6 [Wed,  6 Jun 06:58:28 cecil@munus:~]

Where the first part of the prompt is redlight and the second part is white. Except when the user is root: then the first part is white and the second part is redlight.

I can do:

** 3 27

Which returns:

7625597484987

As always: comments, tips and questions are appreciated.