Feed on
Posts
Comments

If you are like me, spending a lot of time in the command line, you might be looking for ways to edit the command lines more efficiently. Many interactive UNIX programs implement line editing by using GNU’s readline library. This means that all these programs, which include the different shells, Python and many others, offer the same set of keyboard shortcuts. Mastering these shortcuts is worthwhile, since you’ll be able to use them over and over again in many places.

Moving around quickly

The most basic part is to move to the place you want to edit quickly. Here are the most useful shortcuts:

  • Ctrl-a - Move to the start of the line.
  • Ctrl-e - Move to the end of the line.
  • Alt-f - Move forward a word.
  • Ctrl-f - Move forward a char.
  • Alt-b - Move backward a word.
  • Ctrl-b - Move backward a char.

Another very common shortcut is Ctrl-L which clears the screen and reprints the current line at the top. This is useful if you are organizing your movies library and somebody enters the room.

Cut, Paste and Undo

Here is the list of most useful shortcuts for deleting text:

  • Ctrl-w - Deletes from cursor position to the previous whitespace.
  • Ctrl-k - Deletes from cursor position to the end of the line.
  • Ctrl-d - Deletes from current character.
  • Ctrl-u - Deletes from whole line.
  • Alt-d - Deletes from cursor position to the end of the current word.
  • Alt-DEL - Deletes from cursor position to the start of the current word.

The deleted text can be pasted (yanked) using Ctrl-y. You can use Ctrl-_ or Ctrl-X-U to undo the last editing command.

Summary

This covers the essentials. On the next parts of this series we’ll explore the more powerful abilities of readline. Feel free to leave here questions, suggestions, or perhaps your own tips and tricks.

RSS feed | Trackback URI

5 Comments »

Comment by Kiki
2006-12-14 04:16:06

But I’m a screen user, oh noes! ctrl-a won’t work. :(

 
Comment by Shlomi Fish
2006-12-14 04:41:26

To Kiki: see this post to Linux-IL about how to change the screen command character. And you can always type Ctrl+A; A to get an actual Ctrl+A or alternatively use the “Home” key.

 
Comment by Shlomi Fish
2006-12-14 04:51:30

I’ve collected my own tips for using readline in bash from the bash man page myself. Most of them are somewhat more advanced than the ones presented here.

 
Comment by Amir
2006-12-14 06:31:15

Thanks.
I needed it but didn’t have the time to look (yet).

 
Comment by Ira
2006-12-14 11:09:23

I changed my screen escape character to C-_ because I thought it’s about the only combination that has no other special meaning, and now I see the long fingers of the FOSS world took hold of it before me… arrgh! :-)

 
Name (required)
E-mail (required - never shown publicly)
URI
How much is two plus four? (required, to check if you are human)
Subscribe to comments via email
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> in your comment.