我正在使用iPython。docs说我应该能够使用inputrc重新映射读行库的键。以下是我在我的输入中的内容:
set editing-mode emacs
set keymap emacs
Meta-h: backward-word
Meta-s: forward-word
Control-h: backward-char
Control-s: forward-char
Control-n: previous-history
Control-t: next-history
Control-p: yank
Meta-p: yank-pop当我加载iPython时,这些映射根本不起作用。我在OSX10.9小牛上。我没有看到使用libedit而不是readline的任何警告。有什么想法吗?
发布于 2014-03-08 04:01:53
来自IPython文档
所有这些特性都基于GNU库,该库具有非常可定制的接口。通常,readline是通过一个文件来配置的,该文件定义了库的行为;其语法细节可以在您的系统或Internet上可用的readline文档中找到。IPython不直接读取这个文件(如果它存在的话),但是它支持通过一个简单的接口传递到readline的有效选项。简而言之,您可以通过在配置文件中设置以下选项来自定义readline (注意,这些选项不能在命令行中指定): readline_parse_and_bind:这包含要通过readline.parse_and_bind()命令执行的字符串列表。通过读取GNU库的文档可以找到这类有效命令的语法,因为这些命令是readline在其配置文件中接受的类型。 readline_remove_delims:从readline使用的默认单词分隔符列表中删除的字符串,以便在包含它们的字符串上执行完成操作。除非您知道自己在做什么,否则不要更改默认值。
因此,您必须在配置文件中设置readline_parse_and_bind (默认情况下,这是在/path/to/ipython/dir/profile_default/ipython_config中)。可以使用ipython profile create通过示例生成默认配置。
发布于 2017-12-04 18:24:16
我发现的方法是创建一个新的IPython配置文件,启用vi键选项。
将密钥绑定模式设置为vi:
生成空白配置文件:
ipython profile create [profile-name]运行该命令应该显示生成的概要文件的路径,即python (.py)文件。
来自:资料来源:选项参考
从5.0开始,IPython使用prompt_toolkit代替读行,因此它可以识别以“:”结尾的行并缩进下一行,还可以在“引发”或“返回”之后自动取消缩进,并支持在编辑过程中进行真正的多行编辑和语法着色。 此特性不再使用readline库,因此它将不支持您的~/.inputrc配置(或您的INPUTRC环境变量指向的任何文件)。 特别是,如果要将输入模式更改为vi,则需要设置IPython.的配置选项。
(强调地雷)
因此,导航到ipython_config.py文件,并确保其中包含以下行:
c = get_config()
c.TerminalInteractiveShell.editing_mode = 'vi'使用特定的配置文件启动IPython:
在终端上输入以下命令(不要按字面键入大括号,它们只是配置文件实际名称的占位符)。
$> ipython --profile={profile-name}
https://stackoverflow.com/questions/21793051
复制相似问题