Jupyter Labをもっと快適にするためにvim Extensionを追加する
以前Jupyter Lab
を導入してから使い続けている。
ただ、僕はエセvimmer
なので若干使いにくいなーと思っていたところ、Jupyter Lab
には様々なExtention(拡張機能)を追加できるというのを知った。
ちなみにJupyter
からこの機能はあったみたいで、有志たちによって様々なExtensionは開発されている。以下はGithub
上にあるExtension
の中でtopic
(話題?)になってるやつだと思う。
Jupyter LabにVimを導入する
以下のExtensionを追加する。
コマンドは簡単。
jupyter labextension install jupyterlab_vim
$ jupyter labextension install jupyterlab_vim > npm pack jupyterlab_vim jupyterlab_vim-0.8.0.tgz Traceback (most recent call last): File "/usr/local/anaconda3/bin/jupyter-labextension", line 11, in <module> sys.exit(main()) File "/usr/local/anaconda3/lib/python3.6/site-packages/jupyter_core/application.py", line 267, in launch_instance return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs) File "/usr/local/anaconda3/lib/python3.6/site-packages/traitlets/config/application.py", line 658, in launch_instance app.start() File "/usr/local/anaconda3/lib/python3.6/site-packages/jupyterlab/labextensions.py", line 168, in start super(LabExtensionApp, self).start() File "/usr/local/anaconda3/lib/python3.6/site-packages/jupyter_core/application.py", line 256, in start self.subapp.start() File "/usr/local/anaconda3/lib/python3.6/site-packages/jupyterlab/labextensions.py", line 58, in start for arg in self.extra_args] File "/usr/local/anaconda3/lib/python3.6/site-packages/jupyterlab/labextensions.py", line 58, in <listcomp> for arg in self.extra_args] File "/usr/local/anaconda3/lib/python3.6/site-packages/jupyterlab/commands.py", line 100, in install_extension return IOLoop.instance().run_sync(func) File "/usr/local/anaconda3/lib/python3.6/site-packages/tornado/ioloop.py", line 458, in run_sync return future_cell[0].result() File "/usr/local/anaconda3/lib/python3.6/site-packages/tornado/concurrent.py", line 238, in result raise_exc_info(self._exc_info) File "<string>", line 4, in raise_exc_info File "/usr/local/anaconda3/lib/python3.6/site-packages/tornado/gen.py", line 1069, in run yielded = self.gen.send(value) File "/usr/local/anaconda3/lib/python3.6/site-packages/jupyterlab/commands.py", line 158, in install_extension_async raise ValueError(msg) ValueError: "jupyterlab_vim@0.8.0" is not compatible with the current JupyterLab Conflicting Dependencies: JupyterLab Extension Package >=0.10.0-0 <0.11.0-0 >=0.17.2-0 <0.18.0-0 @jupyterlab/application >=0.10.0-0 <0.11.0-0 >=0.17.2-0 <0.18.0-0 @jupyterlab/notebook
簡単のはずエラー。バージョンの問題かな・・・。とりあえずJupyter Lab
のバージョン確認。
$jupyter --version 4.3.0 $ jupyter lab --version 0.27.0
最新は0.33
系なのでバージョンあげよう。anaconda
で色々試した結果、こんな感じでようやくできた。
# anacondaのバージョンアップ $ conda update conda # jupyterの再インストール $ conda uninstall jupyter $ conda install jupyter # いろんな記事をみたら、あるissueに書かれてたのでやってみたが、影響したかはわからない $ conda uninstall zeromq --force $ conda install zeromq # jupyter labの再インストール # conda-forgeからインストールすることで新しくなる $ conda uninstall jupyterlab $ conda install -c conda-forge jupyterlab # jupyter 5.3以下のおまじない $ jupyter serverextension enable --py jupyterlab --sys-prefix # バージョン確認 $ jupyter --version 4.4.0 $ jupyter lab --version 0.33.6
もう一度試す
$ jupyter labextension install jupyterlab_vim ... Child html-webpack-plugin for "index.html": 1 asset Entrypoint undefined = index.html [KTNU] ./node_modules/html-loader!./templates/partial.html 567 bytes {0} [built] [YuTi] (webpack)/buildin/module.js 497 bytes {0} [built] [aS2v] ./node_modules/html-webpack-plugin/lib/loader.js!./templates/template.html 1.22 KiB {0} [built] [yLpj] (webpack)/buildin/global.js 489 bytes {0} [built] + 1 hidden module ✨ Done in 81.59s.
だん!
Jupyter Labでvimを満喫する
vim
らしい極太の線がでてきた。
僕はキーバインドはカスタマイズしてないので、このまま意識せずvim
レた。やっぱいいな。慣れてる操作って。
メリット
- vimれる
デメリット
print
した際にでる表示項目は、デフォルトで一部しか見れないが、このExtensionを入れると全部見えてしまう- たまに
insert mode
になるのが遅くて困る
終わりに
インストールに少し苦戦したが、一度できてしまえば他のExtensionも楽に追加できる。
vim以外にも面白そうなExtensionがあったので、もう少し試したら紹介しようと思う。