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

単一のコマンドラインをシェルサブプロセスに渡すコマンド、シェルを対話的にEmacsバッファーへの入出力で実行するコマンド、およびターミナルエミュレーターウィンドウでシェルを実行するコマンドに関する質問。

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 


3
バッファをポップアップせずにバックグラウンドで非同期プロセスを実行するにはどうすればよいですか?
async-shell-command.emacs を使用して非同期バックグラウンドプロセスを実行する関数をいくつか定義しましたが、コマンドを実行するたびに新しいウィンドウ(フレームではない)が作成され、プロセスのバッファーが表示されます。「ポップアップ」バッファなしでコマンドを実行するにはどうすればよいですか?
23 shell  async  process 

6
OSXでのEmacsとコマンドラインの$ PATHの不一致
PATHHaskell環境に影響を与えるEmacsの設定に関する問題がある: ZSHを使用しecho $PATHていますが、コマンドラインに移動してを呼び出すと、次のように返されます。/Users/g/Library/Haskell/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin これは.zprofile私が持っている構成から来ています: # Set the list of directories that Zsh searches for programs. path=( ~/Library/Haskell/bin /usr/local/{bin,sbin} $path ) だから、コマンドラインから、を呼び出すとwhich cabal、正しく取得されます:/Users/g/Library/Haskell/bin/cabal Emacsを起動してandにアクセスするshellとwhich cabal、次のように/usr/bin/cabalなります。バージョンが異なるため、問題が発生しています。 echo $PATHEmacsから検査するとshell、次のように表示されます。/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/g/Library/Haskell/bin:/usr/local/sbin いったいどうPATH違うのか分からない... 誰も私のZSHシェルとEmacsが同じことに同意する方法を知っていますPATHか?それがどこcabalからロードされるかを制御しているのではないかと思う。 更新:echo $SHELLEmacsの出力から実行:/bin/zsh 更新2:これはOSX上にあります。 更新3:exec-path-from-shellモジュールを使用しようとしましたが、機能しません。私はまだ同じ問題を抱えていますが、副作用として、端末のテーマの色が台無しになります:( 更新4:Emacsをインストールしbrew install --cocoa --srgb emacs、この方法でリンクされたemacsを実行しました: ~ ❯❯❯ which emacs /usr/local/bin/emacs ~ ❯❯❯ l /usr/local/bin/emacs lrwxr-xr-x 1 g admin …
17 osx  shell  path  haskell-mode 


2
Trampモードは、sshに端末を使用するよりもはるかに遅い
私はOSX YosemiteでEmacsのMacportsフレーバーを使用しており、ここでTrampのすべてのスレッドを調べましたが、解決策はありません。 Trampは使用可能ですが、すべてのアクションの間に約100ミリ秒の遅延があります。ターミナル/ iTermを使用して同じサーバーにsshするだけの場合、この遅延は存在しないため、サーバー側の問題ではありません。 問題はファイルの編集に限られているのではないかと思っていましたが、それはどこにでもあることがわかりました。リモートシェルだけを使用している場合でも、M-x(ヘルムを使用して)押すだけでも、すべて遅延します。 解決策なしで接続する方法としてssh、scp、rsyncを試しました。またControlMaster auto、効果なしで試してみました。 他の誰かがこの問題を抱えていて、それを解決できましたか?
14 shell  tramp  remote 

2
emacsのシェルの.bash_profileまたは.bashrc?
巨大なコマンドのエイリアスを作成して保存しました.bash_profileが、驚いたことに、emacsは作成したエイリアスを取得しませんでした.bash_profile。インターネットで検索した後.bashrc、エイリアスコマンドを使用して$ HOMEにファイルを作成しました。その後、emacsがエイリアスを取得しました。terminal.appはからエイリアスを.bash_profile取得しますが、emacsはでのみエイリアスを取得するため、混乱してい.bashrcます。 私は実行してM-x shellおり、macOSを使用しています。誰かがEmacsとの関係だものを私に説明できます.bashrc&.bash_profile。 さらに言えば、Emacs .bash_profileに加えてEmacsを読むにはどうすればよい.bashrcですか?
11 shell  bash 

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
ソースブロックをもつれさせながら、STDINからユーザー入力を読み取ることはできますか?
ソースブロックをもつれさせながらSTDINからユーザー入力を読み取ることはできますorg-babel-tangleか? 私はこれを知っています:Org Mode Babel-インタラクティブコードブロックの評価。 それは助けには、それはまだシェルから適切なSTDIN入力を許可しないように、この特定のユースケースを解決しますが、限られた入力をシミュレートしていない内部のEmacsに。 バックグラウンド OrgのBabelを使用して、1つのorgファイルからいくつかのチュートリアルを実行することにより、新しいプログラミング言語(PerlとBash)を学びたいと思います。 問題は、多くのチュートリアルがSTDINに依存していることです。たとえば、次のperl tidbitを実行するとします。 #+BEGIN_SRC perl :tangle hello-name.pl :results output :export code use 5.010; use strict; use warnings; say "What is your name?"; my $name=<STDIN>; say "Hello $name, how are you?"; #+END_SRC EmacsはユーザーのインタラクションがSTDINに名前を正しく入力するのを待たず、すぐに出力します: #+RESULTS: : What is your name? : Hello , how are you? …

1
あるサブプロセスが他のサブプロセスを枯渇させないようにするにはどうすればよいですか?
明確にするために、私はemacsをマルチスレッド化する必要のあることについては何も話していません(おそらくこれも解決されるでしょう)。再現するには: emacs -Q#24.4.1を実行しています 2番目のフレームを作成する 最初のフレームに戻る MXシェル Mx rename-uniquely(後で2番目のシェルを作成します) 実行を開始: while true; do echo "hello world"; done 2番目のフレームでは、Mxシェル 2番目のシェルが表示されることはほとんどありません(まれに繰り返し試行しても機能します)。どうやらemacsは、最初のシェルの出力を読み取って他のプロセスからの出力をリッスンすることを決して中断しません。保留中の出力を持つ複数のプロセスがある場合、ラウンドロビンの方がはるかに良い動作になります。より良い行動をとる方法はありますか? 私が知っている唯一のトリックは、シェルバッファーを独自のプロセスにすることですが、残念ながらそれは私にはうまくいきません。それを行ったとしても、音声認識ソフトウェアが機能するようにソケットをリッスンするサブプロセスを実行する必要があります。そうすれば、シェルを最初に実際に制御できるようになります。これが、私がこれを発見した方法です。上記のような無限ループを実行すると、データがソケットから取り出されなくなります。


3
プロンプトと以前の出力をシェル/タームモードで編集できないようにする方法はありますか?
これは明らかに表面的な質問です。 けれどもansi-term、私はそれを最初に開いたときに正しく動作して開始し、それは私がないとき、例えば、いくつかのコマンドの後に「編集可能」モードに分解すると思われるC-a(行の先頭)が続くC-k(キルライン)、それは全体のプロンプト一掃します。 私の美的健全性のために、プロンプトと以前の出力を(のshell)編集不可にする方法はありますか?(意味のある違いを考慮して、ansi-termを除外するように更新されました。) 私はEmacs 24.4でzshを使用しています。OSは、Virtual Boxを介したLXDE(Ubuntu 14.04)です。 (理想的には、引き続きカーソルを移動できます...)

4
シェルプロファイルと現在のディレクトリフックを使用してシェルコマンドを実行する方法(例:direnv)
私はファイル内のいくつかのプログラム、特にこの例ではdirenvを取得shell-commandしasync-shell-commandてシームレスに統合しようとしてい.bashrcます。 をカスタマイズした場合shell-command-switch、通常のインタラクティブログインシェルであるかのように、シェルプロセスでプロファイルをロードできることがわかりました。 (setq shell-command-switch(purecopy "-ic")) (setq explicit-bash-args '( "-ic" "export EMACS =; stty echo; bash")) 私はexec-path-from-shellも使用しています。 次のような~/.bashrcファイルがあるとします。 ... eval "$(direnv hook $ 0)" 「foo」をエコー 内部~/code/fooには次の.envrcファイルがあります: エクスポートPATH = $ PWD / bin:$ PATH 「バー」をエコー set to で実行するM-x shellと、bashシェルはプロファイルを正しくロードし、direnvフックを実行してパスに追加します。default-directory~/code/foo direnv:.envrcの読み込み バー direnv:エクスポート〜PATH 〜/ code / foo $ echo $ PATH / Users …

3
WindowsのEmacsでのGit Bash
Git for Windowsに付属のBashシェルを実行できます。私はこれを私の中に入れました.emacs: (defun git-bash () (interactive) (let ((explicit-shell-file-name "D:/Program Files/git/bin/bash")) (call-interactively 'shell))) その後M-x git-bash、ほら、bashが実行されていますが、奇妙です。 bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell ^[]0;MINGW64:/c/Users/M??rton^G MĂĄrton@Marci MINGW64 /c/Users/MĂĄrton $ そして^[]、実行するすべてのコマンドの後に、で始まるその行を出力します。また、エンコーディングはめちゃくちゃです。どうすればこれを修正でき.emacsますか?

1
Emacsが `Mx shell`でパスフレーズを表示しないようにする方法は?
内部からファイルをバックアップするために、パスフレーズでatticを使用してみましたM-x shell。シェルは、パスフレーズをバッファ内のプレーンテキストとして公開し、で入力しM-rたり、シェルの入力履歴を調べたりして、パスフレーズを使用できるようにしましたC-c C-l。 シェルを閉じて入力履歴を再度開いたところ、少なくとも消えていました。おそらく、シェルはそれから初期の履歴を読み取り.bash_history、少なくともそこにbash私を書かないという良識passphraseがあったためです。 バックアップemacsを実行するために本当に離れる必要atticがありますか、それとも不注意にならないように構成する方法はありますか? 新鮮なemacs -Qセッションで問題を再現することができました。Emacsが電話をかけるときを除いてすべてのケースでパスフレーズを正しく隠すので、以前は混乱していました attic create --stats /path/to/backup::name ~/folders ~/backed ~/up 次に、次のatticようにプロンプ​​トします。 Enter passphrase for /path/to/backup::name: この問題は、このPythonワンライナーで再現できます。 python -c 'import getpass; getpass.getpass("Hello")' パスワードプロンプト文字列が"Password:"Emacsの場合、パスワードプロンプトが表示されますが、文字列がそれ以外の場合は表示されません。 Emacsに少なくともatticのパスワードプロンプトを認識させるにはどうすればよいですか?

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