2013-02-28 9 views
5

あなたは、あなたが入力した最後のコマンドを入力するbashの上向き矢印をどのように押したか知っていますか? nreplでこれを行う方法はありますか?nreplで履歴検索を行う方法はありますか?

これまでのところ、私はバッファの終わりにジャンプ、ライン(S)(Ckのを)殺して、問題の行の最初の数文字を入力し、逆探索(クロム)を行ってきました(M->)、殺された行をヤンクする(cy)。これを行う簡単な方法はありますか?

答えて

12

M-pM-nを入力履歴内で上下にナビゲートすることができます。また、現在の入力を検索パターンとして使用することができます。つまり、一致させるコマンドの先頭を入力すると、M-pが次の一致に移動します。これは、関数nrepl-previous-inputnrepl-next-inputを使用します。あなたがそれらのキーバインドが気に入らない場合は、<up><down>に再バインドすることができます(あなたのEmacsを再起動したくない場合は、各行の後C-x C-eをし、評価)

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

はちょうどあなたの.emacsにこれを追加します。また、M-nM-pは、他のREPLやcomintのようなモードでも同様の機能にバインドされている可能性が高いことに注意してください。

+1

ありがとうございます!これは完全に機能します。 –

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は、永続的な履歴を必要とする場合に必要です。相対パスを使用すると、履歴は現在のプロジェクトのローカルになります。

関連する問題