Changing C Shell History Characters with histchars

The existence of special characters (particularly !) can be a pain; you may often need to type commands that have exclamation points in them, and occasionally need commands with carets (^). These get the C shell confused unless you "quote" them properly. If you use these special characters often, you can choose different ones by setting the histchars variable. histchars is a two-character string; the first character replaces the exclamation point (the "history" character), and the second character replaces the caret (the "modification" character ()). For example:

% set histchars="@#" % ls file* file1 file2 file3 % @@ Repeat previous command (was !!) ls file* file1 file2 file3 % #file#data# Edit previous command (was ^file^data^) ls data* data4 data5

An obvious point: you can set histchars to any characters you like, but it's a good idea to choose characters that you aren't likely to use often on command lines. Two good choices might be # (hash mark) and (comma). [2]

[2] In the C shell, # is a comment character () only in non-interactive shells. Using it as a history character doesn't conflict because history isn't enabled in non-interactive shells.

- ML