/ / Uruchom polecenie py-shell w innym oknie emacsa - emacs, python-mode

Uruchom polecenie py-shell w innym oknie emacsa - emacs, python-mode

Podczas używania python-mode w Emacsie najpierw dzielę ekran C-x 3. Chciałbym móc C-c! Wystrzelić py-shell w inny w oknie, a nie w aktualnie aktywnym oknie. Jak mogę skonfigurować Emacs, aby to zrobić bez konieczności przełączania okien z C-x o przed uruchomieniem powłoki?

Używam Emacsa 24.3.1 i mam wszystkie moje pliki konfiguracyjne ~/.emacs.d.

Właśnie zainstalowałem python-mode pakiet za pomocą package-install z repozytorium Marmalade, a ja jeszcze go nie edytowałem .el plik powiązany z python-mode.

Odpowiedzi:

0 dla odpowiedzi № 1

Jak @BleedingFingers mówi, że możesz po prostu użyć makra i powiązać go z kluczem. To zależy od Ciebie, czy chcesz ponownie użyć C-c! powiązanie makra lub powiązanie go z innym kluczem.

Oto, jak kontynuować, jeśli zdecydujesz się na opcję makro, poczynając od Emacsa pokazującego tylko jedno okno:

Zdefiniuj makro

F3

C-x 3

C-x o

M-x py-shell GNIĆ

C-x o

F4

Przypisz nazwę do makra

M-x name-last-kbd-macro GNIĆ py-shell-other-window GNIĆ

Możesz wymienić py-shell-other-window z dowolną nazwą, którą chciałbyś użyć do makra.

Dodaj makro do swojej konfiguracji

Otwórz plik konfiguracyjny, przenieś punkt (kursor) do pustej linii i zrób

M-x insert-kbd-macro GNIĆ

Spowoduje to wstawienie definicji makra do pliku konfiguracyjnego.

Przypnij makro do klucza

Dodaj następujący kod do pliku konfiguracyjnego, aby powiązać makro z kluczem 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 !

Włącz łączenie klawiszy

Zaznacz linie dodane w poprzednim kroku i uruchom M-x eval-region GNIĆlub po prostu zrestartuj Emacsa.

Świętuj :)


0 dla odpowiedzi nr 2

Porada pozwala Ci na nowo zdefiniować kod w innych bibliotekach w locie.

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

Obowiązują odmiany.