interactive prompt and the prompts offered by the built-in :func:`input`
function.
+Readline keybindings may be configured via an initialization file, typically
+``.inputrc`` in your home directory. See `Readline Init File
+<https://cnswww.cns.cwru.edu/php/chet/readline/rluserman.html#SEC9>`_
+in the GNU Readline manual for information about the format and
+allowable constructs of that file, and the capabilities of the
+Readline library in general.
+
.. note::
The underlying Readline library API may be implemented by
the ``libedit`` library instead of GNU readline.
- On MacOS X the :mod:`readline` module detects which library is being used
+ On macOS the :mod:`readline` module detects which library is being used
at run time.
The configuration file for ``libedit`` is different from that
you can check for the text "libedit" in :const:`readline.__doc__`
to differentiate between GNU readline and libedit.
-Readline keybindings may be configured via an initialization file, typically
-``.inputrc`` in your home directory. See `Readline Init File
-<https://cnswww.cns.cwru.edu/php/chet/readline/rluserman.html#SEC9>`_
-in the GNU Readline manual for information about the format and
-allowable constructs of that file, and the capabilities of the
-Readline library in general.
+ If you use *editline*/``libedit`` readline emulation on macOS, the
+ initialization file located in your home directory is named
+ ``.editrc``. For example, the following content in ``~/.editrc`` will
+ turn ON *vi* keybindings and TAB completion::
+
+ python:bind -v
+ python:bind ^I rl_complete
Init file
library/pyexpat,,:elem1,<py:elem1 />
library/pyexpat,,:py,"xmlns:py = ""http://www.python.org/ns/"">"
library/random,,:len,new_diff = mean(combined[:len(drug)]) - mean(combined[len(drug):])
+library/readline,,:bind,"python:bind -v"
+library/readline,,:bind,"python:bind ^I rl_complete"
library/smtplib,,:port,method must support that as well as a regular host:port
library/socket,,::,'5aef:2b::8'
library/socket,,:can,"return (can_id, can_dlc, data[:can_dlc])"
Py_FatalError("not enough memory to save locale");
#endif
+ /* The name must be defined before initialization */
+ rl_readline_name = "python";
+
#ifdef __APPLE__
/* the libedit readline emulation resets key bindings etc
* when calling rl_initialize. So call it upfront
using_history();
- rl_readline_name = "python";
/* Force rebind of TAB to insert-tab */
rl_bind_key('\t', rl_insert);
/* Bind both ESC-TAB and ESC-ESC to the completion function */