首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPython不读取~/..inputrc

iPython不读取~/..inputrc
EN

Stack Overflow用户
提问于 2014-02-15 03:39:14
回答 2查看 1.2K关注 0票数 4

我正在使用iPython。docs说我应该能够使用inputrc重新映射读行库的键。以下是我在我的输入中的内容:

代码语言:javascript
复制
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的任何警告。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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通过示例生成默认配置。

票数 3
EN

Stack Overflow用户

发布于 2017-12-04 18:24:16

我发现的方法是创建一个新的IPython配置文件,启用vi键选项。

  • 资料来源:选项参考
  • 资料来源:管理概要。

将密钥绑定模式设置为vi:

生成空白配置文件:

代码语言:javascript
复制
ipython profile create [profile-name]

运行该命令应该显示生成的概要文件的路径,即python (.py)文件。

来自:资料来源:选项参考

从5.0开始,IPython使用prompt_toolkit代替读行,因此它可以识别以“:”结尾的行并缩进下一行,还可以在“引发”或“返回”之后自动取消缩进,并支持在编辑过程中进行真正的多行编辑和语法着色。 此特性不再使用readline库,因此它将不支持您的~/.inputrc配置(或您的INPUTRC环境变量指向的任何文件)。 特别是,如果要将输入模式更改为vi,则需要设置IPython.的配置选项。

(强调地雷)

因此,导航到ipython_config.py文件,并确保其中包含以下行:

代码语言:javascript
复制
c = get_config()
c.TerminalInteractiveShell.editing_mode = 'vi'

使用特定的配置文件启动IPython:

资料来源:管理概要。

在终端上输入以下命令(不要按字面键入大括号,它们只是配置文件实际名称的占位符)。

$> ipython --profile={profile-name}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21793051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档