我最近在此处的 python interperter 中发现了自动完成功能:https ://docs.python.org/2.7/tutorial/interactive.html 。这对于加快我在交互式解释器中所做的测试非常有用。有两件事情是完整的,它们都是有用的。
如果我只是放入C+f: complete
我的 .inputrc(或使用没有 rlcompleter 的 readline),当我按下 Ctl+f 时,我会在启动解释器的目录中完成文件。当我加载模块readline
并rlcompleter
添加readline.parse_and_bind('C-n: complete')
到 .pystartup 文件时,它会将 Ctl+n 和 Ctl+f 转换为自动完成 python 对象。
我想两者都做,但不确定如何rlcompleter
避免覆盖标准完成。有没有办法启动两个实例readline
,一个使用,一个不使用rlcompleter
?
这是我的 .pystartup 文件
import atexit
import os
import readline
import rlcompleter #removing this does file completion.
readline.parse_and_bind('C-n: complete')
historyPath = os.path.expanduser("~/.pyhistory")
def save_history(historyPath=historyPath):
import readline
readline.write_history_file(historyPath)
if os.path.exists(historyPath):
readline.read_history_file(historyPath)
atexit.register(save_history)
del os, atexit, readline, rlcompleter, save_history, historyPath