トップページunix
132コメント44KB

Eshell の使い方とか設定とか【Emacs Shell、Lisp】

■ このスレッドは過去ログ倉庫に格納されています
0001今艸NGNG
教えろ
最近使いだしたがマニュアルねーからさっぱりわがんね
早くしてね

参考リンク
http://www.chienowa.co.jp/frame1/ijinden/
0002名無しさん@お腹いっぱい。NGNG
2げとーーーーーーーーーーーーー
0003名無しさん@お腹いっぱい。NGNG
(・∀・)イイ!!シェル


eshell って漏れのマシンだと遅くて使いものにならん。
ls が 2 秒くらいかかる。
0004名無しさん@お腹いっぱい。NGNG
そんなにかかんないっしょ?オレのはceleronの600Mだけどそんなに遅く感じないよ
0005名無しさん@お腹いっぱい。NGNG
>>1
マニュアルあるだろ。info 読めカス
0006名無しさん@お腹いっぱい。NGNG
info 見てみたらスカスカ…(;´Д`)
0007名無しさん@お腹いっぱい。NGNG
Emacs part12
http://pc5.2ch.net/test/read.cgi/unix/1083394705/
0008名無しさん@お腹いっぱい。NGNG
とりあえず貼っておくぞ>>1
ttp://www.bookshelf.jp/pukiwiki/pukiwiki.php?Eshell%A4%F2%BB%C8%A4%A4%A4%B3%A4%CA%A4%B9
0009名無しさん@お腹いっぱい。NGNG
ところでeshellって RMS も日常で使用しているシェルらしいね。
0010名無しさん@お腹いっぱい。NGNG
            ぃぬ
         / ̄ ̄ ̄ ̄\
       /     Ω  Ω、
       |Y  Y        \    
       | |   |        ▼ |
       | \/      _人_|   
       |       ___/             MacOSX
        \    /                   |
         /     \           Solaris    |    NextStep
         \\  l\\          |  ズバシュ・・・    |
          |\\ | \\         Λ_Λ    Λ_Λ   Λ_Λ ‥
          /  \\  \\      ( / ⌒ヽ‥∵/ ⌒∵ (/ ⌒ヽ∵
          |   / \\  ヽ 二二二二| |   |二二| |   |二二| |  |二二>
          | Ω |   \\       ∪ / ノ∵‥∪ / ノ∵: ∪ / ノ∵‥
          | || |     \\       | ||     | ||     | ||
          | / | |      \\     ∪∪     ∪∪    ∪∪
         // | |        \\ズバ・・
        //  | |         \\∵∴
       //   | |       ΛΛ \\: ̄ ̄ ̄ ヽ〜 ←>>Mach
       U    U   ギ・・(゚Д゚ ;),∴:\|∪ ̄ ̄UU
0011名無しさん@お腹いっぱい。NGNG
プロンプトの文字列を変えたいんですが、どうすればいいんですか?
0012名無しさん@お腹いっぱい。NGNG
>6
ワロタ
ほんとにスカスカだ。
0013名無しさん@お腹いっぱい。NGNG
>>11
(setq eshell-prompt-function 'my-eshell-prompt)

(defun my-eshell-prompt ()
"$ "
)
0014名無しさん@お腹いっぱい。NGNG
lisp で書けるのは面白そうなのにな。まだ完成度が低すぎると思う。メインで使ってる人はいるの?
0015名無しさん@お腹いっぱい。NGNG
>>14
完成度が低いって、どうしてそう思うの?
俺が知っている限り、大きなバグは1つしかないんだけどな。

俺はEshellは完成度が低いんじゃなくて、カスタマイズ性が
他のShellより高すぎて、その設定によりEshellの行動が違った
りしてくるから、一般ユーザーからすればそれがバグに見える
場合はあるだけなんじゃないかと思う。
0016名無しさん@お腹いっぱい。NGNG
でも実際、Eshellをマスターするのは難しい。
自身のシンタックスまでカスタマイズできるshellなんて他にある?
eshellをマスターすれば、使いなれたlispも普通に使えることができるし、
入力も出力もバッファにそのまま送れるし、eshellにかなう
シェルなんてなくなるんじゃないかな。
0017名無しさん@お腹いっぱい。NGNG
<はもう実装されたんだっけ?
catと|を使えばいらんといえばいらんのだけど。
0018:pNGNG
オッ、こんなスレあったんやw

>>17
されてないね
0019:pNGNG
ところで、なんで eshell だと ftp がうまくいかないんだ?
0020名無しさん@お腹いっぱい。05/01/17 19:01:08
>>19
それ、windozに付いてくるftpか?
最新のcygwinに付いてくるftp使えば普通に動くと思うよ
0021名無しさん@お腹いっぱい。05/01/18 17:56:33
ターミナル上emacs上Eshellから
aliasで外部アプリを起動するとemacs-noxが立ち上がる。
複数起動したらemacs-noxも複数..
Meadow上からなら問題ないんだが。

これもwinだから起きる問題かなぁ
0022名無しさん@お腹いっぱい。05/01/18 22:00:58
よくわからんが DISPLAY とか指定してる?
00232105/01/18 23:34:43
ようわからんけどそれは関係ないわ
00242205/01/19 04:38:06
ようわからんと思うなら、
ターミナル上から
% DISPLAY='' emacs
とかやってみなよ。
0025名無しさん@お腹いっぱい。05/01/21 18:52:05
ようわからんけどcygstartで解決したわ
Displayわけわからん
localhotに設定したり127.0.0.1:0.0に設定したりしてみたけど変化なし。
0026名無しさん@お腹いっぱい。05/01/22 16:28:38
eshellって結構便利だね。>>8のサイト見ておもた
>>21
emacs-noxって何?
俺もwin使用してるが、普通に外部アプリ立ちあがるよ。
何か関数上書きしてるん?
0027名無しさん@お腹いっぱい。05/01/22 21:31:11
emacsのX機能省略版ですがな。
普通に立ち上がりますかぁ。いいなぁ。家じゃだめでした。
eshellに限らずbashから"&"を付けて外部アプリを立ち上げる場合でも
bashが立ち上がってました。
コマンド実行後に終了させるにはどうしたいいのだろう。

eshellはemacsの機能が使えてイイ。あたりまえですが。
browse-kill-ring.elとか便利なelispが使えるのはすごく楽。
つーかみんな補完時にループさせてます?
eshellだけの話じゃないけど、あれって使いにくくないですか?
サイクルlimitを1にしてoffにしてますがesheller失格ですか?

00282605/01/22 21:51:23
>>27
ああ、nox = no x-window system ね。うまくパースできなかったw

> eshellに限らずbashから"&"を付けて外部アプリを立ち上げる場合でも
> bashが立ち上がってました。
w2k使用しててもそうなるの?

> つーかみんな補完時にループさせてます?
> eshellだけの話じゃないけど、あれって使いにくくないですか?
> サイクルlimitを1にしてoffにしてますがesheller失格ですか?

言いたいこと十分にわかる。ていうか、コマンドをpcompleteされると俺の
環境だとwindow-configurationが壊れるんだよね。あれは使いにくいよね。
0029名無しさん@お腹いっぱい。05/01/22 23:07:18
xpです。2kでは試したことないです。
OSの問題ってことですか。どうなんだろ。
どうもこれはeshellの質問というかcygwinの使い方の質問でしたね。

ループする時にカーソルは確定部分の最後の文字の後ろにあるならまだ分かる。
そこから文字入力<TAB>で掘り進める。
カーソルがコマンドラインの最後にあると
搾り込みが甘くて候補が多いからやり直す時に編集がめんどい。
設定の仕方が悪いのかな。

>window-configurationが壊れる
window-configurationは使ってないから分からないけど
windows.elでもウインドウ状態は保存できるですよ。
これを使えば解決するような予感。

0030名無しさん@お腹いっぱい。05/01/24 00:33:14
もの凄い使いにくいと思ってたんだけど
そんなに拡張性があるのね

だれか、設定ファイルおくれ
0031初心者ですが05/01/24 00:53:07
;;eshell
(require 'eshell-auto)
;;eshellのキー設定
(global-set-key "\C-ce" 'eshell-toggle)
;最初は画面の半分で起動もう一回eshell-toggleしたら全画面になる
;が、2度目のトグル前になんらかの入力があった場合は2度目のトグルで消えてくれる
(add-hook 'eshell-mode-hook
(lambda ()
(define-key eshell-mode-map
"\C-d" 'backward-kill-word)))

(add-hook 'eshell-mode-hook
(lambda ()
(define-key eshell-mode-map
"\C-a" 'eshell-bol)))
;デフォだとC-aで行の先頭までいってまうけど
;これでプロンプト前にいく

(setq eshell-cmpl-ignore-case t)
;補完時に大文字小文字を区別しない
0032初心者ですが05/01/24 01:02:25
;;以下はカスタマイザで設定した
'(eshell-ask-to-save-history (quote always));確認なしでヒストリ保存
'(eshell-cmpl-cycle-completions t);補完時にサイクルする
'(eshell-cmpl-cycle-cutoff-length 5);補完候補がこの数値以下だとサイクルせずに候補表示
'(eshell-hist-ignoredups t);履歴で重複を無視してくれるっぽいけど上手く動いてない
'(eshell-history-file-name "~/.bash_history");バッシュと履歴共有してるのが原因かなぁ

eshell-isearch-backward
すると履歴からisearshしてくれるけどサイクルできるのかどうかわからない
それでもデフォのM-rよりは使いやすい
0033初心者ですが05/01/24 01:05:30
詳しい方の設定ファイルよろ
↓↓
0034名無しさん@お腹いっぱい。05/02/17 14:26:37
あげまんあげまん
0035名無しさん@お腹いっぱい。05/03/01 03:34:33
eshell と shell mode
ANSI color codes に対応して欲しい。
0036名無しさん@お腹いっぱい。05/03/01 10:54:50
>>35
term-mode じゃいやなの?
00373505/03/01 19:45:09
>>36
うぉー、ありがとう。
知らんかった。term-mode.

これから、viper との上手い組合せを、考えてみます。
0038名無しさん@お腹いっぱい。2005/06/13(月) 15:21:09
久しぶりに上げようよ
0039名無しさん@お腹いっぱい。2005/10/12(水) 19:20:56
バッファ上無限にヒストリーがたまってくのは精神衛生上良くない。
0040名無しさん@お腹いっぱい。2005/10/13(木) 00:11:36
(add-hook 'eshell-mode-hook
#'(lambda ()
(define-key eshell-mode-map "\C-l" #'(lambda ()
(interactive)
(let ((inhibit-read-only t))
(erase-buffer)
(eshell-emit-prompt))))))
こんな感じにしとけばいいんじゃないの?
0041名無しさん@お腹いっぱい。2006/04/08(土) 13:38:58
なんか emacs 抜けるのめんどくさくなってきたから、
自作の elisp コマンド + eshell + eshell のエイリアス
で全てやるようになった。 *command すれば外部コマンドも
何なく呼べるし. eshell ではコマンドつっても普通のelisp関数
だから、かなり簡単に自分専用コマンドが書ける
0042名無しさん@お腹いっぱい。2006/04/09(日) 04:09:18
そういう行為は
すべての道具をコタツの周りにおいて
寝たまま生活できるようにするのと似ていて、
だんだん外と適応できなくなって自分を追い込んでいくような気がする。
0043名無しさん@お腹いっぱい。2006/04/09(日) 05:18:08
>>42
でも、それが shell のあるべき姿なんじゃないかな、と思う。
shell を "自分流に" すればするほど、使い安くなり作業効率も
上がる。外との対応なんて、どの shell もあってないようなものじゃん。
そういう事は、 eshell コマンドパッケージをpublicに up する人が
考えればいい事。

それに元々、 eshell は "自分用の" shell を作るのにはもってこいの
shell だし、それが作者の意図したものだと思う。
0044名無しさん@お腹いっぱい。2006/05/16(火) 18:35:57
Eshellのコマンド履歴検索の動作が気にくわねいっす。

ハイレベルな議論の最中申し分けございません。
0045名無しさん@お腹いっぱい。2006/05/18(木) 08:13:42
>>44
禿同
0046名無しさん@お腹いっぱい。2006/05/18(木) 09:54:03
補完の順序も気に入らない。
hoge1 hoge2 hoge3
みたいなファイルがある時に補完を効かせると
hoge3 → hoge2 → hoge1
って感じで補完されるんだが、普通逆じゃね?
0047名無しさん@お腹いっぱい。2006/05/18(木) 19:59:08
それは多分customize-group Eshellでいじれるはず。
何て変数か忘れたけどw
0048名無しさん@お腹いっぱい。2006/05/19(金) 00:45:10
>>46
それは、日付けが新しい順に補完されてるんだよ。

~ $ touch hoge1
~ $ touch hoge3
~ $ touch hoge2

だと、hoge2 → hoge3 → hoge1になるよ。
俺はむしろ気に入っている。
0049名無しさん@お腹いっぱい。2006/05/20(土) 03:03:08
>>48
なるほど。
0050名無しさん@お腹いっぱい。2006/05/20(土) 18:20:13
man コマンドは elisp に置き換えられるけど、info は違うのね…
0051名無しさん@お腹いっぱい。2006/05/20(土) 18:29:29
>>50
と思ったけど、 which info したら置き換えられてた。
何で文字が化けるんだろう。
0052名無しさん@お腹いっぱい。2006/05/20(土) 19:13:10
まさかとは思うが
M-x infoしても化けたりしないだろうな
0053名無しさん@お腹いっぱい。2006/05/21(日) 03:38:39
昔 info はインデックスの数え方がバイト単位だったり文字単位だったりで
統一されてなかったけど、今はどうなった?
0054名無しさん@お腹いっぱい。2006/05/21(日) 14:10:17
>>52
んなわけない。
eshell 上で info すると eshell のバッファに文字化けした文字がいっぱい出るよ。
0055名無しさん@お腹いっぱい。2006/05/21(日) 19:23:49
んだね。eshell/infoがまともに雨後感。

(defun eshell/info (&optional x)
(interactive)
(if x
(info x)
(Info-directory)))

こんなんでしのいではどうかと
0056名無しさん@お腹いっぱい。2006/05/23(火) 12:30:33
>>55
thx.
使わせてもらいます。
0057Eshell初心者2006/06/23(金) 01:41:35
ちょっと使ってみました。

>>8
>ttp://www.bookshelf.jp/pukiwiki/pukiwiki.php?Eshell%A4%F2%BB%C8%A4%A4%A4%B3%A4%CA%A4%B9
>(ちなみに、私の環境ではなぜか最後の [^a] がうまく処理されません。他は大丈夫なのですが。)
customize で (Eshell初期化の前に設定されている必要があるので)
eshell-glob-chars-list に ?^ を加える
eshell-glob-translate-alist に (?^ . "^") を加える
と修正する。
#作者にメールを送りましたがとりあえず返事は来ていません。

>>39,40
(add-to-list 'eshell-output-filter-functions 'eshell-truncate-buffer)
0058名無しさん@お腹いっぱい。2006/08/11(金) 01:58:33
>>57
> #作者にメールを送りましたがとりあえず返事は来ていません。

昨夜になって返事が返ってきました。しかも、
I am checking in these changes now.
だそうな。お返しにもう一つバグ報告しときました。
0059名無しさん@お腹いっぱい。2006/09/25(月) 02:37:21
保守上げ
006057=582006/11/05(日) 21:11:36
eshellも結局全然使ってないな。

57の不具合は8/10付けで修正されていた。

> だそうな。お返しにもう一つバグ報告しときました。
これは which が program を使っているのに lisp だと嘘をつく、って件だっ
たんだけど、直されてない。
今になって気付いたが、思いっ切り直前の 50- の議論に関係していたね。
0061名無しさん@お腹いっぱい。2006/12/11(月) 03:11:38
微妙にすれ違いというか全くすれ違いなんだけど、
bookshelf.jpのwikiおかしくない?
eshellの項を読みに行ったらbasic認証なげつけられたんだけど。
0062名無しさん@お腹いっぱい。2006/12/11(月) 09:30:55
>>61
> bookshelf.jpのwikiおかしくない?
めどうさんのスレでも出てたけど。
探せばどっかにパス書いてあるよ。
0063名無しさん@お腹いっぱい。2007/02/06(火) 17:26:04
Windows 上で Eshell を Cygwin 用にできますか?
例えば、 c:/ は /cygdrive/c/ とか
0064名無しさん@お腹いっぱい。2007/02/06(火) 17:44:37
>>63
cygwin-mount.el
0065名無しさん@お腹いっぱい。2007/02/06(火) 17:52:23
>>64
cygwin-mount は実際に使用していますが、eshell上では
c:/ は c:/ として認識されてしまいます
0066名無しさん@お腹いっぱい。2007/02/06(火) 19:03:22
>>65
bash.exe 呼べばいいじゃん?
0067名無しさん@お腹いっぱい。2007/02/06(火) 20:02:25
>>66
もちろん cygwin 上での bash なら ~/ は /home/user/ になるわけですが、
eshell 上で bash.exe を使用した場合、 ~/ は c:/cygwin/home/user/ と認識しています
0068名無しさん@お腹いっぱい。2007/02/06(火) 20:21:56
>>65
>>64 でいいたいのは、cygwin-mount.el を使って、eshell の内部関数を書き換えろって事だ。
0069名無しさん@お腹いっぱい。2007/02/06(火) 20:27:29
>>68
そんな簡単にはいかないと思うのですが。
実際、eshell内部のパスを処理する部分で cygwin-mount.el の関数を
使用したとしても、サブプロセスがパスを理解してくれない場合も出てくると思われます
0070名無しさん@お腹いっぱい。2007/02/06(火) 20:39:53
>>69
簡単に行くとはいってないが?
0071名無しさん@お腹いっぱい。2007/02/06(火) 20:54:40
>>70
eshell の内部関数を書き換えただけではうまくいくとは限らないってことです
わかります?
0072名無しさん@お腹いっぱい。2007/02/06(火) 21:21:52
>>71
わかりますよ?
0073名無しさん@お腹いっぱい。2007/02/06(火) 22:11:33
>>62
先生、探しても分かりません
0074名無しさん@お腹いっぱい。2007/02/07(水) 03:12:08
>>73
窓のところで
meadow / memo
0075名無しさん@お腹いっぱい。2007/02/07(水) 18:44:42
>>74
アリガトゴザイマース
0076武蔵 ◆yChdjWk9Ko 2007/02/07(水) 18:53:01
>>75
礼はいいから取り敢えずanal出せ
0077名無しさん@お腹いっぱい。2007/02/07(水) 19:09:13
>>75
下品すぎです><
0078名無しさん@お腹いっぱい。2007/02/11(日) 02:05:31
適当なところでバッファを shrink してほしいんだけど、そういう設定は無いのかな?
0079名無しさん@お腹いっぱい。2007/02/11(日) 15:21:35
>>>78
(setq eshell-buffer-maximum-lines 5000)
とか?
0080武蔵 ◆yChdjWk9Ko 2007/02/11(日) 15:24:58
>>79
おい若者、それだけではうまくいかんぞ.
それをセットした後に

(eshell-truncate-buffer)

を実行しなければならない.試しに *eshell* 上で

(let ((eshell-buffer-maximum-lines 10)) (eshell-truncate-buffer))

を実行してみたまえ.
0081名無しさん@お腹いっぱい。2007/02/12(月) 08:42:42
コマンド補完の動作を bash のデフォルトみたいにしたいのですが
方法ありますか?
■ このスレッドは過去ログ倉庫に格納されています