2013-02-28 17 views
5

Wiesz, kiedy uderzysz strzałkę w górę w bash, wypełnisz ostatnie polecenie, które wpisałeś? Czy jest jakiś sposób to zrobić w nrepl?Czy istnieje sposób wyszukiwania historii w nrepl?

tej pory robiłem do tyłu (Kr), wpisując kilka pierwszych znaków z danej linii, zabijając linię (y) (Ck), skoki na końcu bufora (M->) i szarpnięciem zabitej linii (Cy). Czy istnieje prostszy sposób na zrobienie tego?

Odpowiedz

12

Można używać M-p i M-n do nawigacji w górę i w dół w historii wprowadzania danych. Ponadto bieżące dane wejściowe mogą być używane jako wzorzec wyszukiwania, tj. Wpisz początek polecenia, które chcesz dopasować, a następnie M-p przeniesie Cię do następnego dopasowania. Ta funkcja używa funkcji nrepl-previous-input i . Jeśli nie lubisz te skróty klawiszowe, można również ponownie powiązać do <up> i <down>:

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

Wystarczy dodać do swojej .emacs (i ocenić C-x C-e po każdym wierszu, jeśli nie chcesz, aby ponownie uruchomić swoje Emacs). Należy również pamiętać, że M-n i M-p prawdopodobnie będą powiązane z podobną funkcjonalnością w innych trybach REPL i podobnych.

+1

dziękuję! to działa idealnie. –

3

Jeśli używasz Cider, można dodać następujące wpisy do konfiguracji użytkownika:

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

Aby utrwalić historię dla następnej chwili otwarcia repl, masz następujące opcje:

(setq cider-repl-wrap-history t) 
(setq cider-repl-history-size 1000) 
(setq cider-repl-history-file "~/.cider-repl-history") 

cider-repl-history-file jest wymagana, jeśli chcesz zachować historię. Jeśli użyjesz względnej ścieżki, historia będzie lokalna dla bieżącego projektu.