web-dev-qa-db-ja.com

前のコマンドをemacsシェルでどのように実行しますか?

私はUbuntuのターミナルモードで、2つのバッファを開いてemacsを実行しています。1つはRubyファイル、もう1つはシェル(Mx Shellと入力して開く)です。シェルバッファーに切り替えて、以前に実行したのと同じコマンドを実行したいのですが、通常はターミナルウィンドウで上矢印を押すだけですが、emacsでは、カーソルを1行上に置くだけです。

Emacsシェル内から以前のシェルコマンドを実行するためのキーストロークを知っている人はいますか?

47
Lidmith

M-p仕事をします

62
vava

に加えて M-p、あなたも使うことができます C-up、私はそれが好ましいと思います。補完的なキー M-n または C-down 履歴の次のコマンドを取得します。

26
Prakash K

これをemacs initファイルに追加することもできます。

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

thiagowfx私は通常、コンテキスト依存性を回避しようとするため、ソリューションよりもソリューションが望ましいです。ただし、それが機能するためには、最初にロードCOMINTモードを追加する必要がありました。

(progn(require 'comint)
(define-key comint-mode-map (kbd "<up>") 'comint-previous-input)
(define-key comint-mode-map (kbd "<down>") 'comint-next-input))
2
DeLorean88