bashで上矢印を押すと、最後に入力したコマンドがどのように入力されるか知っていますか?nreplでこれを行う方法はありますか?
これまで、逆検索(C-r)を実行し、問題の行の最初の数文字を入力し、行を強制C-k終了し()、バッファーの最後にジャンプし(M->)、強制終了された行をヤンクしました(C-y)。これを行う簡単な方法はありますか?
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)
これをに追加するだけです( Emacsを再起動したくない場合は、各行の後.emacs
で評価してください)。C-x C-e
また、とは他のREPLおよびcomintlikeモードの同様の機能にバインドされる可能性が高いことに注意してM-n
くださいM-p
。
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
永続的な履歴が必要な場合はが必要です。相対パスを使用する場合、履歴は現在のプロジェクトに対してローカルになります。