Hot answers tagged history
In addition to assigning to In, the Mathematica main loop assigns the input to InString before it is parsed as an expression. You can then retrieve InString and parse the result with ToExpression, wrapping it in Defer to prevent it from evaluating immediately: In:= ToExpression[InString, StandardForm, Defer] Out= Round[SessionTime] You can ...
$Epilog := PutAppend[DateList, DownValues[In], "log.log"] will do what you want. It assumes the log file exists and will append to it. You could also place the PutAppend in the file end.m, where $Epilog reads from upon exit.
The input is stored as a downvalue in the definition of In. If you've only typed a few expressions, run Definition@In which prints a list of all the values associated with the symbol In, and copy from the line In := Round[SessionTime]. But if you've typed hundreds of expressions, or expressions whose plain-text representations are long (like ...
In an attempt to reproduce this issue, I began with $Version (* "10.1.0 for Microsoft Windows (64-bit) (March 24, 2015)" *) I then typed x(*y*) and deleted by hand the left asterisk, right asterisk, left parenthesis, and right parenthesis in turn. xy Next I began Edit>Undo until I reached x (y*) At that point, Undo was not grayed out, so the ...
If I use menu Edit > Un/Comment Selection (Windows: Alt+/) the operation can be reversed with the Undo command. This is faster anyway and prevents broken syntax and syntax highlighting that occurs when you remove half a comment marker. (I post this as an answer because I hope it is pragmatically just that.)
This is a little raw but something along the lines of this should work... stream = OpenWrite["C:\\Temp\\KitchenSink.math"]; $Pre = (Write[stream, #]; #) &; $Post = (Write[stream, #]; #) &; When finished... Clear[$Pre, $Post]
Only top voted, non community-wiki answers of a minimum length are eligible