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

0001今艸NGNG
教えろ
最近使いだしたがマニュアルねーからさっぱりわがんね
早くしてね

参考リンク
http://www.chienowa.co.jp/frame1/ijinden/

0113名無しさん@お腹いっぱい。2009/05/02(土) 12:54:17
ほんとだ
カラーもちゃんと表示されるようになってる

0114名無しさん@お腹いっぱい。2010/05/03(月) 18:14:37
外部プロセスの呼出をやりたいです。
start-processがある事がわかったのですが、うまくできませんでした。

やりたい事はC-c t tで
現在開いているファイルに対して
txt2tags -t html --toc --encoding=utf-8
を実行してほしい。

0115名無しさん@お腹いっぱい。2010/05/06(木) 20:02:12
(defun foo ()
(interactive)
(setq bname(concat "txt2tags -t html --toc --encoding=utf-8 " (buffer-name)))
(shell-command bname))
(global-set-key [(C c)(t)(t)] 'foo)

とかじゃだめなの?

てか、eshellが全然関係ないうえにstart-processも関係ないよな、この質問

まあ過疎ってるからいいけども

0116名無しさん@お腹いっぱい。2010/05/22(土) 16:57:37
入力した文字列を eshell を起動して実行させたいんですが、
次のように read-string を使うと、execute-kbd-macro が正しく動きません。

(defun foo ()
(interactive)
(let (var)
(setq var (read-string "% "))
(execute-kbd-macro (concat "\370eshell
" var "
"))))

read-string を使わずに (setq var "ls") などと書くと正しく動作します。
どうやったら read-string で入力したのを eshell で実行できるんでしょうか?

0117名無しさん@お腹いっぱい。2010/05/22(土) 18:03:51
>>116
(defun foo (cmd)
(interactive "M%% ")
(eshell)
(goto-char (point-max))
(insert cmd)
(eshell-send-input))

0118名無しさん@お腹いっぱい。2010/05/22(土) 18:45:42
>>117
キーボードマクロを使わない、まさにその方法が知りたかったです。
ありがとうございました!

0119名無しさん@お腹いっぱい。2010/05/24(月) 00:00:15
なんか知らんが、eshellとtrampの組み合わせが調子悪い・・・。
一旦、sudo lsとかを実行しないと数十秒固まったりする。同じ症状が出てる人いません?

emacs 23.2.1とtramp 2.1.17です。

0120名無しさん@お腹いっぱい。2010/05/26(水) 00:39:42
>>119ですが、自己解決しました・・・。
tramp.el内のtramp-methodで、sudo項目のオプション-Pを消したら普通に動くようになりました。

原因はよくわかりませんが・・・。

0121名無しさん@お腹いっぱい。2010/05/26(水) 00:46:59
訂正、-pです。

0122名無しさん@お腹いっぱい。2010/05/31(月) 00:38:26
eshellのターミナルで git log を実行すると次のように WARNING が出て
RETURN を押さないと次が見えなくて不便です

$ git log
WARNING: terminal is not fully functional
- (press RETURN)

環境変数TERM関連は次のようになってます

$ env | grep TERM
TERM=dumb
TERMCAP=SC|screen|VT 100/ANSI X3.64 virtual terminal:\
TERM_PROGRAM=Apple_Terminal
TERM_PROGRAM_VERSION=273

ためしに export TERM=xterm とすると (press RETURN) 等はでなくなるのですが、
ansi-color-for-comint-mode-on にしているにもかかわらず
エスケープシーケンスがそのまま表示されてしまいます。

普通のコンソールと同じように (press RETURN) 等を出さずに
色付きで表示するにはどうしたらいいんでしょうか?

0123Zeno ◆5nZQbNmQPs 2010/05/31(月) 01:08:52

defcustom から eshell-modules-list にアクセスをし、
中に eshell-term を加えてみてはどうかね。

eshell-modules-list の内容をここに貼ってみろ。

0124名無しさん@お腹いっぱい。2010/05/31(月) 02:00:00
eshell-modules-list は次のように自分で設定していて実際の値もこれと同じでした。
(setq eshell-modules-list '(eshell-alias eshell-banner eshell-basic eshell-cmpl eshell-dirs eshell-glob eshell-hist eshell-ls eshell-pred eshell-prompt eshell-script eshell-term))
なぜデフォルトにあった eshell-unix が抜けているのかは、思い出せず。

で、これをきっかに設定を見直したところエスケープシーケンスが反映されていない原因は、
eshell-output-filter-functions から eshell-handle-ansi-color を外していたからでした
これもまたなぜ外してしまったのか。。。

ただeshellのデフォルトの TERM=dumb の状態だと git log のあとで
警告が出てRETURNを求められるのは相変わらずです。

0125Zeno ◆5nZQbNmQPs 2010/05/31(月) 08:52:30

>>124
解決策は2つある。

1. eshell上で

$ export PAGER=
$ git log

2. eshell-visual-commands に git を加える。

お勧めは .eshell/login に export PAGER= を挿入するやり方。
わかったか?

0126名無しさん@お腹いっぱい。2010/05/31(月) 10:51:52
>>125
ありがとうございます
2の方法だと何も表示されなくなってしまったんですが
.eshell/login に export PAGER= を挿入する方法だとうまく行きました。
当初、環境変数PAGERを設定してなのになんでPAGERが作動するのか謎でしたが
空の値をセットすればPAGERが無効になるんですね。勉強になりました。

ただ git help config すると
sh: -c: line 0: syntax error near unexpected token `||'
のようエラーがぞろぞろ出てきてまったくマニュアルが表示されなくなったので
試しに export PAGER=cat にすると git help config の方も動きました。

あとほんとに些細なことなんですが git config --global color.ui "auto" として
出力を色付きにしているとき、普通のコンソールでは色付きで表示されるのに
eshell上ではモノクロです。
色指定のエスケープシーケンスが含まれるログファイルをeshell上でcatで表示すると
色付きで正しく表示されるんですが。

0127Zeno ◆5nZQbNmQPs 2010/05/31(月) 12:46:18

>>126
> 当初、環境変数PAGERを設定してなのになんでPAGERが作動するのか謎でしたが

PAGER のデフォルト値が man だからだろ。

> 出力を色付きにしているとき、普通のコンソールでは色付きで表示されるのに

TERM が馬鹿 (dumb) だから。
xterm-256color や xterm-color にしてみると良い。
eshell の使う ansi-color のモジュールが
サポートしていないエスケープシークエンスがあるので、
うまく表示されない場合が多い。

0128名無しさん@お腹いっぱい。2010/06/01(火) 11:21:04
>>127
ありがとうございます
export TERM=xterm-256color
export TERM=xterm-color
のどちらでも git log の表示が色付きで出るようになりました

0129名無しさん@お腹いっぱい。2011/03/29(火) 02:54:53.38
RubyをEmacsで使おうとして苦戦しております。

http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=Emacs

このサイトにて、
「Debianの"ruby-elisp.deb"のようにパッケージが利用できるなら、
それをインストールする。ソースからビルドした場合などは、
適当な場所(たとえば~/site-lispなど)にmisc/*.elをコピーする。
そして~/.emacsに次のように書いておく」
と書いてあります。

最後の部分は恐らくパスを追加するということなのだと思うのですが、
私はパスを追加するとはコントロールパネルから辿って行って、絶対パスを
ペーストするやり方しか知らないので、ここがよくわかりません。

~/.emacsって言うのはどこを指していて、どうやって書き込めばいいのでしょうか?

0130名無しさん@お腹いっぱい。2011/03/29(火) 18:02:23.68
>>129
釣りですか?UNIX版で~/.emacsっていうのはどこを指しているのか
なんて質問が出るわけがないのだけど。

$ vi ~/.emacs
とか
$ nano ~/.emacs
でどう?

0131名無しさん@お腹いっぱい。2011/03/29(火) 21:56:05.66
emacs 使えよ

現在どのTAGSファイルを読み込んでるか確認する方法ないかな

0133名無しさん@お腹いっぱい。2012/02/12(日) 00:48:08.71
保守です。
Eshellけっこう便利だと思うけど、あんま使われないのかな ?
Emacsだけで、screen + zsh + vim とけっこう張り合える。

0134名無しさん@お腹いっぱい。2012/02/12(日) 01:00:12.39
>>133
使っているけれど、
- ドキュメントがない
- 大きいファイルをリダイレクトすると遅い
- ヒアドキュメントが使えない

0135名無しさん@お腹いっぱい。2012/02/20(月) 13:53:53.54
色々やってみた

# 代わりにemacsコマンドを呼び出す系
alias w3m 'w3m-find-file $1'
alias irb 'run-ruby "irb"'
alias ghci 'run-haskell'
alias emacs 'find-file $1'
alias make 'compile ${mapconcat (function identity) ${cons "make" $*} " "}'

# tomp3 *.wav *.mp4 ... のようにして使う
alias tomp3 'for i in ${eshell-flatten-list $*} {ffmpeg -i $i ${concat ${file-name-sans-extension $i} .mp3}}'
alias toutf8 'for i in $* {nkf -w -Lu --overwrite $i}'
alias check-encode 'for i in ${eshell-flatten-list $*} {*echo $i : ${nkf -g $i}}'
alias elcompile 'for i in ${eshell-flatten-list $*} {byte-compile-file $i}'
alias elcompile-all 'for i in **/*.el {byte-compile-file $i}'

# ショートカット系?
alias d 'dired-other-window ${pwd}'
alias c 'cd *$1*'
alias f 'find-file $1'
alias r 'view-file $1'

# 他のシェルでもよくやるの系
alias ll 'ls -lh $*'
alias la 'ls -a $*'
alias findn 'find . -name $*'
alias cdd 'cd ~/download'
alias untgz 'tar xvzf $*'
alias untbz 'tar xvjf $*'
alias slideshow 'feh -ZF *.jpg *.gif *.png >/dev/null'

0136名無しさん@お腹いっぱい。2012/02/20(月) 15:41:17.92
Tron っていう映画に eshell が出ているそうです
http://www.youtube.com/watch?v=dNEVJ-1_lPg

0137名無しさん@お腹いっぱい。2012/02/20(月) 22:15:31.59
コマ送りしてみたらほんとだったw
途中でハノイの塔が出てくるけど、その時のモードラインにはTetrisの文字が…
まぁこの辺は適当に合成したのかな。

0138名無しさん@お腹いっぱい。2013/02/13(水) 21:28:22.85
NTemacs下だからチョット気がひけるけど質問。
ps が command not foundになる原因と対処法を教えてください。

0139名無しさん@お腹いっぱい。2013/02/13(水) 22:33:53.10

01401382013/03/09(土) 15:32:59.66
(setq cache-long-line-scans t) が問題を起してたようだ
cache-long-line-scans ・・・bugbugな子

0141名無しさん@お腹いっぱい。2014/03/24(月) 20:53:53.90
すいません、教えてください。
eshell での *su - コマンド等での
入力されたパスワードを非表示にするには
どのように設定すればいいのでしょうか?
検索しても shell-mode での設定例しか見つけられませんでした。

0142名無しさん@お腹いっぱい。2014/06/28(土) 00:05:11.46
>>141
超遅レスだが24.4(23.3.92)ではちゃんと非表示になるぞ

0143名無しさん@お腹いっぱい。2014/09/27(土) 10:39:05.21
eshell を規定のシェルとすることはできますか?

具体的には、M-x find-name-dired 等で使用する find を、eshell の find とすることはできるのでしょうか。

私は Windows で Ntemacs を使っているのですが、上記の際にコマンドプロンプトの find が使用されてエラーとなります。

できるとすれば、setenv で "SHELL" に何かを設定するのかな。

0144名無しさん@お腹いっぱい。2014/10/02(木) 02:12:04.66
>>143
eshellのfindは外部コマンドのfindを呼び出してるだけだよ
lsみたいに呼び出さないのもあるけど

findはどっかから探してきて、Windows標準のfind.exeより先に見つかるように
パスを設定して、そこにコピーする必要がある

0145名無しさん@お腹いっぱい。2014/10/02(木) 11:57:32.04
>>144
そうなのですか?
eshell-prefer-lisp-function を t にすると find の挙動が変わったから、てっきり lisp で find が作成されているのだと考えておりました (もっとも、その find の usage が (ITEM SEQ [KEYWORD VALUE] ...) となっており、help も見つけられないので困っておりました)。

0146名無しさん@お腹いっぱい。2014/10/02(木) 12:04:34.38
>>145
あっ・・・
これ cl-find という lisp の関数なのですね。
見当違いでした。すみません

0147名無しさん@お腹いっぱい。2015/01/25(日) 14:47:11.63
eshell の ls の動作が数年前より数十倍遅くなっているんだが、
どうしたんだ? 誰かが糞マージしたの?

0148名無しさん@お腹いっぱい。2015/04/06(月) 05:11:39.70
パイプの挙動がおかしくない?

0149名無しさん@お腹いっぱい。2015/05/01(金) 21:48:28.23
find hoge | xargs rm
だとパイプ越しのファイルを削除できるのですが、
find hoge | grep hogehoge | xargs rm
だとうまくいかない・・・。

0150名無しさん@お腹いっぱい。2015/05/18(月) 20:33:03.23
あげ

0151名無しさん@お腹いっぱい。2015/05/20(水) 23:54:08.62
私の使用頻度は
shell > ansi-term > eshell

0152名無しさん@お腹いっぱい。2015/05/22(金) 23:01:37.09
>>151
eshell の優先度が低いのはやっぱりバグがあるから?

0153名無しさん@お腹いっぱい。2015/05/23(土) 02:59:30.85
>>152
そう、パイプのバグが致命的

0154名無しさん@お腹いっぱい。2017/09/08(金) 07:32:44.84
やっぱり LISP は万能じゃなかったな。ロクに shell さえ作れない
今こそ C++ の時代

0155名無しさん@お腹いっぱい。2017/12/29(金) 07:20:18.03
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

NL3EZ40I0E

0156名無しさん@お腹いっぱい。2018/05/22(火) 06:25:11.97
知り合いから教えてもらったパソコン一台でお金持ちになれるやり方
時間がある方はみてもいいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

X8O4N

0157名無しさん@お腹いっぱい。2019/05/01(水) 00:55:45.50
>>154
馬鹿ですか?

0158名無しさん@お腹いっぱい。2024/03/27(水) 19:35:38.75
その頃Twitterなかった。

0159名無しさん@お腹いっぱい。2024/03/27(水) 19:46:23.09
やはり睡眠大事やね

0160名無しさん@お腹いっぱい。2024/03/27(水) 20:25:23.66
>>78
常に考えても分かってないマンUはまぁまぁ強いな
定期的に支持してんの?
6824
超割安との戦いを始める
お前ら
シンプルに水を最低1ヶ月は様子見ればいいのに

0161名無しさん@お腹いっぱい。2024/03/27(水) 20:59:57.12
ディソナンス本当に性のもあるからな

0162名無しさん@お腹いっぱい。2024/03/27(水) 21:07:36.15
>>65
俺の乗ってるのが僕の中から2人と同一人物だったりしてないのかな
あと3キロくらい痩せそうだなw
運転手が悪いって会社が個人情報持ってないんやがSO6のためなら女房も泣かす

0163名無しさん@お腹いっぱい。2024/03/27(水) 21:26:00.60
ストロングカードリッジがやばい
自分が馬鹿だって乳首みてくるなよ

新着レスの表示
レスを投稿する