この記事は古川研究室 Workout_calendar 14日目の記事です。
本記事は古川研究室の学生が学習の一環として書いたものです。内容が曖昧であったり表現が多少異なったりする場合があります。
作業の効率化のためにショートカットを使いこなそう!
Jupyter notebook に限らず多くのエディタには便利なショートカットが設定されています。中には共通するものもあるので、初心者ほど覚えておきたいところ。画像込みでわかりやすくまとめたいと思います。
まずは概要
まずはJupyter notebook の概要について知っていきましょう!初めての方はもちろん、既に利用されていても背景については知らないかも?
Jupyter プロジェクト
Github に「Project Jupyter」(https://github.com/jupyter)というリポジトリがあります。呼んで字のごとく、Jupyter プロジェクトという名の壮大な計画です。概要を訳して引用すると、
Project Jupyterは、オープンソースソフトウェア、オープンスタンダード、そして何十ものプログラミング言語にわたるインタラクティブコンピューティングのためのサービスを開発するために存在します。
(https://jupyter.org/index.html より)
ほかにもJupyterLab やJupyter hubといったサービスがあって、Jupyter notebook はその中のひとつです。
Jupyter Notebookは、ライブコード、方程式、ビジュアライゼーション、およびナラティブテキストを含む文書を作成および共有できるようにする、オープンソースのWebアプリケーションです。用途には、データのクリーニングと変換、数値シミュレーション、統計モデリング、データの視覚化、機械学習などがあります。
(https://jupyter.org/index.html より)
書かれているように、コード、数式、文章をまとめたファイルをオープンソースのWebアプリで作成できるので、使いやすく共有しやすい!という利点があります。特に先ほど出てきましたが、インタラクティブ(対話的)にコードを実行出来る(この後出てきますが、「セル」ごとに実行できる)のが非常に便利なツールになっています。
最小限の用語
セル
これ一つ一つを「セル」と言う。文章を入力する、プログラムを実行するといったときの最小単位で、セルごとに分けて作業を行えるのがJupyter notebook の便利なところ。
コマンドモード
枠が青い状態を「コマンドモード」という。セルを新たに作ったり消したりといったセルに対するショートカットコマンドを受け付ける状態。
編集モード
枠が緑の状態を「編集モード」という。こちらは主にセルの中に文字を書いたり、書いた文字に対する操作を受け付ける状態。コマンドモードのセルに対してショートカット「Enter」もしくは枠内をクリックで編集モードへ、逆に編集モードの時「Esc」または「Ctrl+M」でコマンドモードに戻る。
一覧
Jupyter notebook の上のバーにある「Help」から見られます。
赤枠の下にある「Edit Keyboard Shortcuts」からキーボードショートカットの編集ができます。デフォルトではショートカットが登録されていないコマンドもあるので、必要であればこちらから登録しましょう。
Mac とWindows のコマンド互換について
筆者が普段使っているのはWindows なため、コマンドの表記はWindows 基準になります。Windows とMac の機能キーは完全な1対1対応にはなっていないため、ショートカットも一部コマンドが異なります。Help から見られる一覧に載っているのと同様の説明文を付けておくので、見出しを参照してページ内ジャンプをご活用ください。
コマンドモード用ショートカット
検索と置換 (find and replace)
- F
文字列の検索と置き換えを行う。
コマンドの検索と実行 (open the command palette)
- Ctrl+Shift+F, Ctrl+Shift+P, P
コマンド一覧を開き、検索して実行できる。ショートカットが登録されていないものはここから使う。
編集モードに移行 (enter edit mode)
セルを実行して移動 (run cell, select below)
セルを実行 (run selected cells)
セルの実行と挿入 (run cell and insert below)
セルのモードチェンジ (change cell to code/markdown/raw)
- Y , M , R
「M」でセルをMD(マークダウン)記法用に、「Y」でセルをプログラミングコード用に変更する。なお、デフォルトのセルはプログラミング用になっている。
「R」はTex用になっているようだが、数式はMD用セルに書けばよいので使用機会はごく少ない。
ちなみにMDセルはCtrl+Enter などでセルを実行しないとMDとして表示されない!!!
MD見出し化 (change cell to heading ~)
セル選択の移動 (select cell above/below)
- K, Up or J, Down
ひとつ上、または下のセルを選択する。キーボードの矢印キーと同じ。
セルの複数選択 (extend selected cells above/below)
上にセルを挿入 (insert cell above)
下にセルを挿入 (insert cell below)
セルの切り取り (cut selected cells)
セルのコピー (copy selected cells)
- C
選択中のセルをコピーする。
セルの貼り付け (paste cells above/below)
もとに戻す (undo cell deletion)
- Z
「X」で切り取るなどして消したセルをもとに戻す。
セルの削除 (delete selected cells)
- D,D [Dを2回]
選択中のセルを削除する。
セルの結合 (marge selected cells, or current cell with cell below if only one cell is selected)
- Shift+M
セルを結合する。セルをひとつだけ選択しているときは、そのセルがひとつ下のセルと結合される。セルを複数選択しているときは、それらのセルが結合される。
保存 (Save and Checkpoint)
- Ctrl+S or S
ファイルを保存する。Ctrl+Sは編集モード時も共通して使えるショートカット。
行番号の表示 (toggle line numbers/in all cells)
実行結果をたたむ (toggle output of selected cells)
実行結果をスクロール表示 (toggle output scrolling of selected cells)
ショートカット一覧 (show keyboard shortcuts)
停止 (interrupt the kernel)
リセット (restart the kernel with dialog)
(close the pager)
- Esc or Q
挙動不明。
ページスクロール (scroll notebook up/down)
- Shift+Space or Space
Shift+Spaceで上へ、Spaceで下へページをスクロールする。
編集モード用ショートカット
コード補完 (code completion or indent)
ツールチップ (tooltip)
インデント (indent/dedent)
- Ctrl+
]
or Ctrl+[
インデントの入力と削除。PythonにおけるTabと同じでSpace4つ分。
Ctrl+A (select all)
もとに戻す (undo)
- Ctrl+Z
もとに戻す。文字を誤って消した場合など、ひとつ前の操作を取り消してもとに戻す。
コメントアウト (comment)
行の削除 (delete whole line)
- Ctrl+D
カーソルのある行を削除する。
再選択 (undo selection)
上書きモード (toggle overwrite flag)
カーソルの先頭/末尾ジャンプ (go to cell start/end)
- Ctrl+Home,Ctrl+Up,Up or Ctrl+End,Ctrl+Down,Down
Ctrl+Homeでセル内の先頭へ、Ctrl+Endでセル内の末尾へジャンプする。セル内の記述が多くなってきたときに便利。
↓
カーソルの文字列ごとの移動 (go one word left/right)
文字列の削除 (delete word before/after)
(redo/redo selection)
- Ctrl+Y, Alt+U
詳細不明
コマンドモードに移行 (enter command mode)
- Ctrl+M, Esc
コマンドモードに移る。
コマンド一覧 (open the command palette)
セルの分割 (split cell at cursor)
おわりに
私自身のこんな記事があったらな、をもとに作成しましたが、いかがでしょうか。この記事が参考となって、作業スピードが上がった!となれば嬉しいかぎりです。