Docker로 시작한 Jupyter Notebook에서 vim 키 바인딩 사용

개요



최근에는 데이터 과학 공부로 통계학 책을 읽고 있습니다만, 책을 읽고 있을 뿐이라면 좀처럼 이미지하기 어려울 수도 있으므로, Jupyter Notebook을 사용해 수중에서 코드를 쓰면서 하고 싶다고 생각했습니다.
Jupyter Notebook에서 코드를 쓰면 vim의 키 바인딩을 사용할 수 없으면 텐션이 오르지 않기 때문에 vim을 사용할 수 있도록하고 싶습니다만, 다소 빠진 부분 등이 있었기 때문에 방법을 정리했습니다.

환경





버전


Mac
10.15.3

도커
19.03.4

docker-compose
1.24.1


환경 구축 절차



Dockerfile과 docker-compose를 사용하여 vim의 키 바인딩을 사용할 수있는 Jupyter Notebook을 시작합니다.
※이하 파일은 GitHub에도 정리하고 있으므로 참고해 주십시오.
htps : // 기주 b. 코 m / 히카루 t / 쥬 py 테 r의 테보오 k

1. notebook 저장을 위한 디렉토리 생성
$ mkdir notebooks

2. Dockerfile 만들기

Dockerfile
FROM jupyter/minimal-notebook:latest

USER root

RUN pip install jupyter_contrib_nbextensions && \
    jupyter contrib nbextension install --user && \
    git clone https://github.com/lambdalisue/jupyter-vim-binding /home/jovyan/.local/share/jupyter/nbextensions/vim_binding && \
    jupyter nbextension enable vim_binding/vim_binding

EXPOSE 10000
CMD ["bash"]

jupyter-vim-binding 리포지토리의 클론처는 커맨드 jupyter의 path와 맞추어야 합니다. ( jupyter --path 명령으로 확인할 수 있습니다)

3. docker-compose.yml 만들기

docker-compose.yml
version: '3'
services:
  data-science:
    restart: always
    build: .
    container_name: 'data-science'
    ports:
      - "10000:10000"
    working_dir: '/root/'
    tty: true
    volumes:
      - ./notebooks:/root/notebooks/

4. 컨테이너 빌드
$ docker-compose up -d --build

5. 컨테이너에 로그인
$ docker-compose exec data-science bash

6. Jupyter Notebook 시작
/root# jupyter notebook --port 10000 --allow-root

나타나는 http://127.0.0.1:10000/?token=xxxxxxxxxxxxxxxx로 이동합니다.

7. VIM 바인딩 확장을 사용하도록 설정

디폴트라면 익스텐션의 설정에 disable 에 체크가 들어가 있으므로 체크를 해제해 유효하게 합니다.


이제 노트북에서 vim을 사용할 수 있습니다.


마지막으로



Jupyter Notebook에서 vim의 키 바인딩을 사용할 수 있도록 하는 방법은 상당히 정리되어 있었습니다만, 여러가지 시험하고 있으면 이외라고 빠진 부분도 있었으므로 자신 나름대로 정리해 보았습니다.
이것으로 쾌적한 Notebook을 쓸 수 있을 것 같습니다!
(단지 이번에는 유저를 모두 root로 해 버렸기 때문에 그 근처는 바꾸는 것이 좋을지도 모릅니다.)

참고
  • Jupyter Notebook on Docker에서 vim_binding 사용
  • Jupyter Notebook on Docker에서 Vim keybinds 사용
  • JupyterNotebook에 Vim의 힘을 가하면 빛과 어둠이 함께 최강으로 보입니다.
  • 좋은 웹페이지 즐겨찾기