Полезная информация

UNIX Power Tools

UNIX Power ToolsSearch this book
Previous: 9.2 Fix a Line Faster with Line-Kill and Word-Erase Chapter 9
Saving Time on the Command Line
Next: 9.4 Use Wildcards to Create Files?

9.3 Reprinting Your Command Line with CTRL-r

You're logged in from home, running a program, and answering a prompt. As you're almost done, modem noise prints xDxD@! on your screen. Where were you? Or you're typing a long command line and a friend interrupts you with write (1.33) to say it's time for lunch. Do you have to press CTRL-u (9.2) and start typing over?

If your system understands the rprnt character (usually set to CTRL-r), you can ask for the command line to be reprinted as it was. In fact, you can use CTRL-r any time you want to know what the system thinks you've typed on the current line - not just when you're interrupted. But this only works in the normal cooked (41.2) input mode; programs like vi that do their own input processing may treat CTRL-r differently. Here's an example:

% egrep '(10394|29433|49401)' /work/symtower/

Message from alison@ruby on ttyp2 at 12:02 ...
how about lunch?
egrep '(10394|29433|49401)' /work/symtower/logs/*

After the interruption, I just pressed CTRL-r. It reprinted the stuff I'd started typing. I finished typing and pressed RETURN to run it.

If you use a shell like the Korn shell that has interactive command editing, you can probably use it to reprint the command line, too. In bash, for example, from vi editing mode, CTRL-r still seems to start an Emacs-style reverse search. So I added this fix to my ~/.inputrc file:

# By default, ^R seems to do a "reverse-i-search",
# even when not editing!  Workaround:
"\C-r": redraw-current-line

- JP

Previous: 9.2 Fix a Line Faster with Line-Kill and Word-Erase UNIX Power ToolsNext: 9.4 Use Wildcards to Create Files?
9.2 Fix a Line Faster with Line-Kill and Word-Erase Book Index9.4 Use Wildcards to Create Files?

The UNIX CD Bookshelf NavigationThe UNIX CD BookshelfUNIX Power ToolsUNIX in a NutshellLearning the vi Editorsed & awkLearning the Korn ShellLearning the UNIX Operating System