sim 按键速览

取自产品文档的按键概览。这里只列出文档中标明已实现的按键。完整列表就是产品自己的按键表 `sim/keys.tsv`。

启动

按键作用
simsim dir打开当前目录或 dir 的文件树。
sim filesim file:42打开一个文件(文件树保持关闭),可选择定位到某一行。
sim +/re file打开一个文件,并先搜索一个模式。

保存与退出

按键作用
Ctrl-s在任何模式下保存。
ZZ:x:wq如有修改则保存,然后退出。
q:q关闭当前文件;关闭最后一个文件则退出。
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>um开关 Markdown 阅读视图。光标所在的行始终是文件本身的文本。

git

按键作用
<Space>ge只包含与 HEAD 不同的文件的树;Enter 以只读方式打开该文件在 HEAD 中的版本,再按一次 <Space>ge(或 q)返回。
<Space>gi再说一遍守卫对这个仓库做了什么:为什么没有运行 git,或者关闭了哪些设置。

鼠标

按键作用
clickwheeldrag点击以打开文件或放置光标,滚轮滚动,拖动选择。

来自外部的改动

按键作用
]c[c跳到下一处或上一处来自外部的改动。
:seen清除改动标记。

命令行标志与环境变量

按键作用
sim --plain只有核心:calm 外观、单个文件、没有面板、没有外部程序。以 root 身份运行或作为 sudoedit 的编辑器时是默认行为。
sim --versionsim --help打印用法和 sim 读取的环境变量,或打印版本,然后退出。
NO_COLOR完全不用颜色,在少于 8 种颜色的终端上也一样:用粗细、下划线和反显来表达颜色原本表达的含义。
SIM_ON_NORMAL每次回到普通模式时运行的命令,例如用来关闭输入法。其旧名称 SI_ON_NORMAL 仍然有效。

按键提示

按键作用
<Space>leader 键。在 Space(或 g、z、[、]、操作符)上稍等片刻,会打开一个小窗口,列出接下来可以按的键。
F1:help可搜索的全部按键和命令列表,并说明各自的作用。:help tab 能找到 Tab、Shift-Tab 和 <Space>bp。
<Space>bp给每个标签页标上字母;按下字母即可跳到对应的文件。
<Space>bc按字母选择要关闭的标签页。已修改的文件会保持打开。
:tutor在临时缓冲区里进行的约十五分钟课程,语言取决于你的区域设置;不会写入任何内容。
sim 显示 notes/store.py。靠近底部有一个标题为 <Space>b 的小窗口,列出三个键:p,按字母选择标签;c,选择要关闭的标签;k,另一个版本去了哪里。
which-key:按 Space,再按 b,然后停顿 200 ms,就会出现一个小窗口,列出接下来可以按的键。继续输入的效果与它不存在时完全一样,Esc 会关闭它。
sim 显示标题为 Help · keys and commands 的窗口,浮在项目树和一个 Python 文件之上,其输入框中键入了 tab。有六行匹配:<Tab>、<S-Tab>、插入模式下的 <Tab>、<Space>bp、<Space>bc 和 T{char}。预览说明了 <Tab>:下一个文件。
:help tab:所有按键和命令都在同一个可搜索的列表里,它与 which-key 读取的是同一张按键表。预览会说明所选按键的作用。Enter 和 Esc 会关闭它,且不运行任何东西。

完整列表

完整列表就是产品自己的按键表 sim/keys.tsv。编辑器的 :help、F1 和 which-key 都读取它,它的测试会对照按键的实际作用进行检查,上面的按键指引也会对照它检查,因此它们都不会与编辑器脱节。:tutor 在路线图上。