[Chapter 11] 11.15 Changing C Shell History Characters with histchars
Author: Jerry Peek, Tim O'Reilly & Mike Loukides
Date: 1998-08-04T21:36:20Z

#

| Chapter 11 The Lessons of History |

## 11.15 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 (11.5)). 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 (44.2) only in non-interactive shells. Using it as a history character doesn't conflict because history isn't enabled in non-interactive shells.

- ML

11.14 More Ways to Do Interactive History Editing |  | 11.16 Instead of Changing History Characters