Emacs/如何使用 Emacs
許多 Emacs 教程都以一個長長的有用命令和鍵位列表開頭,供你記住。雖然有用,但它可能有點令人不知所措,並分散注意力。此外,其他教程可能已經做得相當不錯。
一種學習事物的替代方法是進入一種“學習債務”的形式,學習最少量的知識,以便在你需要執行操作時輕鬆找到你需要了解的資訊。然後 *玩* 你想要學習的工具。至少,這種方法可以非常引人入勝,並且在你經歷了一點痛苦之後,完整的教程通常會變得更加有趣。
我們將從 Emacs 工作原理的思維模型開始,這符合它的可擴充套件性。這種模型與一些 Emacs 的文件命令相結合,可以幫助你開始使用而無需學習太多。
- 你在 Emacs 中執行的大部分工作都是透過一個 *緩衝區* 完成的,這是一個互動式可編輯的檔案表示。
- 你在 Emacs 中執行的所有操作都是函式呼叫,即使是像按下單個鍵這樣的操作。
- 存在一個鍵對映,它將按鍵或你按下的按鍵序列對映(或繫結)到函式呼叫。
- 其中一些函式呼叫可能會互動式地請求輸入。這可以透過在螢幕底部彈出提示(迷你提示)來完成。
Emacs 旨在成為自文件的。Emacs 相當一致的模型,加上用於查詢 Emacs 內部狀態的函式,使得找到 Emacs 能做什麼以及它是如何做到這一點的非常容易。
你在 Emacs 中執行的所有操作都是透過函式呼叫完成的。這些函式往往具有描述性名稱和良好的文件。因此,透過按名稱搜尋函式,你可以找到如何執行某些操作。
你可以使用 `describe-function` 命令搜尋函式。預設情況下,此函式繫結到 *C-h f*。也就是說,你按下 Control 鍵,然後在鬆開它之前按下 h,然後鬆開 Control 鍵並按下 *f*。
這會在螢幕底部彈出一個提示,要求你輸入函式名稱。此時,你可以按下 *<TAB>* 以獲取以你迄今為止輸入的內容開頭的函式列表。
假設你想要弄清楚如何將游標向左移動。如果你按下“C-h f l e f t <TAB> <TAB>”,你會看到以 *left* 開頭的兩個函式,*left-char* 和 *left-word*。如果你完成輸入“left-char”並按下“<ENTER>”,Emacs 會顯示 *left-char* 命令的文件。
這將告訴你
- left-char 命令將游標向左移動。
- 不出所料,它繫結到左鍵。
查詢一些函式定義,並呼叫一些函式。使用“C-h f”鍵繫結查詢你想到的儘可能多的不同函式,直到你感到厭煩。看看你是否能夠識別函式名稱或它們所具有的鍵繫結中的模式。特別是,你可能對如何開啟檔案、開啟緩衝區、更改緩衝區、關閉緩衝區和退出 Emacs 感興趣。
查詢函式可能是找到如何執行此操作的好方法,但如果你似乎找不到要查詢的函式的名稱,它可能很成問題。通常情況下,你所追求的是有用的函式及其鍵繫結。有人懷疑許多讀者已經從網際網路上存在的各種 Emacs 教程、備忘單和手冊中找到了自己的列表。
可以使 Emacs 本身為你提供這樣一個列表。一個這樣的有用列表是當前繫結到某個鍵的所有函式。你可以使用繫結到“C-h f”的 describe-bindings 函式獲取它。
學習如何使用程式設計工具的另一種可能方法是隨機按下鍵,直到發生一些有趣的事情,然後檢視鍵按下到底做了什麼。你可以使用繫結到“C-h k”的 describe-key 函式來執行此操作。
一旦你開始玩 Emacs,並積累了足夠的挫敗感。你可能想要與一些參考或教程文件進行互動,函式 help-with-tutorial “C-h t” 是一個開始的地方。