2010-05-27 87 views
5

我有兩個操作,我做的所有的時間在Emacs:簡單的Emacs鍵綁定

  1. 創建一個新的緩衝區,並粘貼剪貼板。 C-S-n
  2. 關閉當前緩衝區。 C-S-w
  3. 切換到上次查看的緩衝區。 C-TAB

做前兩種操作時,我覺得自己像一個雜技演員鍵盤。我認爲這值得嘗試一些自定義鍵綁定和宏。

這個定製的幾個問題:

  1. 我怎麼會做出#1的宏?
  2. 這些很好的關鍵綁定? (我知道這是一個有點主觀的,但他們可能會被一些流行的,我不使用使用。)
  3. 有沒有人發現了一個C-TAB宏會像Alt鍵 + 標籤在Linux/Windows的?具體來說,我想根據上次查看的時間戳(最新的頂部)有一堆緩衝區。我想繼續騎自行車,直到我放開Ctrl鍵。當Ctrl鍵被釋放時,我希望當前緩衝區獲得堆棧上的更新位置。

回答

1
  1. 開始通過調用啓動KBD-宏,與端-KBD宏完成通過。之後,您可以立即使用call-last-kbd-macro來測試新的宏。如果您對結果感到滿意,您可能需要save the macro
  2. Emacs通常不使用C-S的按鍵綁定,它們易於使用,所以我會稱它們爲好。如果您使用Emacs的終端版本,它們可能會導致問題,但我認爲這不是您的情況。
  3. 我用這個簡單的代碼片段:

    (全球設置鍵(KBD 「< C-標籤>」)「埋葬緩衝)

埋葬緩衝基本上使得當前緩衝區緩衝區列表中的最後一個,這樣您就可以按可預測的順序循環緩衝區。

1
  1. 我不會爲此做一個宏,但寫一個像這個頁面上發佈的其他人的功能。您也可以使用(yank)而不是(cua-paste nil)。我不確定哪個更好,爲什麼。
  2. 我不喜歡他們那麼多。對於我經常使用的東西,我希望儘可能使用小指雜技,所以這將意味着修飾符+鍵而不是修飾符1 +修飾符2 +鍵......或者如果您不覺得綁在地毯上,請使用功能鍵。
  3. 無可奉告
4

您是否嘗試過使用水平或垂直分割窗口這個(通過C-×3C-X 2)?看起來它會給你更少的步驟 - 即使你實現了像你在談論的東西。

我發現分裂窗口真的加快了複製和粘貼操作。我使用我的號碼簿上的箭頭鍵在窗口之間切換(windmove-left/-right/-up/-down),所以它只有一個按鍵,您可以轉到您想要的窗口。

我想這與你所要求的有點不同,但它聽起來像可能有助於加快一點。

C-X左C-X右循環緩衝器,但你必須多次打它,你不能只是保持鍵按下。


爲#1創建一個宏,你剛開始一個宏,打你通常做創建一個新的緩衝鑰匙,並停止宏。

因此,這將是這樣的:

CX(CX bNEWRETCX)

然後,您可以保存NEW到文件一旦你完成粘貼,所以你可以再次使用這個宏來創建一個新的緩衝區。 C-x e嘗試宏。如果有效,您可以將其保存到您的​​文件中。這是通過做:

M-Xname-last-kbd-macro

然後你會得到一個提示輸入您所選擇的名稱。這僅適用於本屆會議。然後將名稱宏保存到您的初始化文件中。首先你打開你的.emacs或​​文件。然後你把地步,你想要的宏定義去,然後鍵入:

M-Xinsert-kbd-macro

現在,您可以運行宏通過M-X<macroname>使用其名稱。您可以綁定您的宏按鍵太(在你的.emacs或​​文件):

(global-set-key (kbd "C-c a") '<macroname>) 

例如,這是怎麼您​​看起來創建打開一個名爲NEW新的緩衝區不與一個關聯的宏之後文件和這個宏綁定到抄送ñ

;; Creates a new unassociated buffer called NEW 
(fset 'new-buffer "\C-xbNEW\C-m"); 
;; Shortcut for new-buffer 
(global-set-key (kbd "C-c n") 'new-buffer) 

您也可以扔在粘貼,緩衝關閉,緩衝開關操作。我想你必須手動將緩衝區保存到文件。

一些資源