作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
几个月前,我写了一篇 blog post详细说明如何在标准 Python 交互式解释器中实现制表符补全——我曾经认为只有 IPython 才有的功能。由于 IPython unicode 问题,我有时不得不切换到标准解释器,因此我发现它非常方便。
最近我在 OS X 上做了一些工作。令我不满的是,该脚本似乎不适用于 OS X 的终端应用程序。我希望你们中的一些有 OS X 经验的人可以帮助我解决它,以便它也可以在终端中运行。
我正在复制下面的代码
import atexit
import os.path
try:
import readline
except ImportError:
pass
else:
import rlcompleter
class IrlCompleter(rlcompleter.Completer):
"""
This class enables a "tab" insertion if there's no text for
completion.
The default "tab" is four spaces. You can initialize with '\t' as
the tab if you wish to use a genuine tab.
"""
def __init__(self, tab=' '):
self.tab = tab
rlcompleter.Completer.__init__(self)
def complete(self, text, state):
if text == '':
readline.insert_text(self.tab)
return None
else:
return rlcompleter.Completer.complete(self,text,state)
#you could change this line to bind another key instead tab.
readline.parse_and_bind('tab: complete')
readline.set_completer(IrlCompleter('\t').complete)
# Restore our command-line history, and save it when Python exits.
history_path = os.path.expanduser('~/.pyhistory')
if os.path.isfile(history_path):
readline.read_history_file(history_path)
atexit.register(lambda x=history_path: readline.write_history_file(x))
请注意,我已经从我的博客文章的版本中稍微编辑了它,以便使用真正的选项卡初始化 IrlCompleter
,这似乎是终端中 Tab 键输出的内容。
最佳答案
这应该可以在 Leopard 的 python 下工作:
import rlcompleter
import readline
readline.parse_and_bind ("bind ^I rl_complete")
而这个没有:
import readline, rlcompleter
readline.parse_and_bind("tab: complete")
保存在 ~/.pythonrc.py 并在 .bash_profile 中执行
export PYTHONSTARTUP=$HOME/.pythonrc.py
关于python - OS X 终端中 Python 解释器中的制表符补全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/675370/
补: Rest 风格请求处理的的内容补充(1) Rest风格请求:注意事项和细节 客户端是PostMan 可以直接发送Put,delete等方式请求,可不设置Filter 如果哟啊
我是一名优秀的程序员,十分优秀!