vim+colemak(keymap)+jupyterlab

Mon, 2020-08-03
vim+colemak(keymap)+jupyterlab

我原先发于 CSDN

推荐使用 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.

  1. 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 不是有这部份吗(在之前想扩展它的功能时看到的)再次启用这个插件,这次我使用了原版的插件。把我自己的部分去掉了。这次问题是真的解决了,啊,完美!!!

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

avatar
除非注明,本博客所有文章皆为原创。
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。