我一直在嘗試emacs節奏模式,它似乎可以節省我很多打字(總是一件好事),但我沒有得到它的工作方式我想要的。在維基上,有一個類似於我想要做的elisp的例子,它按預期工作。下面是我測試的完整的.emacs:如何獲得emacs速度模式使用C/C++的縮寫?
(require 'tempo)
(setq tempo-interactive t)
(tempo-define-template "lambda"
'(> "(lambda (" p ")" n> r> ")">)
nil
"Insert a template for an anonymous procedure")
(define-abbrev lisp-mode-abbrev-table "lambda" "" 'tempo-template-lambda)
這讓我輸入「拉姆達」後面有一個空格,並讓它自動插入
(lambda ()
)
在我的緩衝區與點上第一個右括號。
然而,用下面的代碼替換最後兩個SEXP的(通過塞巴斯蒂安Varrette從約阿希姆鮑曼被盜,修改由我):
(tempo-define-template "c-include"
'("#include <" r ".h>" > n)
nil
"Insert a #include <> statement")
(define-abbrev c-mode-abbrev-table "c-include" "" 'tempo-template-lambda)
不會導致模板鍵入「C-包括後要插入「後面是一個空格。這是在Ubuntu 9.04下運行的emacs 22.2.1。在我深入研究節奏代碼和/或(上帝禁止)C模式代碼之前,是否有人知道爲什麼會出現這種情況?
現貨。真正使我絆倒的是無法在縮寫中包含短劃線字符。 'tempo-template-lambda'的問題是我在嘗試這個時遇到的剪切/粘貼錯誤。非常感謝。 –