Frage

Beim Benutzen python-mode In Emacs habe ich den Bildschirm zuerst über geteilt C-x 3.Das würde ich gerne können C-c! starten py-shell im andere Fenster, nicht im aktuell aktiven Fenster.Wie kann ich Emacs dafür konfigurieren, ohne Windows wechseln zu müssen? C-x o bevor die Shell gestartet wird?

Ich verwende Emacs 24.3.1 und habe alle meine Konfigurationsdateien gespeichert ~/.emacs.d.

Ich habe gerade das installiert python-mode Paket verwenden package-install mit dem Marmalade-Repository, und ich habe noch keines bearbeitet .el Datei im Zusammenhang mit python-mode.

War es hilfreich?

Lösung

Wie @BleedingFingers sagt, können Sie einfach ein Makro verwenden und dieses an einen Schlüssel binden.Es liegt an Ihnen, ob Sie das wiederverwenden möchten oder nicht C-c! Bindung für das Makro oder binden Sie es an einen anderen Schlüssel.

So gehen Sie vor, wenn Sie sich für die Makrooption entscheiden, beginnend damit, dass Emacs nur ein einziges Fenster anzeigt:

Makro definieren

F3

C-x 3

C-x o

M-x py-shell RET

C-x o

F4

Weisen Sie dem Makro einen Namen zu

M-x name-last-kbd-macro RET py-shell-other-window RET

Sie können ersetzen py-shell-other-window mit dem Namen, den Sie für das Makro verwenden möchten.

Fügen Sie Ihrer Konfiguration ein Makro hinzu

Öffnen Sie Ihre Konfigurationsdatei, bewegen Sie den Punkt (Cursor) auf eine leere Zeile und führen Sie den Vorgang durch

M-x insert-kbd-macro RET

Dadurch wird die Makrodefinition in Ihre Konfigurationsdatei eingefügt.

Makro an Schlüssel binden

Fügen Sie Ihrer Konfigurationsdatei den folgenden Code hinzu, um das Makro an eine Eingabe zu binden python-mode:

(require 'python-mode) ; Make sure python-mode-map is available
                       ; for modification
(define-key python-mode-map (kbd "C-c !") nil) ; Unset default binding 
                                               ; for C-c !
                                               ; (not necessary if you choose an
                                               ; unused binding)
(define-key python-mode-map (kbd "C-c !") 'py-shell-other-window) ; Bind macro to C-c !

Schlüsselbindung einschalten

Markieren Sie die im vorherigen Schritt hinzugefügten Zeilen und führen Sie sie aus M-x eval-region RET, oder starten Sie Emacs einfach neu.

Feiern :)

Andere Tipps

Mit Advice können Sie Code in anderen Bibliotheken spontan neu definieren.

(defadvice py-shell (around auto-split activate)
    (split-window-right)
    (other-window)
    ,ad-do-it
    (other-window))

Es gelten Abweichungen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top