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 № 1Jak @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.