修改或挂接到 Jupyter 的选项卡补全
Modify or hook into Jupyter's tab completion
我想知道是否有办法修改 Jupyter Lab 或 Notebook 的制表符完成功能。例如,如果我键入“\alpha”,然后按 Tab 键,我将在单元格中得到 UTF-8 字符“α”。
有什么方法可以自定义“[不带空格的字符串]”以制表符补全为某个特定的 UTF-8 字符或字符串?
例如"\implies" + tab -> "⇒"
在我的编程生涯中,我可以看到大量这方面的用例,所以我想知道 Jupyter(Lab 或 Notebook)是否提供修改某些将字符串映射到的设置(或加载到文件中)的功能选项卡式输出。或者您是否有不同的想法可以用来实现这个?
谢谢!
Jupyter 是(基于)IPython 并且它是完成引擎 - 我们可以利用它。
更新:你可以重写latex_symbols
dict以获得你想要的行为:
from IPython.core.latex_symbols import latex_symbols
latex_symbols['\implies'] = '⇒'
您应该能够在此示例的基础上进行构建,使其适用于所有字符。
初始答案/另一个解决方案:您可以连接到 IPython 完成器,尽管它不会完全按照您的意愿工作:它不会替换文本,但只需附加一个特殊字符。这是一个例子:
from IPython import get_ipython
def implies_competer(ipython, event):
return ['⇒']
ipython = get_ipython()
ipython.set_hook('complete_command', implies_competer, re_key='.*implies')
然后当你输入时(关键字后面的 space 很重要):
然后按tab
,你会得到:
我想知道是否有办法修改 Jupyter Lab 或 Notebook 的制表符完成功能。例如,如果我键入“\alpha”,然后按 Tab 键,我将在单元格中得到 UTF-8 字符“α”。
有什么方法可以自定义“[不带空格的字符串]”以制表符补全为某个特定的 UTF-8 字符或字符串?
例如"\implies" + tab -> "⇒"
在我的编程生涯中,我可以看到大量这方面的用例,所以我想知道 Jupyter(Lab 或 Notebook)是否提供修改某些将字符串映射到的设置(或加载到文件中)的功能选项卡式输出。或者您是否有不同的想法可以用来实现这个?
谢谢!
Jupyter 是(基于)IPython 并且它是完成引擎 - 我们可以利用它。
更新:你可以重写latex_symbols
dict以获得你想要的行为:
from IPython.core.latex_symbols import latex_symbols
latex_symbols['\implies'] = '⇒'
您应该能够在此示例的基础上进行构建,使其适用于所有字符。
初始答案/另一个解决方案:您可以连接到 IPython 完成器,尽管它不会完全按照您的意愿工作:它不会替换文本,但只需附加一个特殊字符。这是一个例子:
from IPython import get_ipython
def implies_competer(ipython, event):
return ['⇒']
ipython = get_ipython()
ipython.set_hook('complete_command', implies_competer, re_key='.*implies')
然后当你输入时(关键字后面的 space 很重要):
然后按tab
,你会得到: