2013-02-28 10 views
5

Sie wissen, wie wenn Sie den Pfeil nach oben in bash drücken, wird es den letzten eingegebenen Befehl ausfüllen? Gibt es eine Möglichkeit, dies in nrepl zu tun?Gibt es eine Möglichkeit, eine Geschichte Suche in nrepl zu tun?

Bisher habe ich eine umgekehrte Suche getan (Cr), die ersten Zeichen der Zeile in Frage eingeben, die Tötung der Linie (n) (Ck), bis zum Ende des Puffers springen (M->) und die getötete Linie (Cy) zerrissen. Gibt es einen einfacheren Weg dies zu tun?

Antwort

12

Sie können M-p und M-n verwenden, um in der Eingabehistorie nach oben und unten zu navigieren. Die aktuelle Eingabe kann auch als Suchmuster verwendet werden, d. H. Geben Sie den Anfang des Befehls ein, den Sie abgleichen möchten, und M-p führt Sie zur nächsten Übereinstimmung. Dies verwendet die Funktionen nrepl-previous-input und nrepl-next-input. Wenn Sie nicht über diese keybindings möchten, können Sie auch auf <up> rebind und <down>:

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

Fügen Sie einfach diese zu Ihrem .emacs (und bewerten C-x C-e nach jeder Zeile, wenn Sie Ihre Emacs nicht neu starten wollen). Beachten Sie auch, dass M-n und M-p wahrscheinlich an ähnliche Funktionen in anderen REPL- und COMINT-ähnlichen Modi gebunden sind.

+1

danke! das funktioniert perfekt. –

3

Wenn Sie Cider verwenden, können Sie die folgenden Funktionen Ihre Benutzerkonfiguration hinzufügen:

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

Um die Geschichte für das nächste Mal, wenn Sie eine repl öffnen beharren, können Sie auch folgende Möglichkeiten:

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

cider-repl-history-file ist erforderlich, wenn Sie einen dauerhaften Verlauf wünschen. Wenn Sie einen relativen Pfad verwenden, wird der Verlauf lokal für das aktuelle Projekt sein.

Verwandte Themen