JupyterLab 不仅能够书写代码而且也非常方便书写说明内容以及 $\LaTeX{}$ 代码,另外,它支持多种编程语言。在 Pycharm 中集成了自动代码提示,文件跳转等,在 JupyterLab 中也可以实现。本篇对其进行介绍。

安装基本包

1
2
3
4
pip install jupyterlab-lsp
pip install 'python-lsp-server[all]'
# 也可采用方法:进入 JupyterLab,点击扩展,搜索 @krassowski/jupyterlab-lsp 点击安装即可。
jupyter labextension install @krassowski/jupyterlab-lsp

重启 jupyterlab

1
2
# 我这里是 jupyterhub
sudo systemctl restart jupyterhub.service

重启后已经可以使用代码提示了。但需要注意两点:

  1. 代码提示需要 tab 键配合。后面设置如何自动提示;
  2. 代码跳转个人编写的包正常,conda 和 pip 安装的包不能成功。后面进行配置。

代码自动提示设置

进入 JupyterLab, 点击设置–高级设置–Code Completion–勾选 Continuous hinting

将鼠标悬停在任何一段代码上;如果出现下划线,您可以按 Ctrl 键获得具体提示

代码跳转设置

进入 jupyter 根目录(可在 JupyterLab 文件夹选择根文件夹查看),我这里是当前用户目录,设置如下:

1
2
cd ~
ln -s / .lsp_symlink

由于此符号链接是一个隐藏文件,因此必须指示 Jupyter 服务器提供隐藏文件。使用适当的命令行标志:

1
jupyter lab --ContentsManager.allow_hidden=True

或者把该设置在配置文件(jupyter_server_config.py)中进行,如果没有配置文件,可以用如下命令生成:

1
2
# 生成配置文件
jupyter server --generate-config

然后进入配置文件把 c.ContentsManager.allow_hidden = True 打开
最后重启 JupyterLab 即可。

使用上下文菜单条目,或 Alt + 鼠标左键点击 跳转到定义(您可以在设置中将其更改为 Ctrl/⌘)

参考文献:

  1. jupyter lab 代码提示/代码补全插件:jupyter lsp 配置教程 + 开启 Hinterland mode
  2. jupyter-lsp/jupyterlab-lsp
  3. Configuring a Jupyter Server
  4. Language Server Protocol integration for Jupyter(Lab)