タグ付けされた質問 「eshell」

Eshellは、Emacs Lispに実装されているシェルのようなコマンドインタープリターです。

2
IPython 5使用時の奇妙なシェル出力
IPythonの最新バージョンにアップグレードしたばかりで、emacsで使用すると何か問題が発生します。 通常の端末で使用する場合は正常に動作します(色、タブ補完など)が、M-x eshellまたはのいずれかでM-x shell、outputingの代わりにIn [1]:、実際に出力[?12l[?25hおよびにOut[1]出力し[J[?7h[?12l[?25h[?2004l[?7hOut[1]:ます。 IPythonで使用されるemacsでは利用できない端末の機能の一部かもしれませんが、どの機能かを知りたいのですが。 Terminal.app: In [1]: 2+2 Out[1]: 4 Emacs [?12l[?25h2+2 [J[?7h[?12l[?25h[?2004l[?7hOut[1]: 4
37 shell  eshell  ipython 


2
タブ補完にivyを使用するようにeshellをセットアップするにはどうすればよいですか?
私はivy完了が非常に好きで、Emacsが何らかの種類の完了を使用するほぼすべての場所(ivy-mode 1)を取得するのに単純なもので十分であるivyことを愛しています(これはオーバーライドすることで達成されますcompleteing-read)。しかし、これはタブ補完eshellに使用するようには設定されていませんivy。eshellの補完候補のリストは気に入っていますが、ivyUIの中から選択することを好みます。eshell完了候補を生成し、それを「ivy」に渡すために行うことを再利用する方法はありますか?
16 eshell  ivy 

2
eshellにsudoパスワードを2分間記憶させる方法は?
runingという一般的な用語ではbash、sudo ...コマンドを実行すると、bashはしばらくの間パスワードを記憶します。これにより、パッケージ管理タスクが簡単になります。 例えば: sudo apt-get update # password ...... sudo apt-get install turing-brain # execute without requiring password again. エスホールでそれを達成することは可能ですか? (私は知っているtermかansi-term、Emacsでこれを行うことができます。しかし、eshellはEmacsとより良く統合します。)
15 eshell 

1
eshell内からリモートホスト上のcwdでアプリケーションを実行する
私はよくEshellを使用してリモートシステムに接続します。それらのリモートシステムでは、現在の作業ディレクトリでスクリプトを実行したいことがあります。通常の端末では、次のように入力します。 ./my-script.sh 残念ながら、Eshellの内部ではこれは機能しません。 ~ $ cd /remote1:~ /ssh:remote1:/home/rekado $ ./my-script.sh env: /ssh:remote1:/home/rekado/my-script.sh: No such file or directory /ssh:remote1:/home/rekado $ スクリプトへの完全なTRAMPパスを指定した場合にのみ機能します。 /ssh:remote1:/home/rekado $ /ssh:remote1:/home/rekado/my-script.sh It works! /ssh:remote1:/home/rekado $ .単純な呼び出しが機能するように、Eshellに自動的に展開させる方法はありますか? 回避策として、現在バインドされC-c .ている関数を使用して、コマンドラインに現在のフルパスを挿入します。.期待どおりに動作することを望んでいます。
12 tramp  eshell 

1
eshell / TRAMP / dtachで実行中のリモートシェルに接続する
私はしばしば、GNU Screenを使用して、リモートセッションを存続させます。私はEmacsに住んでいるので、実行中のリモートシェルセッションをEmacs内から再開できるようにしたいと思っています。 GNU Screenは、端末の多重化や文字の描画など、私が本当に必要としないあらゆる種類の凝ったものを実装しています。私は本当に取り外し可能で再開可能なシェルセッションにのみ興味があるので、単純なものdtachで十分かもしれません。 この関数を使用してSSHセッションを開き、実行dtach中のセッションに再接続しますshell-mode(ここから取得): (defun ssh-dtach (host) "Open SSH connection to remote host and attach to dtach session." (interactive) (let ((explicit-shell-file-name "dtach") (explicit-dtach-args '("-A" "/tmp/emacs.dtach" "-z" "/bin/bash" "--noediting" "-login")) (default-directory (format "/ssh:%s:" host))) (shell (format "*ssh %s*" host)))) マイナーな癖にもかかわらず、これはでほぼ問題shell-modeなく動作しますが、Eshellではこれはサブプロセスを開始するだけなので、ターミナルは非常に制限されます(パスの自動補完がないなど)。 dtachリモートサーバーに接続したときに実行中のセッションに接続するようにEshellを構成するにはどうすればよいですか? 編集: この問題についてもう一度考えたとき、私は実際に何が欲しいのかが完全に明確ではないことに気付きました。ここにリストがあります: 一部のサブプロセスではなく、eshellにとどまりたい 再接続時に、リモートセッションの出力を再生し、リモートコマンド履歴を利用できるようにしたい 実行中のリモートプロセス(たとえばyum install、入力を待っている実行中)と対話できるようにしたい これをすべてdtachで機能させるには、少しのelispコードを記述する必要があるようです。
11 eshell  shell  remote  ssh 

1
eshellのカラーgit出力
私はcygwinのmintty(xterm-256colorと言うように設定されている)端末内でemacsを使用しています。list-colors-display正常に動作します。そして色はdirtedリストなどに表示されます。今私はgit branch現在のブランチの色をに設定しましたyellow reverse。ただし、シェルウィンドウもeshellウィンドウも正しい色を表示しません。代わりに、現在のブランチはデフォルトの色で表示されます。ansi-termEmacsのウィンドウ、または外部に、同じ端末の内部、それは必要として表示されます。 私はこれを私の中に持っています.emacs: (add-hook 'eshell-preoutput-filter-functions 'ansi-color-apply) これらの色をシェルまたはeshellウィンドウ内に表示する方法はありますか?
10 eshell  colors 

1
複数のeshellの履歴をマージする
eshellに切り替える前に、次のようにzshをセットアップしました。 コマンドごとに履歴ファイルに書き出す 履歴ファイルを上書きするのではなく追加するので、複数のシェルを実行しているとき、それらはすべて1つの大きな履歴にマージされます。 両方のzshオプションがここに記載されています(APPEND_HISTORYおよびINC_APPEND_HISTORYを参照)。 これは、コマンドを発行してから数週間後に新しいシェルを開いて履歴で見つけることができるため、大きな履歴サイズと組み合わせると非常に便利です(これらのオプションがないと、最近閉じた履歴のみが含まれるため、大きな履歴は役に立ちません。シェル)。また、新しいシェルを開いて、他のシェルの最新のコマンドをすぐに認識させることもできます。この動作でeshellをセットアップする方法はありますか?最初の箇条書きは十分に簡単に思えますが、追加は注意が必要です...
9 eshell  history 

1
eshellのバック/フォワードディレクトリエイリアスを作成する方法
私は長年、zshスクリプトを使用してきました。これにより、ディレクトリを変更するたびに、pushdが暗黙的に発生します。このスクリプトは、「b」および「f」エイリアスを設定します。これは、Webブラウザーの「戻る」および「進む」ボタンと同様に、スタックを上下に移動します。セッションの例: /etc $ cd /tmp /tmp $ cd /bin /bin $ b /tmp $ b /etc $ f /tmp $ f /bin $ 私はそれが信じられないほど便利であると思ったので、これをeshellに設定するための最良の方法は何ですか? 編集:私がここで行ったコードを参照してください、以下のわずかな変更:https://gist.github.com/jgarvin/0627ed76a773ade222f6
9 eshell  aliases 

1
リモートの〜/ .bash_profileでカスタマイズした環境をtramp + eshellで使用するにはどうすればよいですか?
リモートマシンの〜/ .bash_profileにカスタム$ PATHを設定しました(nixおよびによってユーザーがローカルにインストールしたプログラムの場合cabal)。 eshellとtrampを使用して、リモートマシンでコマンドを発行します(cd /remotehost:somedir;次にコマンド)。(端末の一般的なSSHセッションではなくこの方法を選択しました。これは主に、接続不良を使用していて、SSHセッションが頻繁に中断されるため、ログイン、cd、および発行できることを期待できません。接続が中断される前のコマンド。) 残念ながら、この状況ではカスタムPATHが守られず、一部のプログラムが見つかりません。 この問題を解決する最も良い方法は何でしょうか?

6
Emacsシェルで以前のコマンドを実行するにはどうすればよいですか?
もちろん、ターミナルにいるときに上矢印キーを押すと、前のコマンドに移動します。しかし、M-xキーを押してタイプshellすると、Emacsに統合シェルが表示されます。 ただし、コマンドを入力して押し上げると、次のようになります。 入力した最後のコマンドに戻るにはどうすればよいですか?
9 eshell 

1
eshell-prefer-lisp-functionsがnilの場合でも、eshellがlisp関数を優先するのはなぜですか?
emacs 24.5.2をemacs -Qとで起動した場合はM-x eshell、次のコマンドを実行します。 $ which rm eshell/rm is a compiled Lisp function in `em-unix.el' eshellバージョンを取得します。しかし、私がC-h v eshell-prefer-lisp-functionsその値を見るとnilです。それでもドキュメントには次のように記載されています: 外部コマンドの代わりに組み込みコマンドを使用する場合は、eshell-prefer-lisp-functionsをtに設定します。 これはバグですか?私はドキュメントが逆になっているのではないかと思ったので、変数をtに設定してみましたが、動作は同じで、/ binのバージョンではなくeshell実装を取得し続けます。
8 eshell 

3
ワイルドカードを使用してeshellでファイルを開く方法
私はシェルに次のようなものを入力することに非常に慣れています: emacsclient **/Threshold.java Threshold.javaディレクトリの深くネストされたファイルはどこにあり、名前でそれを開きたいだけです。 eshellで同じことを試みると、次のようになります(ecはのエイリアスですfind-file)。 ec **/Threshold.java Wrong type argument: stringp, ("src/main/java/org/elasticsearch/shield/admin/Threshold.java") これをeshellで機能させるにはどうすればよいですか?
8 eshell 

2
Eshell:キーを押すとプロンプトラインに移動します
場合によっては、eshellで上にスクロールすると、pointがコマンドプロンプトラインを離れて表示領域に留まることがあります。次にコマンドを入力するとき、プロンプトでコマンドを入力しませんが、評価者は以前に呼び出されたコマンドの出力のどこかにテキストを挿入します。これはかなり迷惑です。 他のシェルと同じように、charを入力すると、eshellがコマンドプロンプトを指すようにするにはどうすればよいですか? /編集:これは状況のスクリーンキャストです。「」と入力しls、上にスクロールして出力を確認してから、「」を実行することを決定しましたcd ..が、コマンドをその時点で挿入するだけなので、不要なことがわかります。
8 eshell 

1
eshellバッファートランケーションのパフォーマンスを向上させる方法は?
私は現在、構成に以下を追加することにより、20,000行でバッファーを切り捨てます。 (setq eshell-buffer-maximum-lines 20000) ;; automatically truncate buffer after output (add-to-list 'eshell-output-filter-functions 'eshell-truncate-buffer) これは20,000行未満でうまく機能し、バッファーが20,000行に達すると、すべての行で切り捨てられます(そのため、バッファーは常に20,001行に留まります)。ただし、バッファーが20,000行に達すると、後続の各行の印刷に時間がかかり、emacsのCPUがしばらくの間100%に留まります。 バッファの切り捨てのパフォーマンスを向上させる方法はありますか?おそらく、追加された100行ごとにしか切り捨てられませんか?私は本当にそれがために必要みたいではありません正確に 、私はちょうどバッファが無限に成長する必要はありません20,000行。
8 eshell 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.