Content-Type: multipart/related; start=; boundary=----------a9APxZLKqhodIXhMP7ywl1 Content-Location: http://www.bigsmoke.us/readline/shortcuts Subject: =?utf-8?Q?Readline=20keyboard=20shortcuts=20for=20bash,=20bc,=20ftp,=20gnuplot,=20gpg,=20ksh,=20mysql,=20psql,=20python,=20smbclient,=20xmllint=20and=20zsh?= MIME-Version: 1.0 ------------a9APxZLKqhodIXhMP7ywl1 Content-Disposition: inline; filename=shortcuts.xml Content-Type: text/xml; name=shortcuts.xml Content-ID: Content-Location: file://localhost/home/felix/Download/shortcuts.xml Content-Transfer-Encoding: 8bit Readline keyboard shortcuts for bash, bc, ftp, gnuplot, gpg, ksh, mysql, psql, python, smbclient, xmllint and zsh

Readline shortcuts

GNU Readline is the library used to make advanced command-line wizardry convenient and conistent across a multitude of command-line applications. These programs include bash, bc, ftp, gnuplot, gpg, ksh, mysql, psql, python, smbclient, xmllint and zsh.

The cheatsheet at the right contains a summary of many of the useful line editing command shortcuts which are available in all applications that use libreadline.

See the documentation on the Readline website for even more shortcuts with more elaborate descriptions.

rowan@bigsmoke.us

Emacs keys Action Scope Direction/Place
Moving around Ctrl-b Move the cursor one character ⇦ to the left
Ctrl-f Move the cursor one character ⇨ to the right
Alt-b Move the cursor one word ⇦ to the left
Alt-f Move the cursor one word ⇨ to the right
Ctrl-a Move the cursor ⇤ to the start of the line
Ctrl-e Move the cursor ⇥ to the end of the line
Ctrl-x-x Move the cursor ⇤⇥ to the start, and to the end again
Cut, copy
and paste
Backspace Delete the character ⇦ to the left of the cursor
DEL
Ctrl-d
Delete the character underneath the cursor
Ctrl-u Delete everything ⇤ from the cursor back to the line start
Ctrl-k Delete everything ⇥ from the cursor to the end of the line
Alt-d Delete word ⇨ untill before the next word boundary
Ctrl-w Delete word ⇦ untill after the previous word boundary
Ctrl-y Yank/Paste prev. killed text at the cursor position
Alt-y Yank/Paste prev. prev. killed text at the cursor position
History Ctrl-p Move in history one line ⇧ before this line
Ctrl-n Move in history one line ⇩ after this line
Alt-> Move in history all the lines ⇩ to the line currently being entered
Ctrl-r Incrementally search the line history ⇧ backwardly
Ctrl-s Incrementally search the line history ⇩ forwardly
Ctrl-J End an incremental search
Ctrl-G Abort an incremental search and restore the original line
Alt-Ctrl-y Yank/Paste arg. 1 of prev. cmnd at the cursor position
Alt-.
Alt-_
Yank/Paste last arg of prev. cmnd at the cursor position
Undo Ctrl-_
Ctrl-x
Ctrl-u
Undo the last editing command; you can undo all the way back to an empty line
Alt-r Undo all changes made to this line
Ctrl-l Clear the screen, reprinting the current line at the top
Ctrl-l Clear the screen, reprinting the current line at the top
Completion TAB Auto-complete a name
Alt-/ Auto-complete a name (without smart completion)
Alt-? List the possible completions of the preceeding text
Alt-* Insert all possible completions of the preceeding text
Transpose Ctrl-t Transpose/drag char. before the cursor ↷ over the character at the cursor
Alt-t Transpose/drag word before the cursor ↷ over the word at/after the cursor
------------a9APxZLKqhodIXhMP7ywl1 Content-Disposition: inline Content-Type: text/css Content-Location: file://localhost/home/felix/Download/screen.css Content-Transfer-Encoding: 8bit body { font-family: sans-serif; } h1, h2, h3, h4, h5, h6 { font-family: serif; } h2, h3, h4, h5, h6 { margin-bottom: -.2em; } /* A centered block */ .centered { /* Center the block */ margin-left: auto; margin-right: auto; /* Make the block somewhat smaller than most browser windows. Otherwise, there'd be nothing to center.*/ max-width: 600px; } .poetry { /* Poetry always looks ugly in sans-serif */ font-family: serif; } /* BigSmoke Branding */ body.branded, body.has_header { padding-top: 60px; } #header { z-index: 30; position: absolute; top: 0; left: 0; width: 100%; height: 60px; background: url('/img/banner-bw-1x60.png') repeat-x top; } /* #header * { opacity: 0.2; } #header:hover * { opacity: 1.0; } body.index #header * { opacity: 1.0; } */ #avatar { border: 1px solid #ccf; height: 50px; position: absolute; display: block; top: 2px; right: 2px; text-decoration: none; } body > #header, body > #header #avatar { position: fixed; } /* #header img.avatar { opacity: 0.6; }*/ body.has_sidebar { margin-right: 40ex; } #sidebar { z-index: 20; background-color: white; color: inherit; position: absolute; position: fixed; opacity: .9; top: 60px; right: 0; border: none; width: 40ex; height: 100%; padding-left: 1ex; padding-right: .5ex; text-align: left; font-size: small; } /* body.index > #sidebar, #sidebar:hover { opacity: .9; } */ /* A guide within a sidebar */ #sidebar .guide { margin-top: 1em; border-top: 1px solid #cdc; background: url('/img/corner-top-right.png') top right no-repeat; } /* A guide on the index page */ .index .guide { margin-top: 1em; margin-right: 1em; float: left; width: 40ex; border-top: 1px solid #cdc; background: url('/img/corner-top-right.png') top right no-repeat; font-size: small; } .guide h2 { margin: 0; color: #21746a; font-family: sans-serif; font-size: inherit; font-weight: bold; } .guide a:link, .guide a:visited { text-decoration: none; } .guide a:link { color: #a1440a; } .guide a:hover, .guide a:visited { color: #21746a; } .guide:hover a { border-bottom: 1px dotted; } .guide:hover a:hover { border-bottom: 1px solid; } body.branded #footer { position: relative; } #index .keywords { font-size: small; } #index .highlight { font-weight: bold; } #index .keyword.highlight { background-color: #ffc; } #index dl a.keyword { text-decoration: none; color: inherit; } #index dl a.keyword:hover { } table { border-collapse: collapse; font-size: 95%; } th { background-color: #eee; } th[scope=row] { border-right: 1px solid #eee; text-align: right; } th, td { border-top: 1px solid #eee; border-bottom: 1px solid #eee; padding: 0 1ex; } th.invisible, td.invisible { border-top: none; border-bottom: none; visibility: hide; } .geek-code, .hacker-key { font-size: small; } abbr { cursor: help; } ------------a9APxZLKqhodIXhMP7ywl1 Content-Disposition: inline Content-Type: text/css Content-Location: file://localhost/home/felix/Download/print.css Content-Transfer-Encoding: 8bit body { background-color: white; font-family: serif; color: black; } .poetry { font-family: fantasy, serif; } hr { margin: 1em 0; border-style: solid; border-color: black; border-width: 1pt 0 0 0; height: 0; } body > #header { display: none; } .ads, #bottom-ads iframe { display: none; } q { quotes: "\201C" "\201D" "\2018" "\2019"; } a { background-color: inherit; text-decoration: none; color: inherit; } h2, h3, h4, h5, h6 { page-break-after: avoid; } ------------a9APxZLKqhodIXhMP7ywl1 Content-Disposition: inline; filename=style.css Content-Type: text/css; name=style.css Content-Location: file://localhost/home/felix/Download/style.css Content-Transfer-Encoding: 8bit @import url('screen.css') screen; @import url('print.css') print; /* The following styles are for all media */ /* For poetry, it's usually nicest to center the text within the block. */ .centered.poetry { /* Center the text within the block */ text-align: center; } /* For pages with very short content, it's nicest to vertically align the content to the middle as well. */ .short.centered { /* Center this block vertically */ margin-top: auto; margin-bottom: auto; } .center.img { margin: 0 auto; } body { } hr.space { border: none; margin: 1.5em 0; } img { border: none; } .numbered-headings { counter-reset: h2 h3 h4 h5 h6; } .numbered-headings h2 { counter-increment: h2; counter-reset: h3; } .numbered-headings h3 { counter-increment: h3; counter-reset: h4; } .numbered-headings h4 { counter-increment: h4; counter-reset: h5; } .numbered-headings h2:before { content: counter(h2) ". "; } .numbered-headings h3:before { content: counter(h2) "." counter(h3) ". "; } .numbered-headings h4:before { content: counter(h2) "." counter(h3) "." counter(h4) ". "; } ------------a9APxZLKqhodIXhMP7ywl1--