CEO 的 Emacs 祕籍

2018-12-31 20:16:00

幾年前,不,是幾十年前,我就在用 Emacs。不論是碼程式碼、編寫文件,還是管理郵件和日程,我都用這個編輯器,或者是說作業系統,而且我還樂此不疲。許多年過去了,我也轉向了其他更新、更好的工具。結果,就連最基本的檔案瀏覽,我都已經忘了在不用滑鼠的情況下該怎麼操作。大約三個月前,我意識到我在應用程式和計算機之間切換上耗費了大量的時間,於是我決定再次使用 Emacs。這是個很正確的決定,原因有以下幾個。其中包括用 .emacs 和 Dropbox 來搭建一個良好的、可移植的環境的一些技巧。

對於那些還沒用過 Emacs 的人來說,Emacs 會讓你愛恨交加。它有點像一個房子大小的魯布·戈德堡機械Rube Goldberg machine,乍一看,它具備烤麵包機的所有功能。這聽起來不像是一種認可,但關鍵詞是“乍一看”。一旦你瞭解了 Emacs,你就會意識到它其實是一台可以當發動機用的熱核烤麵包機……好吧,只是指文字處理的所有事情。當考慮到你計算機的使用週期在很大程度上都是與文字有關時,這是一個相當大膽的宣告。大膽,但卻是真的。

也許對我來說更重要的是,Emacs 是我曾經使用過的一個應用,並讓我覺得我真正的擁有它,而不是把我塑造成一個匿名的“使用者”,就好像位於 Soma(LCTT 譯註:舊金山的一個街區)或雷蒙德(LCTT 譯註:微軟總部所在地)附近某個高檔辦公室的產品行銷部門把錢作為明確的目標一樣。現代生產力和創作應用程式(如 Pages 或 IDE)就像碳纖維賽車,它們裝備得很好,也很齊全。而 Emacs 就像一盒經典的 Campagnolo (LCTT 譯註:世界上最好的三個公路自行車套件系統品牌之一)零件和一個漂亮的自行車牽引式鋼框架,但缺少曲柄臂和剎車桿,你必須在網上某個小眾文化中找到它們。前者更快而且很完整,後者是無盡的快樂或煩惱的源泉,當然這取決於你自己,而且這種快樂或煩惱會伴隨到你死。我就是那種在找到一堆老古董或用 Emacs Lisp 設定編輯器時會感到高興的人,具體情況因人而異。

1933 steel bicycle

一輛我還在騎的 1933 年產的鋼製自行車。你可以看看框架管差別: https://www.youtube.com/watch?v=khJQgRLKMU0

這可能給人一種 Emacs 已經過氣或過時的印象。然而並不是,Emacs 是強大和永恆的,只要你耐心地去理解它的一些規則。Emacs 的規則很另類,也很奇怪,但其中的邏輯卻引人注目,且魅力十足。對於我來說, Emacs 更像是未來而不是過去。就像牽引式鋼框架在未來幾十年裡將會變得好用和舒適,而神奇的碳纖維自行車將會被扔進垃圾場,在撞擊中粉碎一樣,Emacs 也將會作為一種在最新的流行應用早已被遺忘的時候的好用的工具繼續存在這裡。

使用 Lisp 程式碼來構建個人工作環境,並將這個恰到好處的環境移植到任何計算機,如果這種想法打動了你,那麼你將會愛上 Emacs。如果你喜歡很潮、很炫的,又不想投入太多時間和精力的情況下就能直接工作的話,那麼 Emacs 可能不適合你。我已經不再寫程式碼了(除了 Ludwig 和 Emacs Lisp),但是 Fugue 公司的很多工程師都使用 Emacs 來提高碼程式碼的效率。我公司有 30% 的工程師用 Emacs,40% 用 IDE 和 30% 的用 vim。但這篇文章是寫給 CEO 和其他精英Pointy-Haired Bosses(PHB1 )(以及對 Emacs 感興趣的人)的,所以我將解釋或者說辯解我為什麼喜歡它以及我如何使用它。同時我也希望我能介紹清楚,從而讓你有個良好的體驗,而不是花上幾個小時去 Google。

恆久優勢

使用 Emacs 帶來的長期優勢是讓生活更輕鬆。與最後的收穫相比,最開始的付出完全值得。想想這些:

簡單高效

Org 模式本身就值得花時間,但如果你像我一樣,你通常要處理十幾份左右的檔案 —— 從部落格貼文到會議事務清單,再到員工評估。在現代計算世界中,這通常意味著要使用多個應用程式,所有這些程式都有不同的使用者介面、儲存方式、排序和搜尋方式。結果就是你需要不斷轉換思維環境,記住各種細節。我討厭在程式間切換,這是在強人所難,因為這是個不完整介面模型2 ,並且我討厭記住本該由計算機記住的東西。在單個環境下,Emacs 對 PHB 甚至比對於程式設計師更高效,因為程式設計師更多時候只需要專注於一個程式。轉換思維環境的成本比表面上的要更高。作業系統和應用程式廠商已經構建了各種介面,以分散我們對這一現實的注意力。如果你是技術人員,通過快捷鍵(M-:)來存取功能強大的語言直譯器會方便的多3

許多應用程式可以全天全螢幕地用於編輯文字。但Emacs 是唯一的,因為它既是編輯器也是 Emacs Lisp 直譯器。從本質上來說,你工作時只要用電腦上的一兩個鍵就能完成。如果你略懂程式設計的話,就會發現這代表著你可以在 Emacs 中做 任何事情。一旦你在記憶體中儲存了這些指令,你的電腦就可以在工作時幾乎實時地為你提供高效的運轉。你不會想用 Emacs Lisp 來重建 Excel,因為只要用簡單的一兩行程式碼就能實現 Excel 中大多數的功能。比如說我要處理數位,我更有可能轉到 scratch 緩衝區,編寫一些程式碼,而不是開啟電子試算表。即便是要寫一封比較大的郵件時,我通常也會先在 Emacs 中寫完,然後再複製貼上到郵件用戶端中。當你可以流暢的書寫時,為什麼要去切換呢?你可以先從一兩個簡單的算術開始,隨著時間的推移,你可以很容易的在 Emacs 中新增你所需要處理的計算。這在應用程式中可能是獨一無二的,同時還提供了讓為其他的人創造的豐富特性。還記得艾薩克·阿西莫夫書中那些神奇的終端嗎? Emacs 是我所遇到的最接近它們的東西4 。我決定不再用什麼應用程式來做這個或那個。相反,我只是工作。擁有一個偉大的工具並致力於此,這才是真正的動力和效率。

靜中造物

擁有所發現的最好的文字編輯功能的最終結果是什麼?有一群人在做各種各樣有用的補充嗎?發揮了 Lisp 鍵盤的全部威力了嗎?我用 Emacs 來完成所有的創作性工作,音樂和圖片除外。

我辦公桌上有兩個顯示器。其中一塊豎屏是將 Emacs 全天全螢幕顯示,另一個顯示瀏覽器,用來搜尋和閱讀,我通常也會開啟一個終端。我將日曆、郵件等放在 OS X 的另一個桌面上,當我使用 Emacs 時,這個桌面會隱藏起來,同時我也會關掉所有通知。這樣就能讓我專注於我手頭上在做的事了。我發現,越是先進的 UI 應用程式,消除干擾越是不可能,因為這些應用程式致力於提供幫助和易用性。我不需要經常被提醒該如何操作,我已經做了成千上萬次了,我真正需要的是一張乾淨整潔的白紙用來思考。也許因為年齡和自己的“惡習”,我不太喜歡處在嘈雜的環境中,但我認為這值得一試。看看在你電腦環境中有一些真正的寧靜是怎樣的。當然,現在很多應用程式都有隱藏介面的模式,謝天謝地,蘋果和微軟現在都有了真正意義上的全螢幕模式。但是,沒有並沒有應用程式可以強大到足以“處理”大多數事務。除非你整天寫程式碼,或者像出書一樣,處理很長的文件,否則你仍然會面臨其他應用程式的干擾。而且,大多數現代應用程式似乎同時顯得自視甚高,缺乏功能和可用性5 。比起 office 桌面版,我更討厭它的線上版。

我的桌面布局, Emacs 在左邊

但是溝通呢?創造和溝通之間的差別很大。當我將這兩件事在不同時間段處理時,我的效率會更高。我們 Fugue 公司使用 Slack,痛並快樂著。我把 Slack 和我的日曆、電子郵件放在一個即時通訊的桌面上,這樣,當我正在做事時,我就能夠忽略所有的聊天資訊了。雖然只要一個 Slackstorm 或一封風投或董事會董事的電子郵件,就能讓我立刻丟掉手頭工作。但是,大多數事情通常可以等上一兩個小時。

普適恆久

第三個原因是,我發現 Emacs 比其它的環境更有優勢的是,你可以很容易地用它來處理事務。我的意思是,你所需要的只是通過類似於 Dropbox 的網站同步一兩個目錄,而不是讓大量的應用程式以它們自己的方式進行互動和同步。然後,你可以在任何你已經精心打造了適合你的目的的套件的環境中工作了。我在 OS X、Windows,或有時在 Linux 都是這樣做的。它非常簡單可靠。這種功能很有用,以至於我害怕處理 Pages、Google Docs、Office 或其他型別的檔案和應用程式,這些檔案和應用程式會迫使我回到檔案系統或雲中的某個地方去尋找。

限制在計算機上永久儲存的因素是檔案格式。假設人類已經解決了儲存問題6 ,隨著時間的推移,我們面臨的問題是我們能否夠繼續存取我們建立的資訊。文字檔案是儲存時間最久的格式。你可以用 Emacs 輕鬆地開啟 1970 年的文字檔案。然而對於 Office 應用程式卻並非如此。同時文字檔案要比 Office 應用程式資料檔案小得多,也要好的多。作為一個數碼背包迷,作為一個在腦子裡一閃而過就會做很多小筆記的人,擁有一個簡單、輕便、永久、隨時可用的東西對我來說很重要。

如果你準備嘗試 Emacs,請繼續讀下去!下面的部分不是完整的教學,但是在讀完後,就可以動手操作了。

駕馭之道 —— 專業客製化

所有這些強大、精神上的平靜和安寧的代價是,Emacs 有一個陡峭的學習曲線,它的一切都與你以前所習慣的不同。一開始,這會讓你覺得你是在浪費時間在一個過時和奇怪的應用程式上,就好像穿越到過去。這有點像你只開過車,卻要你去學騎自行車7

型別抉擇

我用的是來自 GNU 的 OS X 和 Windows 的通用版本的 Emacs。你可以在 http://emacsformacos.com/ 獲取 OS X 版本,在 http://www.gnu.org/software/emacs/ 獲取 Windows 版本。市面上還有很多其他版本,尤其是 Mac 版本,但我發現,要做一些功能強大的東西(涉及到 Lisp 和許多模式),學習曲線要比實際操作低得多。下載,然後我們就可以開始了8

駕馭之始

在本文中,我將使用 Emacs 的按鍵和組合鍵約定。C 表示 Control 鍵,M 表示 meta(通常是 AltOption 鍵),以及用於組合鍵的連字元。因此,C-h t 表示同時按下 Controlh 鍵,然後釋放,再按下 t。這個組合快捷鍵會指向一個教學,這是你首先要做的一件事。

不要使用方向鍵或滑鼠。它們可以工作,但是你應該給自己一週的時間來使用 Emacs 教學中的原生的導航命令。一旦你這些命令變為了肌肉記憶,你可能就會樂在其中,無論到哪裡,你都會非常想念它們。這個 Emacs 教學在介紹它們方面做得很好,但是我將進行總結,所以你不需要閱讀全部內容。最無聊的是,不用方向鍵,用 C-b 向前移動,用 C-f 向後移動,上一行用 C-p,下一行用 C-n。你可能會想:“我用方向鍵就很好,為什麼還要這樣做?” 有幾個原因。首先,你不需要從主鍵盤區將你的手移開。第二,使用 Alt(或用 Emacs 的說法 Meta)鍵來向前或向後在單詞間移動。顯而易見這樣更方便。第三,如果想重複某個命令,可以在命令前面加上一個數位。在編輯文件時,我經常使用這種方法,通過估計向後移動多少個單詞或向上或向下移動多少行,然後按下 C-9 C-pM-5 M-b 之類的快捷鍵。其它真正重要的導航命令基於開頭用 a 和結尾用 e。在行中使用 C-a|e,在句中使用 M-a|e。為了讓句中的命令正常工作,需要在句號後增加兩個空格,這同時提供了一個有用的特性,並消除了腦中一個過時的觀點。如果需要將文件匯出到單個空間發布環境,可以編寫一個宏來執行此操作。

Emacs 所附帶的教學很值得去看。對於真正缺乏耐心的人,我將介紹一些重要的命令,但那個教學非常有用。記住:用 C-h t 進入教學。

駕馭之複製貼上

你可以把 Emacs 設為 CUA 模式,這將會以熟悉的方式工作來操作複製貼上,但是原生的 Emacs 方法更好,而且你一旦學會了它,就很容易。你可以使用 Shift 和導航命令來標記區域(如同選擇)。所以 C-F 是選中游標前的一個字元,等等。亦可以用 M-w 來複製,用 C-w 剪下,然後用 C-y 貼上。這些實際上叫做刪除killing召回yanking,但它非常類似於剪下和貼上。在刪除中還有一些小技巧,但是現在,你只需要關注剪下、複製和貼上。如果你開始嘗試了,那麼 C-x u 是復原。

駕馭之 Ido 模式

相信我,Ido 會讓檔案的工作變得很簡單。通常,你在 Emacs 中處理檔案不需要使用一個單獨的訪達或檔案資源管理器的視窗。相反,你可以用編輯器的命令來建立、開啟和儲存檔案。如果沒有 Ido 的話,這將有點麻煩,所以我建議你在學習其他之前安裝好它。 Ido 是 Emacs 的 22 版時開始出現的,但是需要對你的 .emacs 檔案做一些調整,來確保它一直開啟著。這是個設定環境的好理由。

Emacs 中的大多數功能都表現在模式上。要安裝指定的模式,需要做兩件事。嗯,一開始你需要做一些額外的事情,但這些只需要做一次,然後再做這兩件事。那麼,這件額外的事情是你需要一個單獨的位置來放置所有 Emacs Lisp 檔案,並且你需要告訴 Emacs 這個位置在哪。我建議你在 Dropbox 上建立一個單獨的目錄,那是你 Emacs 主目錄。在這裡,你需要建立一個 .emacs 檔案和 .emacs.d 目錄。在 .emacs.d 目錄下,建立一個 lisp 的目錄。就像這樣:

home|+.emacs|-.emacs.d  |  -lisp

你可以將 .el 檔案,比如說模式檔案,放到 home/.emacs.d/lisp 目錄下,然後在你的 .emacs 檔案中新增以下程式碼來指明該路徑:

(add-to-list 'load-path "~/.emacs.d/lisp/")

Ido 模式是 Emacs 自帶的,所以你不需要在你的 lisp 目錄中放這個 .el 檔案,但你仍然需要新增上面程式碼,因為下面的介紹會使用到它.

駕馭之符號連結

等等,這裡寫的 .emacs.emacs.d 都是存放在你的主目錄下,但我們把它們放到了 Dropbox 的某些愚蠢的資料夾!對,這就讓你的環境在任何地方都很容易使用。把所有東西都儲存在 Dropbox 上,並做符號連結到 ~ 下的 .emacs.emacs.d 和你的主要存放文件的目錄。在 OS X 上,使用 ln -s 命令非常簡單,但在 Windows 上卻很麻煩。幸運的是,Emacs 提供了一種簡單的方法來替代 Windows 上的符號連結,Windows 的 HOME 環境變數。轉到 Windows 的環境變數(Windows 10,你可以按 Windows 鍵然後輸入 “環境變數” 來搜尋,這是 Windows 10 最好的地方了),在你的帳戶下建立一個指向你在 Dropbox 中 Emacs 的資料夾的 HOME 環境變數。如果你想方便地瀏覽 Dropbox 之外的本地檔案,你可能想在你的實際主目錄下建立一個到 Dropbox 下 Emacs 主目錄的符號連結。

至此,你已經完成了在任意機器上指向你的 Emacs 設定和檔案所需的技巧。如果你買了一台新電腦,或者用別人的電腦一小時或一天,你就可以得到你的整個工作環境。第一次操作起來似乎有點難,但是一旦你知道你在做什麼,就(最多)只需要 10 分鐘。

但我們現在是在設定 Ido ……

按下 C-x C-f 然後輸入 ~/.emacs 和兩次回車來建立 .emacs 檔案,將下面幾行新增進去:

;; set up ido mode(require `ido)(setq ido-enable-flex-matching t)(setq ido-everywhere t)(ido-mode 1)

.emacs 視窗開著的時候,執行 M-x evaluate-buffer 命令。如果某處弄錯了的話,將得到一個錯誤,或者你將得到 Ido。Ido 改變了在 minibuffer 中操作檔案操方式。關於這個有一篇比較好的文件,但是我也會指出一些技巧。有效地使用 ~/;你可以在 minibuffer 的任何地方輸入 ~/,它就會跳轉到主目錄。這就意味著,你應該讓你的大部分東西就近的放在主目錄下。我用 ~/org 目錄來儲存所有非程式碼的東西,用 ~/code 儲存程式碼。一旦你進入到正確的目錄,通常會擁有一組具有不同擴充套件名的檔案,特別是當你使用 Org 模式並從中發布的話。你可以輸入 . 和想要的擴充套件名,無論你的在檔名的什麼位置,Ido 都會將選擇限制在具有該擴充套件名的檔案中。例如,我在 Org 模式下寫這篇部落格,所以該檔案是:

~/org/blog/emacs.org

我偶爾也會用 Org 模式發布成 HTML 格式,所以我將在同一目錄下得到 emacs.html 檔案。當我想開啟該 Org 檔案時,我會輸入:

C-x C-f ~/o[RET]/bl[RET].or[RET]

其中 [RET] 是我使用 Ido 模式的自動補全而按下的確認鍵。所以,這只需要按 12 個鍵,如果你習慣了的話, 這將比開啟訪達或檔案資源管理器再用滑鼠點要節省 多時間。 Ido 模式很有用,而這只是操作 Emacs 的一種實用模式而已。下面讓我們去探索一些其它對完成工作很有幫助的模式吧。

駕馭之字型風格

我推薦在 Emacs 中使用漂亮的字型族。它們可以使用不同的括號、0 和其他字元進行自定義。你可以在字型檔案本身中構建額外的行間距。我推薦 1.5 倍的行間距,並在程式碼和資料中使用不等寬字型。寫作中我用 Serif 字型,它有一種緊湊但時髦的感覺。你可以在 http://input.fontbureau.com/ 上找到它們,在那裡你可以根據自己的喜好進行客製化。你可以使用 Emacs 中的選單手動設定字型,但這會將程式碼儲存到你的 .emacs 檔案中,如果你使用多個裝置,你可能需要一些不同的設定。我將我的 .emacs 設定為根據使用的機器的名稱來相應設定螢幕。程式碼如下:

;; set up fonts for different OSes. OSX toggles to full screen.(setq myfont "InputSerif")(cond((string-equal system-name "Sampo.local") (set-face-attribute 'default nil :font myfont :height 144) (toggle-frame-fullscreen))((string-equal system-name "Morpheus.local") (set-face-attribute 'default nil :font myfont :height 144))((string-equal system-name "ILMARINEN") (set-face-attribute 'default nil :font myfont :height 106))((string-equal system-name "UKKO") (set-face-attribute 'default nil :font myfont :height 104)))

你應該將 Emacs 中的 system-name 的值替換成你通過 (system-name) 得到的值。注意,在 Sampo (我的 MacBook)上,我還將 Emacs 設定為全螢幕。我也想在 Windows 實現這個功能,但是 Windows 和 Emacs 好像互相嫌棄對方,當我嘗試設定時,它總是不穩定。相反,我只能在啟動後手動全螢幕。

我還建議去掉 Emacs 中的上世紀 90 年代出現的難看工具列,當時比較流行在應用程式中使用工具列。我還去掉了一些其它的“電鍍層”,這樣我就有了一個簡單、高效的介面。把這些加到你的 .emacs 的檔案中來去掉工具列和捲軸,但要保留選單(在 OS X 上,它將被隱藏,除非你將滑鼠到螢幕頂部):

(if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))(if (fboundp 'tool-bar-mode) (tool-bar-mode -1))(if (fboundp 'menu-bar-mode) (menu-bar-mode 1))

駕馭之 Org 模式

我基本上是在 Org 模式下處理工作的。它是我創作文件、記筆記、列任務清單以及 90% 其他工作的首選環境。Org 模式是筆記和待辦事項列表的組合工具,最初是由一個在會議中使用筆記型電腦的人構想出來的。我反對在會議中使用筆記型電腦,自己也不使用,所以我的用法與他的有些不同。對我來說,Org 模式主要是一種處理結構中內容的方式。在 Org 模式中有標題和副標題等,它們的作用就像一個大綱。Org 模式允許你展開或隱藏大綱樹,還可以重新排列該樹。這正合我意,並且我發現用這種方式使用它是一種樂趣。

Org 模式也有很多讓生活愉快的小功能。例如,註腳處理非常好,LaTeX/PDF 輸出也很好。Org 模式能夠根據所有文件中的待辦事項生成議程,並能很好地將它們與日期/時間聯絡起來。我不把它用在任何形式的外部任務上,這些任務都是在一個共用的日曆上處理的,但是在建立事物和跟蹤我未來需要建立的東西時,它是無價的。安裝它,你只要將 org-mode.el 放到你的 lisp 目錄下。如果你想要它基於文件的結構進行縮排並在開啟時全部展開的話,在你的 .emacs 檔案中新增如下程式碼:

;; set up org mode(setq org-startup-indented t)(setq org-startup-folded "showall")(setq org-directory "~/org")

最後一行是讓 Org 模式知道在哪裡查詢要包含在議程和其他事情中的檔案。我把 Org 模式儲存在我的主目錄中,也就是說,像前面介紹的一樣,它是 Dropbox 目錄的一個符號連結。

我有一個總是在緩衝區中開啟的 stuff.org 檔案。我把它當作記事本。Org 模式使得提取待辦事項和有期限的事情變得很容易。當你能夠內聯 Lisp 程式碼並在需要計算它時,它特別有用。擁有包含內容的程式碼非常方便。同樣,你可以使用 Emacs 存取實際的計算機,這是一種解放。

用 Org 模式進行發布

我關心的是文件的外觀及格式。我剛開始工作時是個設計師,而且我認為資訊可以,也應該表現得清晰和美麗。Org 模式對將 LaTeX 生成 PDF 支援的很好,LaTeX 雖然也有學習曲線,但是很容易處理一些簡單的事務。

如果你想使用字型和樣式,而不是典型的 LaTeX 字型和樣式,你需要做些事。首先,你要用到 XeLaTeX,這樣就可以使用普通的系統字型,而不是 LaTeX 的特殊字型。接下來,你需要將以下程式碼新增到 .emacs 中:

(setq org-latex-pdf-process '("xelatex -interaction nonstopmode %f"  "xelatex -interaction nonstopmode %f"))

我把這個放在 .emacs 中 Org 模式設定部分的末尾,使文件變得更整潔。這讓你在從 Org 模式發布時可以使用更多格式化選項。例如,我經常使用:

#+LaTeX_HEADER: \usepackage{fontspec}#+LATEX_HEADER: \setmonofont[Scale=0.9]{Input Mono}#+LATEX_HEADER: \setromanfont{Maison Neue}#+LATEX_HEADER: \linespread{1.5}#+LATEX_HEADER: \usepackage[margin=1.25in]{geometry}#+TITLE: Document Title Here

這些都可以在 .org 檔案中找到。我們的公司規定的正文字型是 Maison Neue,但你也可以在這寫上任何適當的東西。我很是抵制 Maison Neue,因為這是一種糟糕的字型,任何人都不應該使用它。

這個檔案是一個使用該設定輸出為 PDF 的範例。這就是開箱即用的 LaTeX 一樣。在我看來這還不錯,但是字型很平淡,而且有點奇怪。此外,如果你使用標準格式,人們會覺得他們正在閱讀的東西是、或者假裝是一篇學術論文。別怪我沒提醒你。

駕馭之 Ace Jump 模式

這只是一個輔助模式,而不是一個主模式,但是你也需要它。其工作原理有點像之前提到的 Jef Raskin 的 Leap 功能9 。 按下 C-c C-SPC,然後輸入要跳轉到單詞的第一個字母。它會高亮顯示所有以該字母開頭的單詞,並將其替換為字母表中的字母。你只需鍵入所需位置的字母,游標就會跳轉到該位置。我常將它作為導航鍵或是用來檢索。將 .el 檔案下到你的 lisp 目錄下,並在 .emacs 檔案新增如下程式碼:

;; set up ace-jump-mode(add-to-list 'load-path "which-folder-ace-jump-mode-file-in/")(require 'ace-jump-mode)(define-key global-map (kbd "C-c C-SPC" ) 'ace-jump-mode)

待續

本文已經夠詳細了,你能在其中得到你所想要的。我很想知道除程式設計之外(或用於程式設計)Emacs 的使用情況,及其是否高效。在我使用 Emacs 的過程中,可能存在一些自作聰明的老闆式想法,如果你能指出來,我將不勝感激。之後,我可能會寫一些更新來介紹其它特性或模式。我很確定我將會向你展示如何在 Emacs 和 Ludwig 模式下使用 Fugue,因為我會將它發展成比程式碼高亮更有用的東西。更多想法,請在 Twitter 上 @fugueHQ

註腳


  1. 如果你是位精英,但從沒涉及過技術方面,那麼 Emacs 並不適合你。對於少數的人來說,Emacs 可能會為他們開闢一條通往計算機技術方面的道路,但這只是極少數。如果你知道怎麼使用 Unix 或 Windows 的終端,或者曾編輯過 dotfile,或者說你曾寫過一點程式碼的話,這對使用 Emacs 有很大的幫助。 ?

  2. 參考連結: http://archive.wired.com/wired/archive/2.08/tufte.html ?

  3. 我主要是在寫作時使用這個模式來進行一些運算。比如說,當我在給一個新雇員寫一封入職信時,我想要算這封入職信中有多少個選項。由於我在我的 .emacs 為 outstanding-shares 定義了一個變數,所以我只要按下 M-: 然後輸入 (* .001 outstanding-shares) 就能再無需開啟計算器或電子試算表的情況下得到精度為 0.001 的結果。我使用了 大量 的變數來避免程式間切換。 ?

  4. 缺少的部分是 web。有個名為 eww 的 Emacs 網頁瀏覽器能夠讓你在 Emacs 中瀏覽網頁。我用的就是這個,因為它既能攔截廣告(LCTT 譯註:實質上是無法顯示,/laugh),同時也在可讀性方面為 web 開發者消除了大多數差勁的選項。這個其實有點類似於 Safari 的閱讀模式。不幸的是,大部分網站都有很多令人討厭的繁瑣的東西以及難以轉換為文字的導航, ?

  5. 易用性和易學性這兩者經常容易被搞混。易學性是指學習使用工具的難易程度。而易用性是指工具高效的程度。通常來說,這是要差別的,就想滑鼠和選單欄的差別一樣。選單欄很容易學會,但是卻不怎麼高效,以致於早期會存在一些鍵盤的快捷鍵。除了在 GUI 方面上,Raskin 在很多方面上的觀點都很正確。如今,作業系統正在將一些合適的搜尋對映到鍵盤的快捷鍵上。比如說在 OS X 和 Windows 上,我預設的導航方式就是搜尋。Ubuntu 的搜尋做的很差勁,如同它的 GUI 一樣差勁。 ?

  6. 在有網的情況下,AWS S3 是解決檔案儲存問題的有效方案。數萬億個物件存在 S3 中,但是從來沒有遺失過。大部分提供雲端儲存的服務都是在 S3 上或是模擬 S3 構建的。沒人能夠擁有 S3 一樣的規模,所以我將重要的檔案通過 Dropbox 儲存在上面。 ?

  7. 目前,你可能會想:“這個人和自行車有什麼關係?”……我在各個層面上都喜歡自行車。自行車是迄今為止發明的最具機械效率的交通工具。自行車可以是真正美麗的事物。而且,只要注意點的話,自行車可以用一輩子。早在 2001 年,我曾向 Rivendell Bicycle Works 訂購了一輛自行車,現在我每次看到那輛自行車依然很高興,自行車和 Unix 是我接觸過的最好的兩個發明。對了,還有 Emacs。 ?

  8. 這個網站有一個很棒的 Emacs 教學,但不是這個。當我瀏覽這個頁面時,我確實得到了一些對獲取高效的 Emacs 設定很重要的知識,但無論怎麼說,這都不是個替代品。 ?

  9. 20 世紀 80 年代,Jef Raskin 與 Steve Jobs 在 Macintosh 專案上鬧翻後, Jef Raskin 又設計了 Canon Cat 計算機。這台 Cat 計算機是以文件為中心的介面(所有的計算機都應如此),並以一種全新的方式使用鍵盤,你現在可以用 Emacs 來模仿這種鍵盤。如果現在有一台現代的,功能強大的 Cat 計算機並配有一個高分辨的顯示器和 Unix 系統的話,我立馬會用 Mac 來換。https://youtu.be/oTlEU_X3c?t=19s ?