Jak uruchomić poprzednie polecenie w powłoce emacsa?


47

Jestem w trybie terminalowym na Ubuntu i uruchamiam emacsa z 2 otwartymi buforami, jeden to plik ruby, a drugi to powłoka (otwarta przez wpisanie powłoki Mx), a kiedy przejdę do bufora powłoki, chcę aby uruchomić to samo polecenie, które wcześniej uruchomiłem. Zwykle po prostu uderzałbym strzałkę w górę w oknie terminala, ale w emacs po prostu ustawia kursor w górę o jedną linię.

Czy ktoś wie o naciśnięciu klawisza, aby uruchomić poprzednie polecenie powłoki z poziomu powłoki Emacsa?

Odpowiedzi:



24

Oprócz tego M-pmożesz także użyć C-up, co uważam za lepsze. Uzupełniające się klucze M-nlub C-downdostaną następne polecenie w historii.


1
Ach, ty. To wydaje się bardziej naturalne.
Lidmith,

1
Chociaż nie zostało to postawione w początkowym pytaniu, muszę przyznać, że [C-up] i [C-down] nie działają w Emacsie przez terminal (PuTTY).
avp

1
Wydaje się również, że nie działa na moim komputerze Mac; C-up jest mapowany na funkcję specyficzną dla komputerów Mac.
amo

Dla mnie też C-upjest mapowany expose. I M-pwydaje mi się bardziej naturalny.
Indradhanush Gupta

5

Możesz również dodać to do pliku inicjującego emacs:

(define-key comint-mode-map (kbd "<up>") 'comint-previous-input)
(define-key comint-mode-map (kbd "<down>") 'comint-next-input)

2

rozwiązanie thiagowfx jest dla mnie lepsze, ponieważ zwykle staram się unikać zależności kontekstowej. Aby jednak zadziałało, najpierw musiałem dodać tryb komend ładowania:

(progn(require 'comint)
(define-key comint-mode-map (kbd "<up>") 'comint-previous-input)
(define-key comint-mode-map (kbd "<down>") 'comint-next-input))

0

Odpowiedź DeLorean88 zadziałała dla mnie, ale tylko z drugim zamkiem zamykającym w linii „progn”:

(progn(require 'comint))
(define-key comint-mode-map (kbd "<up>") 'comint-previous-input)
(define-key comint-mode-map (kbd "<down>") 'comint-next-input))

Sprawdź ponownie swój plik. Drugi klucz definiujący powinien powodować błąd składniowy, ponieważ ostatni nawias zamykający nie jest dopasowywany przez pierwszy.
vfclists
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.