Eshell の使い方とか設定とか【Emacs Shell、Lisp】
教えろ
最近使いだしたがマニュアルねーからさっぱりわがんね
早くしてね
参考リンク
http://www.chienowa.co.jp/frame1/ijinden/ ほんとだ
カラーもちゃんと表示されるようになってる 外部プロセスの呼出をやりたいです。
start-processがある事がわかったのですが、うまくできませんでした。
やりたい事はC-c t tで
現在開いているファイルに対して
txt2tags -t html --toc --encoding=utf-8
を実行してほしい。 (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も関係ないよな、この質問
まあ過疎ってるからいいけども 入力した文字列を 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 で実行できるんでしょうか? >>116
(defun foo (cmd)
(interactive "M%% ")
(eshell)
(goto-char (point-max))
(insert cmd)
(eshell-send-input))
>>117
キーボードマクロを使わない、まさにその方法が知りたかったです。
ありがとうございました! なんか知らんが、eshellとtrampの組み合わせが調子悪い・・・。
一旦、sudo lsとかを実行しないと数十秒固まったりする。同じ症状が出てる人いません?
emacs 23.2.1とtramp 2.1.17です。 >>119ですが、自己解決しました・・・。
tramp.el内のtramp-methodで、sudo項目のオプション-Pを消したら普通に動くようになりました。
原因はよくわかりませんが・・・。 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) 等を出さずに
色付きで表示するにはどうしたらいいんでしょうか?
defcustom から eshell-modules-list にアクセスをし、
中に eshell-term を加えてみてはどうかね。
eshell-modules-list の内容をここに貼ってみろ。
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を求められるのは相変わらずです。
>>124
解決策は2つある。
1. eshell上で
$ export PAGER=
$ git log
2. eshell-visual-commands に git を加える。
お勧めは .eshell/login に export PAGER= を挿入するやり方。
わかったか?
>>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で表示すると
色付きで正しく表示されるんですが。
>>126
> 当初、環境変数PAGERを設定してなのになんでPAGERが作動するのか謎でしたが
PAGER のデフォルト値が man だからだろ。
> 出力を色付きにしているとき、普通のコンソールでは色付きで表示されるのに
TERM が馬鹿 (dumb) だから。
xterm-256color や xterm-color にしてみると良い。
eshell の使う ansi-color のモジュールが
サポートしていないエスケープシークエンスがあるので、
うまく表示されない場合が多い。
>>127
ありがとうございます
export TERM=xterm-256color
export TERM=xterm-color
のどちらでも git log の表示が色付きで出るようになりました 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って言うのはどこを指していて、どうやって書き込めばいいのでしょうか? >>129
釣りですか?UNIX版で~/.emacsっていうのはどこを指しているのか
なんて質問が出るわけがないのだけど。
$ vi ~/.emacs
とか
$ nano ~/.emacs
でどう? 現在どのTAGSファイルを読み込んでるか確認する方法ないかな 保守です。
Eshellけっこう便利だと思うけど、あんま使われないのかな ?
Emacsだけで、screen + zsh + vim とけっこう張り合える。 >>133
使っているけれど、
- ドキュメントがない
- 大きいファイルをリダイレクトすると遅い
- ヒアドキュメントが使えない 色々やってみた
# 代わりに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' コマ送りしてみたらほんとだったw
途中でハノイの塔が出てくるけど、その時のモードラインにはTetrisの文字が…
まぁこの辺は適当に合成したのかな。
NTemacs下だからチョット気がひけるけど質問。
ps が command not foundになる原因と対処法を教えてください。 (setq cache-long-line-scans t) が問題を起してたようだ
cache-long-line-scans ・・・bugbugな子 すいません、教えてください。
eshell での *su - コマンド等での
入力されたパスワードを非表示にするには
どのように設定すればいいのでしょうか?
検索しても shell-mode での設定例しか見つけられませんでした。 >>141
超遅レスだが24.4(23.3.92)ではちゃんと非表示になるぞ eshell を規定のシェルとすることはできますか?
具体的には、M-x find-name-dired 等で使用する find を、eshell の find とすることはできるのでしょうか。
私は Windows で Ntemacs を使っているのですが、上記の際にコマンドプロンプトの find が使用されてエラーとなります。
できるとすれば、setenv で "SHELL" に何かを設定するのかな。 >>143
eshellのfindは外部コマンドのfindを呼び出してるだけだよ
lsみたいに呼び出さないのもあるけど
findはどっかから探してきて、Windows標準のfind.exeより先に見つかるように
パスを設定して、そこにコピーする必要がある >>144
そうなのですか?
eshell-prefer-lisp-function を t にすると find の挙動が変わったから、てっきり lisp で find が作成されているのだと考えておりました (もっとも、その find の usage が (ITEM SEQ [KEYWORD VALUE] ...) となっており、help も見つけられないので困っておりました)。 >>145
あっ・・・
これ cl-find という lisp の関数なのですね。
見当違いでした。すみません eshell の ls の動作が数年前より数十倍遅くなっているんだが、
どうしたんだ? 誰かが糞マージしたの? find hoge | xargs rm
だとパイプ越しのファイルを削除できるのですが、
find hoge | grep hogehoge | xargs rm
だとうまくいかない・・・。 私の使用頻度は
shell > ansi-term > eshell >>151
eshell の優先度が低いのはやっぱりバグがあるから? やっぱり LISP は万能じゃなかったな。ロクに shell さえ作れない
今こそ C++ の時代 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
NL3EZ40I0E 知り合いから教えてもらったパソコン一台でお金持ちになれるやり方
時間がある方はみてもいいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
X8O4N >>78
常に考えても分かってないマンUはまぁまぁ強いな
定期的に支持してんの?
6824
超割安との戦いを始める
お前ら
シンプルに水を最低1ヶ月は様子見ればいいのに >>65
俺の乗ってるのが僕の中から2人と同一人物だったりしてないのかな
あと3キロくらい痩せそうだなw
運転手が悪いって会社が個人情報持ってないんやがSO6のためなら女房も泣かす ストロングカードリッジがやばい
自分が馬鹿だって乳首みてくるなよ