2010-05-27 9 views
5

Ich habe zwei Operationen, die ich die ganze Zeit in Emacs tun:Einfache Emacs keybindings

  1. einen neuen Puffer anlegen und über die Zwischenablage einfügen. C-S-n
  2. Schließen Sie den aktuellen Puffer. C-S-w
  3. Zum zuletzt angezeigten Puffer wechseln. C-TAB

ich wie eine Tastatur Akrobat fühlen, wenn die ersten beiden Operationen zu tun. Ich denke, dass es sich lohnt, einige benutzerdefinierte Tastenbelegungen und Makros auszuprobieren.

Ein paar Fragen zu dieser Anpassung:

  1. Wie würde ich einen Makro für 1 # zu machen?
  2. Sind das gute Tastenbindungen? (Ich weiß, dass dies ein wenig subjektiv, aber sie könnten durch populär etwas verwendet werden, dass ich nicht verwenden.)
  3. Hat gefunden jemand einen C-TAB-Makro, wie Alt handeln + Tab in Linux/Windows? Insbesondere möchte ich einen Pufferstapel gemäß dem zuletzt angezeigten Zeitstempel haben (zuletzt oben). Ich möchte weiter durch den Stapel fahren, bis ich den Schlüssel Ctrl loslassen. Wenn der Schlüssel Ctrl freigegeben wird, möchte ich, dass der aktuelle Puffer eine aktualisierte Position auf dem Stapel erhält.

Antwort

1
  1. Start von Start-kbd-macro Aufruf beenden, indem sie mit End-kbd-macro. Anschließend können Sie das neue Makro sofort mit Call-Last-kbd-Makro testen. Wenn Sie mit dem Ergebnis zufrieden sind, möchten Sie vielleicht save the macro.
  2. Emacs verwendet im Allgemeinen keine C-S Tastenbindungen und sie sind einfach zu bedienen, also würde ich sie gut nennen. Sie könnten Probleme verursachen, wenn Sie die Terminal-Version von Emacs verwenden, aber ich nehme an, dass das bei Ihnen nicht der Fall ist.
  3. Ich benutze diesen einfachen Code-Schnipsel:

    (global-set-Taste (kbd "< C-Register >") ‚begraben-Puffer)

begraben-Puffer im Grunde macht den aktuellen Puffer die letzte in der Pufferliste, so dass Sie in der Lage sind, Puffer in einer vorhersagbaren Reihenfolge zu durchlaufen.

1
  1. würde ich kein Makro dafür machen, aber eine Funktion wie jemand anderes auf dieser Seite veröffentlicht schreiben. Anstelle von (cua-paste nil) können Sie auch (yank) verwenden. Ich bin mir nicht sicher, welches besser ist und warum.
  2. Ich mag sie nicht so sehr. Für Dinge, die ich oft benutze, würde ich gerne so wenig Fingerakrobatik wie möglich machen, also würde das Modifikator + Schlüssel anstelle von Modifikator1 + Modifikator2 + Schlüssel bedeuten. Oder benutze eine Funktionstaste, wenn du dich nicht an die Homerow gebunden fühlst .
  3. kein Kommentar
4

Haben Sie versucht mit vertikal oder horizontal für diesen Split Fenster (via C-x 3 oder C-x 2)? Es scheint, als würde es Ihnen weniger Schritte geben - selbst wenn Sie etwas umsetzen, von dem Sie sprechen.

Ich finde geteilte Fenster wirklich beschleunigen Kopieren und Einfügen Operationen. Ich benutze die Pfeiltasten auf meinem Nummernblock, um zwischen den Fenstern zu wechseln (windmove-left/-right/-up/-down), es ist also nur eine Taste zu drücken und du gehst zu dem Fenster, das du willst.

Ich denke, das ist ein bisschen anders als das, was Sie verlangen, aber es klingt wie es helfen könnte, die Dinge ein wenig zu beschleunigen.

C-x links und C-x rechts Zyklus durch Puffer, aber Sie haben es mehrmals zu treffen, können Sie nicht nur die Taste gedrückt halten.


Für ein Makro # 1 erstellen, starten Sie einfach ein Makro, drücken Sie die Tasten, die Sie in der Regel tun, einen neuen Puffer zu erstellen, und das Makro stoppen.

So wäre es etwa so aussehen:

Cx (Cx bNEWRETCx)

Sie dann NEW in einer Datei speichern können, wenn Sie Einfügen fertig sind, Sie können das Makro erneut verwenden, um einen neuen Puffer zu erstellen. C-x e, um das Makro auszuprobieren. Wenn es funktioniert, können Sie es in Ihrer init.el Datei speichern. Dies geschieht mit:

M-xname-last-kbd-macro

Dann werden Sie erhalten eine Aufforderung, den Namen Ihrer Wahl eingeben. Das ist nur gut für die aktuelle Sitzung. Dann speichern Sie das benannte Makro in Ihrer Initialisierungsdatei. Zuerst öffnen Sie Ihre .emacs oder init.el Datei. Dann sind Sie Punkt setzen, wo Sie die Makrodefinition gehen wollen, dann geben Sie ein:

M-xinsert-kbd-macro

Jetzt können Sie führen Ihr Makro mit seinem Namen über M-x<macroname>.Sie können Ihre Makro-Tasten zu (in Ihrem .emacs oder init.el Datei) binden:

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

Zum Beispiel ist dies, wie Sie Ihre init.el nach dem Erstellen eines Makros aussehen würde, die einen neuen Puffer öffnet NEW genannt, die nicht mit einem verbunden ist, Datei und Bindung dieses Makro Cc n:

;; 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) 

Sie auch in der Paste werfen, Puffer schließen und Schaltvorgänge puffern. Ich denke, Sie müssten den Puffer manuell in eine Datei speichern.

Einige Ressourcen