vim + colemak + jupyter-notebook

本文介绍了一位Colemak用户在使用Jupyter Notebook时遇到的Vim绑定问题及解决方案。通过修改Jupyter Notebook中的Codemirror源码和使用特定插件,实现了更高效、更符合Colemak布局的键盘操作。
部署运行你感兴趣的模型镜像

colemak vim 用户使用 jupyter notebook

推荐使用 jupyter-lab, 见此

TL, DR

  1. install this extension, and change the vim .jupyter/custom/custom.js, map n and e. Reason is that this extension can help you jump from cells to cells.

  2. change the codemirror in notebook package.

~/.local/lib/python3.8/site-packages/notebook/static/components/codemirror/keymap/vim.js

My example is here

Essay

Vimer 很多,所以有作者开发了jupyter-vim-binding
colemaker 很少,而上面的 jupyter-vim-binding 的作者只提供了移动的API,不能做到映射全部的键位。

我本想修改这个插件来扩展它的功能。从 codemirror 官网下下了 codemirror 的代码,对照了jupyter-vim-binding 对hi(qwert: hl)方向的修改成功了,但是 colemak 向下是n键,所以还需把搜索键引入进来,同样的方法试了一下不行,发现源码中涉及的函数太多,只会照猫画虎。

弄了一天,终于搜对了关键字 “jupyter notebook 自定义 codemirror”, 谷歌对中文的支持不好,英文搜出来的修改的手段也太官方了,所以一直解决不了,百度搜到了Jupyter Notebook 更改字体、字体大小、行高

nb! 直接修改 codemirror 在 jupyter 中的源码

~/.local/lib/python3.8/site-packages/notebook/static/components/codemirror/keymap/vim.js

(写这篇文章的时候想到,其实早该想到 jupyter 没有把 codemirror 当作插件,既然这么无从下手,那说明 codemirror 必定是随着 jupyter 一起装的)

到这里事情差不多解决了,突然想到既然这样,jupyter-vim-binding 就没有用了呀。事实告诉我的确如此。然而问题是按n(j)不能跳到下一个cell,想到jupyter-vim-binding 不是有这部份吗(在之前想扩展它的功能时看到的)再次启用这个插件,这次我使用了原版的插件。把我自己的部分去掉了。这次问题是真的解决了,啊,完美!!!

现在回想起来这个插件的作者不是不想继续扩展而是没必要啊。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值