<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:05:36 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[SERVER-4312] Add &quot;key&quot; missing readline/bash (EMACS-style) command line features to the shell</title>
                <link>https://jira.mongodb.org/browse/SERVER-4312</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;I&apos;m folding all of the existing and future requests for readline-style (bash-style) command line editing features into a single ticket so that we can do more effective estimation and planning.  So, requests for ctrl-Z job control, ctrl-R history search, ctrl-K kill and ctrl-Y yank and everything like it is all here.  I&apos;ll call this a &quot;bug&quot; since it worked in version 1.8 (when linked with readline) though it&apos;s basically a &quot;feature&quot; for linenoise.&lt;/p&gt;</description>
                <environment>All</environment>
        <key id="25067">SERVER-4312</key>
            <summary>Add &quot;key&quot; missing readline/bash (EMACS-style) command line features to the shell</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="tad">Tad Marshall</assignee>
                                    <reporter username="tad">Tad Marshall</reporter>
                        <labels>
                            <label>rn</label>
                    </labels>
                <created>Thu, 17 Nov 2011 19:49:48 +0000</created>
                <updated>Mon, 11 Jul 2016 18:35:35 +0000</updated>
                            <resolved>Thu, 8 Mar 2012 13:21:16 +0000</resolved>
                                                    <fixVersion>2.1.1</fixVersion>
                                    <component>Shell</component>
                                        <votes>7</votes>
                                    <watches>8</watches>
                                                                                                                <comments>
                            <comment id="97743" author="auto" created="Mon, 12 Mar 2012 10:07:04 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;tadmarshall&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; Simplify previous &quot;kill buffer&quot; fix&lt;/p&gt;

&lt;p&gt;Just skip the join code when no previous kill buffer exists,&lt;br/&gt;
simpler code with less duplication.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/cd54317107d9acf63dc5de6c466990ca9d234462&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/cd54317107d9acf63dc5de6c466990ca9d234462&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="97682" author="auto" created="Mon, 12 Mar 2012 02:14:26 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;tadmarshall&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; Don&apos;t read kill buffer that isn&apos;t there&lt;/p&gt;

&lt;p&gt;If your first &quot;kill&quot; operation is for zero characters, the initial&lt;br/&gt;
kill ring buffer isn&apos;t saved.  If this is immediately followed by&lt;br/&gt;
a kill operation that does kill text, the code was trying to join&lt;br/&gt;
the two kills, but the first one never got a buffer.  Only join&lt;br/&gt;
text when there is something to join ... if no buffer to join with,&lt;br/&gt;
just store the new text in a slot by itself.  Most visible in debug&lt;br/&gt;
builds, but a bug in any build.&lt;br/&gt;
Steps to reproduce:&lt;br/&gt;
1) Start shell&lt;br/&gt;
2) Type &quot;a&quot;&lt;br/&gt;
3) Press Ctrl-K&lt;br/&gt;
4) Press Ctrl-U&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/3a59385162569f7d2dbf0aec0bfb03c52ace706c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/3a59385162569f7d2dbf0aec0bfb03c52ace706c&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="96773" author="samk" created="Thu, 8 Mar 2012 15:21:09 +0000"  >&lt;p&gt;Linking to existing documentation issue (&lt;a href=&quot;https://jira.mongodb.org/browse/DOCS-121&quot; title=&quot;Document the mongo shell&amp;#39;s line-editing features&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DOCS-121&quot;&gt;&lt;del&gt;DOCS-121&lt;/del&gt;&lt;/a&gt;) and removing documentation needed flag. &lt;/p&gt;</comment>
                            <comment id="96732" author="tad" created="Thu, 8 Mar 2012 13:21:16 +0000"  >&lt;p&gt;This was essentially finished for 2.1.0 as shipped, but I held the ticket open in case additional features were written.  A couple of 2.0 features were found to have been clobbered by my changes; the ones we know about are fixed in this version.  I&apos;m resolving this ticket as having achieved the goal of &quot;key&quot; missing readline features restored; we can reopen it or open new tickets for bugs or remaining missing features.&lt;/p&gt;</comment>
                            <comment id="96708" author="auto" created="Thu, 8 Mar 2012 11:04:55 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;tadmarshall&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; Fix two display bugs in linenoise&lt;/p&gt;

&lt;p&gt;I broke the fetching of the screen width with some code rearrangement&lt;br/&gt;
weeks ago and finally dug into it.  Can&apos;t use console_out to fetch&lt;br/&gt;
screen width because it is set in enableRawMode() which is (now)&lt;br/&gt;
called later.  This caused bizarre behavior where the cursor would&lt;br/&gt;
walk up the screen as you recalled previous history ... I thought this&lt;br/&gt;
was UTF-8 related, it isn&apos;t.  Second bug is trying to refresh the line&lt;br/&gt;
after displaying &quot;Display all %d possibilities?&quot; in tab completion:&lt;br/&gt;
don&apos;t do it in that case, we already fixed the line and moved to the&lt;br/&gt;
next one.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/f84147cf3fa29aea65529ac5cce3c56678530a48&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/f84147cf3fa29aea65529ac5cce3c56678530a48&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="95128" author="tad" created="Sun, 4 Mar 2012 23:04:15 +0000"  >&lt;p&gt;This is the list for version 2.1.0 of the mongo shell.  If this doesn&apos;t include something that is wanted, it may be best to submit a new ticket asking for it ... I think that the &quot;key&quot; features are now covered.&lt;/p&gt;

&lt;p&gt;EMACS-style shell editing keystrokes/commands&lt;/p&gt;

&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;Keystroke&lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;readline function name (or invented name)&lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;Works in Mongo 2.0?&lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;Works in Mongo 2.1.0?&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-A&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;beginning-of-line&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-B&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;backward-char&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-D&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;delete-char (or exit shell)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes (needs work)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-E&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;end-of-line&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-F&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;forward-char&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-G&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;abort&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-H &lt;span class=&quot;error&quot;&gt;&amp;#91;Backspace&amp;#93;&lt;/span&gt;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;backward-delete-char&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-I &lt;span class=&quot;error&quot;&gt;&amp;#91;Tab&amp;#93;&lt;/span&gt;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;complete&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes (needs work)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-J&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;accept-line&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-K&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;kill-line&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (deletes instead)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-L&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;clear-screen&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-M&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;accept-line&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-N&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;next-history&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-O&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&quot;Return-then-next-history&quot;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-P&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;previous-history&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-Q&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;quoted-insert&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-R&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;reverse-search-history&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-S&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;forward-search-history&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-T&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;transpose-chars&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes (needs work)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-U&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;unix-line-discard&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (deletes instead)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-V&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;quoted-insert&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-W&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;unix-word-rubout&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-X (&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;start-kbd-macro&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-X )&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;end-kbd-macro&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-X e&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;call-last-kbd-macro&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-X Ctrl-U&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;undo&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-Y&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;yank&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-Z&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Suspend (job control)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes (Linux)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-_ (underscore)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;undo&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Del&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;delete-char&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-B&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;backward-word&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-C&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;capitalize-word&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-D&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;kill-word&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-F&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;forward-word&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-Backspace&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;backward-kill-word&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-L&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;downcase-word&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-N&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;non-incremental-forward-search-history&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-P&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;non-incremental-reverse-search-history&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-R&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;revert-line&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-T&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;transpose-words&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-U&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;upcase-word&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-Y&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;yank-pop&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-Ctrl-Y&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;yank-nth-arg&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-. (period)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;yank-last-arg&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-_ (underscore)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;yank-last-arg&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-&amp;lt;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;beginning-of-history&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-&amp;gt;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;end-of-history&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-?&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;possible-completions&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-backslash&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;delete-horizontal-space&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-=&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;possible-completions&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-*&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;insert-completions&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-&amp;lt;digits&amp;gt;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;digit-argument&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Left-arrow&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;backward-char&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Right-arrow&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;forward-char&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Up-arrow&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;previous-history&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Down-arrow&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;next-history&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Home&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;beginning-of-line&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;End&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;end-of-line&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-left-arrow&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;backward-word&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-right-arrow&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;forward-word&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-left-arrow (Emacs)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;backward-word&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-right-arrow (Emacs)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;forward-word&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
</comment>
                            <comment id="78001" author="auto" created="Thu, 5 Jan 2012 22:52:17 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; add Meta-&amp;lt; and Meta-&amp;gt;, improve history logic&lt;/p&gt;

&lt;p&gt;Add support for the Meta-&amp;lt; (beginning-of-history) and Meta-&amp;gt;&lt;br/&gt;
(end-of-history) keystrokes.  Improve the handling of unsaved&lt;br/&gt;
input on the &quot;current&quot; (new) command line when beginning to&lt;br/&gt;
move through history with ctrl-R, up-arrow, Meta-&amp;lt;, etc.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/717c7a2d79272f03f73f3214fbb61b59e22836ee&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/717c7a2d79272f03f73f3214fbb61b59e22836ee&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="77691" author="auto" created="Thu, 5 Jan 2012 00:33:05 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; use PromptBase instead of PromptInfo in calls&lt;/p&gt;

&lt;p&gt;The called code only references the base members, so it should&lt;br/&gt;
reference the base class, not the derived class; mostly for&lt;br/&gt;
consistency and possibly future flexibility.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/f720eb38b1372564d9fc01bde3b348d26feed04e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/f720eb38b1372564d9fc01bde3b348d26feed04e&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="77690" author="auto" created="Thu, 5 Jan 2012 00:23:39 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; add paging for long command completion lists&lt;/p&gt;

&lt;p&gt;If the list of displayed command completion possibilities is more&lt;br/&gt;
than one screen, display &quot;-&lt;del&gt;More&lt;/del&gt;-&quot; and wait for a keystroke to&lt;br/&gt;
display more.  Display one additional line on Return or Newline,&lt;br/&gt;
display another screenful on space, y or Y, stop the list on n, N,&lt;br/&gt;
q or Q, and stop the list after showing ^C on ctrl-C.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/813420ded1be8ec4168e242522507f889614db31&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/813420ded1be8ec4168e242522507f889614db31&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="77281" author="auto" created="Tue, 3 Jan 2012 19:38:07 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; rewrite tab completion to work like readline&lt;/p&gt;

&lt;p&gt;Replace the old logic for rotating through completion possibilities&lt;br/&gt;
with logic that mimics readline&apos;s behavior.  We now only complete&lt;br/&gt;
the portion that is unambiguous (the same in all possibilities) and&lt;br/&gt;
show a list of matches if tab is hit again after a failure to&lt;br/&gt;
complete a match.  If the number of matches is over 100, we ask&lt;br/&gt;
before displaying the list.  Still to come &amp;#8211; paging code to pause&lt;br/&gt;
after displaying a screen&apos;s worth of matches.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e7fe1c16621ae483629c5663cb42da1e02d32934&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e7fe1c16621ae483629c5663cb42da1e02d32934&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="75568" author="auto" created="Thu, 22 Dec 2011 22:19:23 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; fix logic for meta-C (capitalize)&lt;/p&gt;

&lt;p&gt;My logic for capitalizing didn&apos;t match readline, now it does.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/504b8c51ca05c707dd60aa89d4f78358abb2a066&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/504b8c51ca05c707dd60aa89d4f78358abb2a066&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="75560" author="auto" created="Thu, 22 Dec 2011 21:37:15 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; add meta-C, meta-L and meta-U to mongo shell&lt;/p&gt;

&lt;p&gt;Added meta-C (capitalize word), meta-L (lowercase word) and&lt;br/&gt;
meta-U (uppercase word) readline features to the shell.  Changed&lt;br/&gt;
the InputBuffer struct to a class, most members are now private.&lt;br/&gt;
Merged some common code for ctrl-R and ctrl-S keystrokes when&lt;br/&gt;
already in search mode.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/6dbda206551284b242c768a122243e3dcf897cc1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/6dbda206551284b242c768a122243e3dcf897cc1&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="75040" author="auto" created="Wed, 21 Dec 2011 15:37:30 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; consolidate some code into a class/struct&lt;/p&gt;

&lt;p&gt;Added new InputBuffer struct to hold the buf, len and pos&lt;br/&gt;
variables that were being passed to everything, moved some&lt;br/&gt;
code into methods in that struct.  Folded linenoiseRaw into&lt;br/&gt;
linenoise.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e65a90d143c8155a5a8dfb4f34c2152e638e39c5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e65a90d143c8155a5a8dfb4f34c2152e638e39c5&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="74695" author="auto" created="Tue, 20 Dec 2011 14:20:55 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; fix ctrl-L on Linux with 80 character prompt&lt;/p&gt;

&lt;p&gt;Linux doesn&apos;t advance the cursor to the next line after&lt;br/&gt;
writing in column 80, so we need to do it ourselves.  Probably&lt;br/&gt;
time for common code so the same fix isn&apos;t in multiple places.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2baf1bcf679df8e72b6d54beff19f9b40972ee4f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2baf1bcf679df8e72b6d54beff19f9b40972ee4f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="74261" author="auto" created="Sun, 18 Dec 2011 23:02:21 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; add incremental history search to the shell&lt;/p&gt;

&lt;p&gt;Added ctrl-R and ctrl-S to search history.  It&apos;s a pretty close&lt;br/&gt;
clone of readline but not quite exact and there may be bugs&lt;br/&gt;
and/or rough spots.  Probably some fine tuning to come.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/706b9e89a8a466111929330be449e250253a7dc8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/706b9e89a8a466111929330be449e250253a7dc8&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="72568" author="auto" created="Mon, 12 Dec 2011 21:02:49 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; implement kill ring for mongo shell&lt;/p&gt;

&lt;p&gt;Add code to enable Meta-Y to rotate through killed text.  Ring size&lt;br/&gt;
is set at 10 right now, but it&apos;s a compile-time constant and could&lt;br/&gt;
be changed if desired.  10 is what readline defaults to.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/6ebb2c50b3ce9a82fec7be921dd7996c7bd28545&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/6ebb2c50b3ce9a82fec7be921dd7996c7bd28545&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="72399" author="auto" created="Mon, 12 Dec 2011 13:01:15 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; fix Alt+Backspace on xterm&lt;/p&gt;

&lt;p&gt;Have to special-case Alt+Backspace on xterm.  The &quot;normal&quot;&lt;br/&gt;
processing was giving us Meta-_ which is a different (and&lt;br/&gt;
not yet implemented) function.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/81c688139fc335d57b5b2f64e5deb68e0cffcae9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/81c688139fc335d57b5b2f64e5deb68e0cffcae9&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="72306" author="auto" created="Mon, 12 Dec 2011 03:24:05 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; implement kill/yank in mongo shell&lt;/p&gt;

&lt;p&gt;A single kill buffer is now working in the mongo shell.  All of&lt;br/&gt;
the commands that are supposed to add text to the kill buffer now&lt;br/&gt;
do so, and accumulate text properly with repeated kills in either&lt;br/&gt;
direction (to the left or to the right) or both.  No Meta-Y (rotate&lt;br/&gt;
kill buffer, &quot;yank-pop&quot;) feature in this checkin, so it&apos;s not a&lt;br/&gt;
kill ring yet.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/59b8d78a690bfa72b9faa0cd76857ea2ed7f094b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/59b8d78a690bfa72b9faa0cd76857ea2ed7f094b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="72275" author="tad" created="Sun, 11 Dec 2011 22:27:56 +0000"  >&lt;p&gt;From doing more testing and online reading, I can&apos;t demonstrate some of the features on my list (which came largely from &quot;Learning the bash Shell&quot; by Cameron Newham &amp;amp; Bill Rosenblatt) but there are other features that aren&apos;t on the list above that work.  readline (and bash and the mongo shell version 1.8) accept Ctrl-_ to undo a single change, and this can be repeated to undo multiple changes.  So, you can press the Backspace key 20 times (which deletes text, does not kill it, so that it could be yanked), and then press Ctrl-_ repeatedly to bring back all of the deleted text.  This works under Gnome Terminal from Ubuntu 11.10 with both bash and mongo 1.8.2.  readline also supports numeric arguments for &quot;commands&quot;, including the command of inserting a character.  So, you can hit Esc then 5 then &apos;g&apos; and five &apos;g&apos;s will be inserted.  You can also hold down Alt and type digits to specify the numeric argument.  Negative arguments are also legal and work with some commands (but not all).  Typing Esc - 1 0 &amp;lt;right arrow&amp;gt; will move the cursor to the left by 10 characters, but Esc - 3 Ctrl-W kills to the left and does it a single time.&lt;/p&gt;

&lt;p&gt;I was wrong in my comment from Dec 08 2011 01:15:53 AM UTC that readline doesn&apos;t support Meta-Y to rotate the kill ring.  I must have been testing in the wrong terminal.  It won&apos;t work for me in Ubuntu&apos;s xterm with default settings, but it works fine in Gnome Terminal using mongo version 1.8.2.&lt;/p&gt;

&lt;p&gt;It will be a judgement call how many of the more advanced features make the cut as &quot;key&quot; features.  Kill and Yank are must-haves as is Ctrl-R search; if you have an opinion about what is vital and what you would never use, add a comment to this ticket, thanks!&lt;/p&gt;</comment>
                            <comment id="72265" author="auto" created="Sun, 11 Dec 2011 20:52:52 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; several fixes, features and cleanups&lt;/p&gt;

&lt;p&gt;Fix parsing of Alt+&amp;lt;alphabetic char&amp;gt; for xterm so Alt+b and Alt+f&lt;br/&gt;
work.  Beep on failure to parse a keyboard key the way bash and&lt;br/&gt;
version 1.8.2 do.  Allow Meta-&amp;lt;left arrow&amp;gt; and Meta-&amp;lt;right arrow&amp;gt;&lt;br/&gt;
as synonyms for Ctrl-&amp;lt;left arrow&amp;gt; and Ctrl-&amp;lt;right arrow&amp;gt;; bash&lt;br/&gt;
and version 1.8.2 don&apos;t allow this, but Emacs does, and it&apos;s&lt;br/&gt;
harmless and helps us not fight muscle memory for Emacs users.&lt;br/&gt;
Fix incorrect deletion on Meta-Backspace; this key works differently&lt;br/&gt;
from Ctrl-W and shouldn&apos;t share code with it.  Add ESC prefix for&lt;br/&gt;
Meta in Windows (Alt key already worked).  Implement Meta-D to&lt;br/&gt;
delete the word to the right of the cursor.  Remove the &apos;fd&apos; file&lt;br/&gt;
handle and all references to it.  It was always zero and served no&lt;br/&gt;
purpose.  Always read from stdin and write to stdout; they can be&lt;br/&gt;
redirected but we still use the same handles (0 and 1).&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/0fdbec10d663e94e3a69ae169a35501f826822c1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/0fdbec10d663e94e3a69ae169a35501f826822c1&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="72203" author="auto" created="Sun, 11 Dec 2011 02:14:21 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; rewrite keyboard parsing for Linux&lt;/p&gt;

&lt;p&gt;Replace the nested if statement with a ton of new code to parse&lt;br/&gt;
the escape sequences that the various Linux terminal programs&lt;br/&gt;
give us when arrow keys (for example) are pressed while Ctrl or&lt;br/&gt;
Alt are held down.  Make ESC followed by &amp;lt;key&amp;gt; generate the same&lt;br/&gt;
internal code as Alt+&amp;lt;key&amp;gt; even when the terminal gives us different&lt;br/&gt;
stuff.  Meta-B and Meta-F now work on all platforms.  Rip out the&lt;br/&gt;
unsupported terminal &quot;feature&quot;, it does nothing useful.  Turn on&lt;br/&gt;
the Linux keyboard debugging feature in all builds, it is useful&lt;br/&gt;
and doesn&apos;t get in the way.  Striving to work correctly on Gnome&lt;br/&gt;
Terminal, xterm, aterm, konsole, rxvt and yakuake, code was written&lt;br/&gt;
with this set targeted but testing is limited to implemented&lt;br/&gt;
functions (e.g. Meta-B and Meta-F).  More testing once more features&lt;br/&gt;
are written.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/deefd0741bacdeeff77c9ae1b51af2f9e25c2095&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/deefd0741bacdeeff77c9ae1b51af2f9e25c2095&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="71946" author="auto" created="Fri, 9 Dec 2011 13:15:31 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;&apos;, u&apos;name&apos;: u&apos;Tad Marshall&apos;, u&apos;email&apos;: u&apos;tad@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-4312&quot; title=&quot;Add &amp;quot;key&amp;quot; missing readline/bash (EMACS-style) command line features to the shell&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-4312&quot;&gt;&lt;del&gt;SERVER-4312&lt;/del&gt;&lt;/a&gt; add some framework for readline work, ctrl-W is in&lt;/p&gt;

&lt;p&gt;Beef up the keyboard debugging support on Linux to make it easier&lt;br/&gt;
to figure out what keys are doing, add a framework for encoding&lt;br/&gt;
key combinations (e.g. Ctrl-Meta-left-arrow), add code to encode&lt;br/&gt;
the Ctrl and Alt keys on Windows, add code for Meta-B/Ctrl-left-arrow&lt;br/&gt;
and Meta-F/Ctrl-right-arrow (only working on Windows right now), add&lt;br/&gt;
code for Ctrl-W forall platforms.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e221038722d54c7e5623bacbce6a8a9fa5d846b7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e221038722d54c7e5623bacbce6a8a9fa5d846b7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="71602" author="tad" created="Thu, 8 Dec 2011 01:15:53 +0000"  >&lt;p&gt;I forgot Ctrl-left-arrow (same as Meta-B) and Ctrl-right-arrow (same as Meta-F).  Also, I had expected to need to implement a kill-ring the way Emacs does it, so Ctrl-Y yanks back the most recent (possibly accumulated) killed text, and then Meta-Y cycles through previously killed text, but readline doesn&apos;t seem to do this.  And for those unfamiliar with Emacs&apos; terminology, &quot;Meta&quot; means either the Alt key or hitting Esc first, so Meta-B can be either Alt+B or Esc then b.  Both key patterns should work and do the same thing.&lt;/p&gt;</comment>
                            <comment id="71576" author="tad" created="Wed, 7 Dec 2011 22:21:45 +0000"  >&lt;p&gt;Here is the state of things on 7 December 2011.  Every feature with a blank in the &quot;Works in Mongo 2.1?&quot; column is a candidate to get done for 2.1, but the ones where the &quot;Works in Mongo 2.0?&quot; column says &quot;No (should we?)&quot; seem questionable, inapplicable or low value to me.&lt;/p&gt;

&lt;p&gt;EMACS-style shell editing keystrokes/commands&lt;/p&gt;

&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;Keystroke&lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;Description&lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;Works in Mongo 2.0?&lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;Works in Mongo 2.1?&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-A&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Beginning-of-line&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-B&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Character-left&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-D&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Delete-right or exit shell&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes (needs work)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-E&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;End-of-line&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-F&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Character-right&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-G&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Cancel-editing-mode&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-H &lt;span class=&quot;error&quot;&gt;&amp;#91;Backspace&amp;#93;&lt;/span&gt;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Delete-left&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-I &lt;span class=&quot;error&quot;&gt;&amp;#91;Tab&amp;#93;&lt;/span&gt;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Command-completion&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes (needs work)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-J&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Return&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-K&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Kill-to-end-of-line&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (deletes instead)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-L&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Refresh-screen&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-M&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Return&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-N&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Next-line (history)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-O&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Return-then-next-history&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-P&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Previous-line (history)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-Q&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Insert-verbatim (readline)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-R&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Reverse-search (history)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-S&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Forward-search (history)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-T&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Transpose-characters&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes (needs work)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-U&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Kill-to-beginning-of-line&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (deletes instead)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-V&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Insert-verbatim (bash)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-V&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Backward-kill-word (readline)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-W&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Backward-kill-word&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-X (&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Begin-keyboard-macro&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-X )&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Finish-keyboard-macro&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-X e&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Play-keyboard-macro&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-X /&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Show-filename-completions&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-X ~&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Show-username-completions&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-X $&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Show-variable-completions&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-X @&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Show-hostname-completions&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-X !&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Show-command-completions&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-X Ctrl-R&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Load-readline-init-file&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-X Ctrl-V&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Display-version-info (bash)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-Y&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yank&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Ctrl-Z&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Suspend (job control)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes (Linux)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Del&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Delete-right&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-B&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Word-left&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-C&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Capitalize-next-word-and-move-past-it&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-D&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Kill-word-right&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-Ctrl-E&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Expand-alias&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-F&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Word-right&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-Backspace&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Backward-kill-word&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-Tab&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Attempt-complete-from-history (???)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-L&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Lowercase-next-word-and-move-past-it&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-N&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Non-incremental-forward-search&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-P&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Non-incremental-backward-search&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-R&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Revert-line&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-T&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Transpose-words&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-U&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Uppercase-next-word-and-move-past-it&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-Ctrl-Y&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Insert-first-word-in-previous-command&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-Del&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Kill-word-left&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-. (period)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Insert-last-word-in-previous-command&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-_ (underscore)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Insert-last-word-in-previous-command&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-^&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Expand-history (???)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-&amp;lt;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Beginning-of-history&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-&amp;gt;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;End-of-history&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-?&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Show-completions&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-/&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Attempt-filename-completion&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-~&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Attempt-username-completion&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-$&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Attempt-variable-completion&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-@&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Attempt-hostname-completion&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-!&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Attempt-command-completion&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-\ &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Delete-whitespace&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-=&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Show-completions&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-*&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Insert-all-completions&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Meta-{&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Insert-all-completions-inside-braces&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;No (should we?)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Left-arrow&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Character-left&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Right-arrow&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Charcter-right&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Up-arrow&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Previous-line (history)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Down-arrow&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Next-line (history)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Home&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Beginning-of-line&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;End&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;End-of-line&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
</comment>
                            <comment id="71569" author="tad" created="Wed, 7 Dec 2011 22:00:11 +0000"  >&lt;p&gt;Excel spreadsheet with bash/readline feature list and Mongo shell support&lt;/p&gt;</comment>
                            <comment id="71245" author="kristina" created="Tue, 6 Dec 2011 20:52:27 +0000"  >&lt;p&gt;Just want to note that support for Alt/Meta combinations is important (e.g., Alt-D, Alt-backspace, Alt-&amp;lt;arrow keys&amp;gt;).&lt;/p&gt;</comment>
                            <comment id="71229" author="tad" created="Tue, 6 Dec 2011 19:46:20 +0000"  >&lt;p&gt;I added ^Z job control (commit fa62a374a8818ec2c8981176c60c9cd0a01eb8c1) based on code from &lt;a href=&quot;https://github.com/leejo/mongo&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/leejo/mongo&lt;/a&gt; (&lt;a href=&quot;https://github.com/mongodb/mongo/pull/111&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/pull/111&lt;/a&gt;), thanks leejo!&lt;/p&gt;</comment>
                            <comment id="70339" author="tad" created="Fri, 2 Dec 2011 03:56:45 +0000"  >&lt;p&gt;I got most of the way into creating a spreadsheet listing all of the stuff that we might, could or should do in addressing this bug/feature, but I need to finish it and add it to this Jira ticket.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="15344">SERVER-2852</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="22606">SERVER-3914</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="24935">SERVER-4286</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="26517">SERVER-4480</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="22122">SERVER-3809</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="20165">SERVER-3484</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="37048">SERVER-5692</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="37209">SERVER-5711</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="30188">DOCS-121</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="14037" name="EMACS-style command line editing in the Mongo shell.xls" size="30720" author="tad" created="Wed, 7 Dec 2011 22:00:11 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>28.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 6 Dec 2011 20:52:27 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        11 years, 49 weeks, 2 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>ramon.fernandez@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            11 years, 49 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10000" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Old_Backport</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10000"><![CDATA[No]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>auto</customfieldvalue>
            <customfieldvalue>kristina</customfieldvalue>
            <customfieldvalue>sam.kleinman</customfieldvalue>
            <customfieldvalue>tad</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrolb3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hrgelr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9275</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrnv07:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>