sim のキー操作の概要

製品のドキュメントから拾ったキー操作の概要です。ドキュメントが実装済みとしているキーだけを載せています。全キーの一覧は、製品自身のキー表 `sim/keys.tsv` です。

起動

キー動作
simsim dirカレントディレクトリ(または dir)のツリーを開く。
sim filesim file:42ファイルを開く(ツリーは閉じた状態)。行番号の指定もできる。
sim +/re fileファイルを開き、先にパターンを検索する。

保存と終了

キー動作
Ctrl-sどのモードでも保存する。
ZZ:x:wq変更があれば保存して終了する。
q:qいまのファイルを閉じる。最後の 1 つを閉じると終了する。
ZQ:q!保存せずに閉じる。
:w!読み取り専用のファイルにも保存する。ディスク上の変更に対して自分のバージョンを残す。
:wa:qa:qa!すべて保存、すべて終了、変更を捨ててすべて終了。
:cq終了コード 1 で終了する(git commit を中止できる)。

ツリー

キー動作
Ctrl-nツリーを開いてフォーカスする。フォーカス中なら閉じる。
jk下へ、上へ移動する。
lEnterディレクトリを展開する、またはファイルを開く。
h-ディレクトリを閉じる(または親へ移動する)。- はすべて閉じる。
/ルート以下の全ファイルを、入力するそばから検索する。
.ツリーを、変更・開いている・最近のファイルに絞る。もう一度押すと全部を表示する。
Escqフォーカスを本文に戻す。q でツリーを閉じる。

ファイルとテキストの検索

キー動作
Ctrl-pどこからでも、あいまい一致でファイルを探す。
Ctrl-fどこからでも、入力するそばから全ファイルの中身を検索する。
Ctrl-nCtrl-p↓↑選択を動かす。
Enter選んだ結果を開く。
Escウィンドウを閉じる。すべて元のとおりに戻る。

複数のファイル

キー動作
TabShift-Tab次と前の、開いているファイルへ移る。
:e file:e!別のファイルを開く。このファイルを再読み込みする。

vi の文法

キー動作
h j k lw b e0 ^ $gg Gf F t T ; ,%Ctrl-d Ctrl-uカウントつきのモーション。
x r J p PuCtrl-r.i a I A o Odd cc yy D C Y>> <<編集、繰り返し、取り消し。
d c y > <iw aw i" a( i{ …モーションやテキストオブジェクトと組み合わせるオペレータ。
vVoビジュアルモード: 文字単位、行単位、端の入れ替え。
/?n N* #:nohインクリメンタルで smartcase の検索と、そのハイライトの解除。
:{N}:%s/re/rep/g:{range}行へのジャンプ、置換、範囲指定(%、.、$、'<,'>)。
YUsim が vi と違う点: Y は行末までヤンク、U はやり直し。
"ayw"ap:registersレジスタ: コマンドの前に名前をつけます("ayw は a にヤンクし、"ap はそこから貼り付けます)。"A は追記、"0 は直前のヤンク、"1 から "9 は直前の削除、"+ はシステムのクリップボードに書きます。:registers で一覧できます。
ma'a`a'':marksマーク: ma で付け、'a でその行へ、バッククォートのキーでその位置へ移動し、'' は直前のジャンプの前に戻ります。:marks で一覧できます。

見た目

キー動作
zl見た目を calm、flat、depth の順に切り替える。
zhシンタックスカラーのオンとオフ。
ziアイコンのオンとオフ。
<Space>umMarkdown の閲覧ビューのオンとオフです。カーソルのある行は、いつもファイルそのままです。

git

キー動作
<Space>geHEAD と異なるファイルだけを並べたツリーです。Enter でそのファイルの HEAD のバージョンを読み取り専用で開き、もう一度 <Space>ge(または q)で戻ります。
<Space>giこのリポジトリに対して守りが何をしたかを、もう一度表示します。git を実行しなかった理由、または無効にした設定です。

マウス

キー動作
clickwheeldragクリックで開く・カーソルを置く、ホイールでスクロール、ドラッグで選択。

外部からの変更

キー動作
]c[c次の・前の、外部からの変更へ移動する。
:seen変更の印を消す。

フラグと環境変数

キー動作
sim --plain中核だけで動く。calm の見た目、ファイルは 1 つ、パネルなし、外部プログラムなし。root と sudoedit のエディタとしての既定。
sim --versionsim --help使い方と sim が読む環境変数、またはバージョンを表示して終了する。
NO_COLOR色をまったく使わない(8 色未満の端末でも同じ)。色が伝えていたことを、太さ・下線・反転で伝える。
SIM_ON_NORMALNormal モードに戻るたびに実行するコマンド。たとえば IME をオフにする。以前の名前 SI_ON_NORMAL も使える。

キーの案内

キー動作
<Space>リーダーキー。Space(や g、z、[、]、演算子)で少し待つと、次に押せるキーを並べた小さなウィンドウが開く。
F1:helpすべてのキーとコマンドを、それぞれの働きつきで検索できる一覧。:help tab で Tab、Shift-Tab、<Space>bp が見つかる。
<Space>bp各タブに文字を付け、その文字でそのファイルへ移る。
<Space>bc文字でタブを選んで閉じる。変更のあるファイルは閉じない。
:tutorスクラッチバッファで進める、約 15 分のレッスンです。言語はロケールで決まり、何も書き込みません。
notes/store.py を開いた sim。下の方に、<Space>b という題の小さなウィンドウが出て、3 つのキーが並んでいる。p(文字でタブを選ぶ)、c(閉じるタブを選ぶ)、k(もう一方のバージョンの行き先)。
which-key: Space、b と押して 200 ms 待つと、次に押せるキーを並べた小さなウィンドウが開きます。そのまま打ち続ければ、ウィンドウがないときとまったく同じに動き、Esc で閉じます。
プロジェクトのツリーと Python ファイルの上に、「Help · keys and commands」のウィンドウを開いた sim。入力欄には tab と打ってある。一致する 6 行は <Tab>、<S-Tab>、挿入モードの <Tab>、<Space>bp、<Space>bc、T{char} で、プレビューは <Tab>(次のファイル)を説明している。
:help tab: すべてのキーとコマンドを 1 つの検索できる一覧にしたものです。which-key が読むのと同じキー表から作られています。プレビューは、選んだキーが何をするかを説明します。Enter と Esc で閉じ、何も実行しません。

全一覧

キーの全一覧は、製品自身のキー表 sim/keys.tsv です。エディタの :help、F1、which-key がこの表を読み、テストが表を実際のキーの動きと突き合わせ、上のキーの案内もこの表と突き合わせているので、どれもエディタの実際とずれません。:tutor はロードマップにあります。