你知道怎麼當你在bash中向上箭頭時,它會填寫你輸入的最後一個命令嗎?有沒有辦法在nrepl中做到這一點?有沒有辦法在nrepl中進行歷史搜索?
到目前爲止,我一直在做一個反向搜索(鉻),輸入這行的前幾個字符,殺線(S)(CK ),跳轉到緩衝區末尾(M->)並且殺死死亡的細胞系(Cy)。有沒有更簡單的方法來做到這一點?
你知道怎麼當你在bash中向上箭頭時,它會填寫你輸入的最後一個命令嗎?有沒有辦法在nrepl中做到這一點?有沒有辦法在nrepl中進行歷史搜索?
到目前爲止,我一直在做一個反向搜索(鉻),輸入這行的前幾個字符,殺線(S)(CK ),跳轉到緩衝區末尾(M->)並且殺死死亡的細胞系(Cy)。有沒有更簡單的方法來做到這一點?
您可以使用M-p
和M-n
在輸入歷史記錄中上下導航。而且,當前輸入可以用作搜索模式,即鍵入要匹配的命令的開始,然後M-p
將帶您到下一個匹配。這使用功能nrepl-previous-input
和nrepl-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-n
和M-p
可能會綁定到其他REPL和comint模式中的類似功能。
如果您使用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
是必需的,如果你想要一個持久的歷史。如果您使用相對路徑,則歷史記錄將在當前項目的本地。
謝謝!這工作完美。 – 2013-02-28 07:17:36