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 在路線圖上。