Vim을 좋아하는 Jupyter Notebook의 초기 설정 · jj에서 빠지거나 (jupyter-vim-binding)

머리



제목대로 하고 싶다. 당사의 초기 개발 환경은 아무것도 들어 있지 않고, 무의식적으로 jj가 표시되기 쉽다(vim 있다고 생각하고 있다). Jupyter에서도 기본적인 vim 환경이 들어있는 것이 개인적으로 바람직하기 때문에 이것을 설정하는 절차를 설명한다. 회사의 환경은 리눅스이지만 새로 설치한 집의 PC에서 기사를 쓰고 있기 때문에 macOS에 관한 것이다. 단, 대체로 같은 하즈.

환경·준비


  • MacOS Catalina 10.15.4
  • python 3.6.5 (pyenv 등은 원하는대로)
  • git

  • 방법



    jupyter-vim-binding 도입



    기본적으로 로 좋다고 생각하고 있다. 그 밖에도 있다고 생각하지만, 이번은 이것으로 쓴다.
    먼저 pip에서 jupyter notebook을 설치합니다. 어차피 사용하므로 pandas도.
    pip install jupyter
    pip install pandas
    

    뇌사로 github에 쓰여진 절차를 닦는다.
    mkdir -p $(jupyter --data-dir)/nbextensions
    cd $(jupyter --data-dir)/nbextensions
    git clone https://github.com/lambdalisue/jupyter-vim-binding vim_binding
    jupyter nbextension enable vim_binding/vim_binding
    

    우선 현시점에서 jupyter를 열면 다음과 같은 것이 나온다.
    cd
    jupyter notebook
    



    이것은 홈 디렉토리이지만 우선 우측 상단의 New에서 python3을 선택하여 열면,


    이런 식으로 Untitled.ipynb가 생성됩니다. 크림색일 때는 normal 모드이며, i로 인서트 모드에 넣는다. 자세한 것은 본가 페이지를 볼 수 있다.

    설정하지 않으면 jj에서 인서트 모드를 빠질 수 없어 화가 나므로 키 매핑을 편집합니다.

    키 매핑 편집



    이 기사에서는 nvim으로 편집한다 (적당한 편집기로 부디). ~/.jupyter에 jupyter 설정이 놓인 것 같습니다. custom.js를 작성하거나 편집하십시오.
    mkdir -p ~/.juputer/custom/
    nvim ~/.jupyter/custom/custom.js
    

    편집기가 열리면 다음을 저장합니다. 이것은 공식적으로 작성된 설정 중 jj에서 일반 모드로 돌아가는 설정 이외를 삭제한 것입니다.
    // Configure CodeMirror Keymap
    require([
      'nbextensions/vim_binding/vim_binding',   // depends your installation
    ], function() {
      CodeMirror.Vim.map("jj", "<Esc>", "insert"); // jj setting!
    });
    
    // Configure Jupyter Keymap
    require([
      'nbextensions/vim_binding/vim_binding',
      'base/js/namespace',
    ], function(vim_binding, ns) {
      // Add post callback
      vim_binding.on_ready_callbacks.push(function(){
        var km = ns.keyboard_manager;
        // Allow Ctrl-2 to change the cell mode into Markdown in Vim normal mode
        km.edit_shortcuts.add_shortcut('ctrl-2', 'vim-binding:change-cell-to-markdown', true);
        // Update Help
        km.edit_shortcuts.events.trigger('rebuild.QuickHelp');
      });
    });
    

    이것으로 꽤 기분 좋게 편집을 할 수 있게 된다. 사용하면 알 수 있습니다.
    마지막으로 Gif 애니메이션을 붙여 둡니다.


    결론



    회사의 환경이라면, 보안의 관계로 무언가와 설치가 곤란하지만, git는 갈 수 있었기 때문에 어떻게든 되었다. 또 다른 환경이 되었을 때는 우선 이 기사와 같이 하도록 한다. vimmer에게는 적어도 jkhl의 이동은 사활 문제이므로, jupyter-vim-binding만으로도 설정하면 좋다고 생각한다.

    좋은 웹페이지 즐겨찾기