2013-02-28 80 views
5

你知道怎麼當你在bash中向上箭頭時,它會填寫你輸入的最後一個命令嗎?有沒有辦法在nrepl中做到這一點?有沒有辦法在nrepl中進行歷史搜索?

到目前爲止,我一直在做一個反向搜索(),輸入這行的前幾個字符,殺線(S)(CK ),跳轉到緩衝區末尾(M->)並且殺死死亡的細胞系(Cy)。有沒有更簡單的方法來做到這一點?

回答

12

您可以使用M-pM-n在輸入歷史記錄中上下導航。而且,當前輸入可以用作搜索模式,即鍵入要匹配的命令的開始,然後M-p將帶您到下一個匹配。這使用功能nrepl-previous-inputnrepl-next-input。如果你不喜歡那些按鍵組合,你也可以重新綁定到<up><down>

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

剛(每行後和評估C-x C-e,如果你不希望重新啓動您的Emacs)添加到您的.emacs。此外,請注意M-nM-p可能會綁定到其他REPL和comint模式中的類似功能。

+1

謝謝!這工作完美。 – 2013-02-28 07:17:36

3

如果您使用Cider,您可以添加以下到您的用戶配置:

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

要堅持你打開一個REPL下一次的歷史,你也有以下選項:

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

cider-repl-history-file是必需的,如果你想要一個持久的歷史。如果您使用相對路徑,則歷史記錄將在當前項目的本地。

相關問題