キー操作が世知辛いのでJupyterNotebookをvim色に染めてみた

JupyterNotebook上でのキー操作がやや辛くなったこともあり、vimでのキーバインドを追加してみました。
2019.04.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Pythonにてデータ操作等を行う際にJupyterNotebookはとても便利なツールです。ですが、編集する際に

ブラウザとTerminalとの往復でキー操作を色々間違える

という状況に出くわしました。

「キーバインドを統一したい」と思って調べてみたところ、やはり同じ事を考えた先人がいたようです。手続きを写経しつつ、各ライブラリの公式ドキュメントを元に幾つか調整したものをまとめてみました。

必要なもの

以下のライブラリを導入していきます。

なお、今回の前提として以下のコマンド及び環境設定実施済みです。

echo 'export PIPENV_VENV_IN_PROJECT=true' >> ~/.zshrc
pipenv install --python 3.6
pipenv install jupyter

anaconda

パッケージインストーラとコマンドラインインストーラの両方があります。今回はパッケージインストーラを選択しました。

jupyter_contrib_nbextensions

extentionを追加します。condaコマンドで実行します。

exec $SHELL -l
conda install -c conda-forge jupyter_contrib_nbextensions

jupyter-vim-binding

vimのキーバインドを追加します。公式のインストール手順で実行します。https://github.com/lambdalisue/jupyter-vim-binding

# Create required directory in case (optional)
mkdir -p $(jupyter --data-dir)/nbextensions
# Clone the repository
cd $(jupyter --data-dir)/nbextensions
git clone https://github.com/lambdalisue/jupyter-vim-binding vim_binding
# Activate the extension
jupyter nbextension enable vim_binding/vim_binding

jupyter-theme

テーマを追加します。

pipenv install jupyterthemes
jt -t chesterish -T -f roboto -fs 9 -tf merriserif -tfs 11 -nf ptsans -nfs 11 -dfs 8 -ofs 8

結果

いい感じの色具合になりました。pyファイルを編集すると、vimのキーバインドになっていることもわかります。

まとめ

JupyterNotebookでの編集も、普段の使い慣れたエディタ操作で行えることが一番の負荷軽減につながると思います。また、この記事ではvimでの対応を挙げましたが、emacsでのやり方もあるようです。気になる方は検索してみてください。

今回は以下の記事を参考にしました。