トップページunix
1001コメント315KB

Emacs Part 43

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2013/06/09(日) 14:05:32.09
語り合いましょう。

GNU Emacs - GNU Project - Free Software Foundation (FSF)
https://www.gnu.org/software/emacs/

EmacsWiki: サイトマップ
http://www.emacswiki.org/emacs/

Emacsのトラノマキ | 検索結果: | ありえるえりあ
http://dev.ariel-networks.com/wp/?s=Emacs%E3%81%AE%E3%83%88%E3%83%A9%E3%83%8E%E3%83%9E%E3%82%AD

前スレ
EmacsPart42
http://toro.2ch.net/test/read.cgi/unix/1356319580/
01301242013/07/20(土) NY:AN:NY.AN
>>129
ばっちりです!
0131名無しさん@お腹いっぱい。2013/07/21(日) NY:AN:NY.AN
Stevey's Blog Rants: January 2008
http://steve-yegge.blogspot.jp/2008_01_01_archive.html
わかりやすい
0132名無しさん@お腹いっぱい。2013/07/21(日) NY:AN:NY.AN
リンクがおかしかった
こっち
Stevey's Blog Rants: Emergency Elisp
http://steve-yegge.blogspot.jp/2008/01/emergency-elisp.html
0133名無しさん@お腹いっぱい。2013/07/23(火) NY:AN:NY.AN
新しいEmacsに入った eww という擬似Webブラウザ、
emacs-w3mよりも圧倒的に速いな。いったいどういう原理で
動いているんだろう?
0134名無しさん@お腹いっぱい。2013/07/23(火) NY:AN:NY.AN
ソース読めばいいだろう。
最近の Emacs だと外部プロセスって意外と速くないんだよな。
0135名無しさん@お腹いっぱい。2013/07/23(火) NY:AN:NY.AN
んなことなかんべ
0136名無しさん@お腹いっぱい。2013/07/23(火) NY:AN:NY.AN
w3mがその証拠。chromeやffの方が速いだろ、と思う。
0137名無しさん@お腹いっぱい。2013/07/23(火) NY:AN:NY.AN
外部プロセスを呼ぶこと自体は遅くないんじゃないの。
外部プロセスから受け取ったデータの処理が遅いだけで。
0138名無しさん@お腹いっぱい。2013/07/23(火) NY:AN:NY.AN
その根拠は?
01391372013/07/23(火) NY:AN:NY.AN
根拠ってほどのものはないです。
0140名無しさん@お腹いっぱい。2013/07/23(火) NY:AN:NY.AN
emacs-w3m は昔から遅かったから
プロセス一般の話に持ってっちゃいかん
0141名無しさん@お腹いっぱい。2013/07/23(火) NY:AN:NY.AN
gnusに戻りたいよう
0142名無しさん@お腹いっぱい。2013/07/26(金) NY:AN:NY.AN
init-loaderとESUP(Emacs Start Up Profiler)の併用について質問します
init-loaderでサブディレクトリ内のelispを読み込んで評価しているのですが、esupではそれぞれのelispの処理時間を計測してくれません
init-loaderによって読み込まれた一つずつのファイルについてもESUPで調査し結果を出力するにはどうすればよいですか
0143名無しさん@お腹いっぱい。2013/07/27(土) NY:AN:NY.AN
>>133
パースにlibxml2を使っている。
libxml2が速いんだろうね。
0144名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
yatexが勝手にeucに変換してしまうので
文字化けする
何か設定すればutfのまま使えるの?
0145名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
>>144
YaTeX-kanji-codeをチェック.
あとはLocal variables.
0146名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
emacsでコマンド起動するときに、一緒に新規ファイル作成をする方法を教えてくれ
viでいうところの↓と同じ事をemacsでやりたい

$ vi hello.txt
 → hello.txtファイルが実在しなくてもエディタが起動する
 → その状態で保存すると、hello.txtファイルが作成されて編集内容が保存される

$ emacs hello.txt
 → hello.txt does not exist. と表示されてemacsが起動しない
0147名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
touch hello.txt; emacs hello.txt
0148名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
つーか、emacs hello.txt で普通にできない?
0149名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
>>147
touchするのが面倒なのよ
でも、コマンドを作って、そんな形にすればいいってことに気づいた
thx

>>148
うそーっと思ってlinux上で実行してみたら出来た
Emacs MacPortはあかんのか
0150名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
Mac の話ならこっちで聞けばいいのに。

Mac de Emacs総合スレ v7
http://anago.2ch.net/test/read.cgi/mac/1328699139/
0151名無しさん@お腹いっぱい。2013/07/29(月) NY:AN:NY.AN
そんなスレがあったのですね
失礼しました
0152名無しさん@お腹いっぱい。2013/07/30(火) NY:AN:NY.AN
Macだが/usr/bin/emacsでも
/opt/local/bin/emacs (MacPort)でも問題ない。
0153名無しさん@お腹いっぱい。2013/07/30(火) NY:AN:NY.AN
>>149
えっとね。
$ sw_vers -productVersion
10.7.5
$ port installed emacs-app |tail -1
emacs-app @24.3_1+fullscreen+inline+jpfont+patches (active)
$ open -a Emacs.app hoge.txt ; echo $?
The file /Users/xxx/hoge.txt does not exist.
1
と、確かになるけど、
$ /Applications/MacPorts/Emacs.app/Contents/MacOS/Emacs hoge.txt; echo $?
0
なの。だから、
$ alias |grep emacs=
alias emacs='/Applications/MacPorts/Emacs.app/Contents/MacOS/Emacs'
としておけば、普通に
$ emacs hoge.txt; echo $?
0
になる。
0154名無しさん@お腹いっぱい。2013/07/30(火) NY:AN:NY.AN
openコマンドのメッセージだな...
$ open -a hogehogeboo /tmp/t.txt
The file /tmp/t.txt does not exist.
0155名無しさん@お腹いっぱい。2013/07/31(水) NY:AN:NY.AN
>>152
Emacs Mac port っていうmac向けに改良したemacsのことです
2本指のジェスチャーとかに対応していて使いやすいです

port installed | grep emacs
emacs-mac-app @4.2_0+imagemagick+rsvg (active)

>>153-154
おお!
たしかにopen -a していました
直接Contents/MacOS/Emacsを叩けば良かったんですね
0156名無しさん@お腹いっぱい。2013/07/31(水) NY:AN:NY.AN
>>150でやれよ。
0157名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
>>156
別にイイじゃねえか、知らなかったこと知れるし
心の狭いヤツだな
0158名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
>>157
そういう若手イケメンなレスをすると
このスレでは住人生命終わるぞ。
ここは冴えないEmacsオヤジ達の聖域。
ここで長生きしたかったら
安居酒屋での生き方ってもんを身につけるこったあ。
0159名無しさん@お腹いっぱい。2013/08/01(木) NY:AN:NY.AN
どこかの設定がおかしいせいか、emacsが数十秒に一回、数秒間固まってしまうようになりました
どのmajor-modeでも起こるようでして、minor-modeが原因かと思いましたが、恥ずかしながら原因をまだ突き止められていません
似たような症状に陥り問題を解消した方はいますか
0160名無しさん@お腹いっぱい。2013/08/02(金) NY:AN:NY.AN
>>159
とりあえず timer-list みてあやしげなの cancel-timer で止めてみれ。
0161名無しさん@お腹いっぱい。2013/08/02(金) NY:AN:NY.AN
>>160
ありがとうございます。この記事のとおり、原因はpopwin:close-popup-window-timerでした
Emacs がちらつく原因を特定する - Qiita [キータ]
http://qiita.com/akisute3@github/items/11f20d2bddae7d7bcaea
大変助かりました
0162名無しさん@お腹いっぱい。2013/08/03(土) NY:AN:NY.AN
>>142ですがinit-loader-show-logで十分でした
0163名無しさん@お腹いっぱい。2013/08/03(土) NY:AN:NY.AN
しばらく小指が使えないのだけど
ctrを押さないで操作するか
ctrを違う場所に移動するのにお勧めのキー
はありませんでしょうか
0164名無しさん@お腹いっぱい。2013/08/03(土) NY:AN:NY.AN
>>163
日本語キーボードなら変換、無変換あたりどうよ。

キーボードを買い換えるとかなら↓で。
Keyboard キーボード 3
http://toro.2ch.net/test/read.cgi/unix/1285489282/
0165名無しさん@お腹いっぱい。2013/08/03(土) NY:AN:NY.AN
前にここで教えてもらって変換、無変換に割り当ててるけど
小指痛くならないしいいわこれ
0166名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
浅田真央さんのお母さんは良いお母さんです。
0167名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
なぜならEmacsを使っているからです。
0168名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
>>165
変換と無変換の両方ともctrlにするの?
0169名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
そこはお好みで。
0170名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
ttp://www.pfu.co.jp/hhkeyboard/kb_collection/images/symbolics.gif
Lispマシンのキーボードに似た配列になる
0171名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
>>170
その配列だとCTRLを親指じゃなくて小指で押すことになるんじゃないのかねえ?
おれの親指はZの下までは伸びないぞ
0172名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
指摘されて初めて気がついた
でも俺の小指ではZのした辺りまで届かないんだよな
0173名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
欧米人は手がデカいんじゃね。
0174名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
小指使えないとshiftも移動させないといけなくなるな
0175名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
>>173
欧米人は手がデカいと言っても、
指が長いだけじゃなくて手のひらの幅も広いんだから、
親指をあそこまでも持ってくのは逆にキツイだろw
0176名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
>>169
なるほど
面白そうだから試してみる
0177名無しさん@お腹いっぱい。2013/08/04(日) NY:AN:NY.AN
肝はAの左なのでHHK信者は心して見るように。
0178名無しさん@お腹いっぱい。2013/08/05(月) NY:AN:NY.AN
>>172
小指の下の方、手の付け根あたりで押すという技もあるけどね。同時押しが増えてくると辛いか。
0179名無しさん@お腹いっぱい。2013/08/05(月) NY:AN:NY.AN
>>170のキーボードで、
CtrlとMetaの同時押しを多用するemacsのLispモードが使い物になるとは思えないんだよねえ
0180名無しさん@お腹いっぱい。2013/08/05(月) NY:AN:NY.AN
>>179
Super とか Hyper を使うのではないの?
>>163
SandC とか SandS という方法も無くは無い。
0181名無しさん@お腹いっぱい。2013/08/06(火) NY:AN:NY.AN
ctrlを小指の付け根、metaは反対側の小指
0182名無しさん@お腹いっぱい。2013/08/06(火) NY:AN:NY.AN
Unix端末にはSuperがなかったから代用でC-M-とかにしたんだろうねえ
0183名無しさん@お腹いっぱい。2013/08/06(火) NY:AN:NY.AN
自分はTabの位置にAltを置いてる。Hyper(左手親指)はemacsで使って、SuperはXmonadで使う。
似非SandS(右手親指)も使ってる。小指が壊れたときどうするんだろう。

>>181
右手側のキーが死んだりしない?
0184名無しさん@お腹いっぱい。2013/08/06(火) NY:AN:NY.AN
>>180
Sandって何だ?
0185名無しさん@お腹いっぱい。2013/08/06(火) NY:AN:NY.AN
>>184
http://hp.vector.co.jp/authors/VA002116/sands/
0186名無しさん@お腹いっぱい。2013/08/07(水) NY:AN:NY.AN
やっぱり足踏みだろ
飛行機のシミュレータ好きそうなやつ多そうだし
0187名無しさん@お腹いっぱい。2013/08/07(水) NY:AN:NY.AN
>>185
s & sってことか。 砂場遊びでも始まるのかとおもった。
0188名無しさん@お腹いっぱい。2013/08/07(水) NY:AN:NY.AN
>>185
スペースキーを長押しして離した時にスペースが挿入されなければ、かなりいいな。
SKK使いはShiftで小指を酷使するからEmacsで実装して欲しいもんだ。
Emacsなら実装出来るはずだろうけど、やり方が良くわからん。。残念
0189名無しさん@お腹いっぱい。2013/08/08(木) NY:AN:NY.AN
長押し検知する方法が timer で監視ぐらいしか思いつかん。他に方法あんのかな?
timer 使う実装方法を選んじゃうと popwin みたいに次第に腐っていく気がする。
0190名無しさん@お腹いっぱい。2013/08/08(木) NY:AN:NY.AN
Emacs内でやらなきゃいかんの?
0191名無しさん@お腹いっぱい。2013/08/08(木) NY:AN:NY.AN
>>188
key-chordとspace-chord使う。
0192名無しさん@お腹いっぱい。2013/08/09(金) NY:AN:NY.AN
>>191
space-chord.elは某氏作か。とりあえず、紹介ページのとおりに設定したが、うまくいかん。
fedrao17で24.3を使ってるが、winの人とかはうまくいくのか?
0193名無しさん@お腹いっぱい。2013/08/09(金) NY:AN:NY.AN
お、trunkにdos.elがコミットされた。
これ必須だったから標準で入ってると助かる。
しかし、コミットされたとたんみんなから修正されまくった挙句
bat-mode.elにリネームされちゃったw
標準に取り込まれたら、もう自分のもので無くなってしまうという罠。
0194名無しさん@お腹いっぱい。2013/08/09(金) NY:AN:NY.AN
文字コード関連の質問です
utf8で出力したいファイルをwith-temp-fileで開き
sjisのファイルをinsert-file-contents-literallyから読み込んで
編集したいのですがutf8で出力する仕方がわかりません
どう設定すればよいですか
0195名無しさん@お腹いっぱい。2013/08/09(金) NY:AN:NY.AN
buffer-file-coding-systemを設定すれば?
0196名無しさん@お腹いっぱい。2013/08/10(土) NY:AN:NY.AN
>>195
ありがとうございます。
0197名無しさん@お腹いっぱい。2013/08/13(火) NY:AN:NY.AN
elispでは(declare (indent 1))とすることでマクロのインデントを
調整することができますが(以下のように)、slimeとCommon Lispにおいて
同等の動きをさせるにはどうすればよいのでしょうか?
;; 最低一回は評価するwhile
(defmacro do-while (cond &rest body)
(declare (indent 1))
`(progn
,@body
(while ,cond
,@body)))
0198名無しさん@お腹いっぱい。2013/08/14(水) NY:AN:NY.AN
その以下のように書けばいいんじゃねーのか?w
0199名無しさん@お腹いっぱい。2013/08/14(水) NY:AN:NY.AN
clとemacs切り離されているので言語内でインデントには言及できないと思います。
0200名無しさん@お腹いっぱい。2013/08/14(水) NY:AN:NY.AN
;; (cl-indent 名前 手本)
(cl-indent 'iterate 'let)
(cl-indent 'collect 'progn)
(cl-indent 'mapping 'let)
(cl-indent 'mapping 'let)

.emacsにこのように記述することでうまくいきました
0201名無しさん@お腹いっぱい。2013/08/15(木) NY:AN:NY.AN
http://ergoemacs.org/emacs/using_voice_to_code.html
Emacs Pinkieってことばがあるんだね
初めてしった
0202名無しさん@お腹いっぱい。2013/08/20(火) NY:AN:NY.AN
emacs lispの質問です
特定の関数内で呼び出す関数の返り値を外部から変えることはできますか?
(defun foo (x) (print x))

(defun bar1 () (foo "a"))
(defun bar2 () (foo "b"))

defadviceでfoo関数そのものを自由にいじれるのは分かったのですが
このうちbar1で呼び出すfoo関数の返り値だけを変えるようにして
bar2で呼び出すfoo関数はそのままにしておきたいです
0203名無しさん@お腹いっぱい。2013/08/20(火) NY:AN:NY.AN
>>202
もっとエレガントにできないものか。

(defadvice foo (after hoge disable)
(setf ad-return-value "c"))

(defadvice bar1 (around fuga activate)
(ad-enable-advice #'foo 'after 'hoge)
(ad-activate #'foo)
ad-do-it
(ad-disable-advice #'foo 'after 'hoge)
(ad-activate #'foo))
0204名無しさん@お腹いっぱい。2013/08/20(火) NY:AN:NY.AN
>>202
(backtrace) みるとかどうよ。
0205名無しさん@お腹いっぱい。2013/08/20(火) NY:AN:NY.AN
defadvice自体がエレガントかどうかっていう議論もあるような気がする
ちゃんと他人のプログラムのことを考えたうえでのものならいいんだけどね
0206名無しさん@お腹いっぱい。2013/08/21(水) NY:AN:NY.AN
>特定の関数内で呼び出す関数の返り値を外部から変える

設計が腐ってる臭いがする
0207名無しさん@お腹いっぱい。2013/08/21(水) NY:AN:NY.AN
emacsのカレンダーをA4のミスコピー用紙の裏紙に印刷して
半分におって綴じるとシステム手帳に代わりになる

みたいなブログを以前に見た記憶あるのですが

半分におって綴じる

の部分は普通にクリップで挟むだけなのでしょうか?
何かシステム手帳みたいな物はないのでしょうか
0208名無しさん@お腹いっぱい。2013/08/21(水) NY:AN:NY.AN
>>207
ホッチキスでとめると便利だよ。
0209名無しさん@お腹いっぱい。2013/08/21(水) NY:AN:NY.AN
>>206
馬鹿か?adviceの話なんだから設計具合など関係ない。
0210名無しさん@お腹いっぱい。2013/08/21(水) NY:AN:NY.AN
>>209
そんなキミにひとつ名言を捧げよう

 トンカチを握ったヤツには
 全ての問題が釘に見える
02112022013/08/21(水) NY:AN:NY.AN
>>203-206
ありがとうございます。考え直してみます。
0212名無しさん@お腹いっぱい。2013/08/22(木) NY:AN:NY.AN
defadviceじゃなくてfletとかlabelsを使えば?
他人のelispの中での関数呼び出しの挙動を少しだけ変えるときはそうしてることが多い。
0213名無しさん@お腹いっぱい。2013/08/22(木) NY:AN:NY.AN
そのコメントを見て気になっていたのですが、obsolete macro と指摘されていたlabelsとfletについてお尋ねします
`labels' is an obsolete macro (as of 24.3); use `cl-labels' instead.
`flet' is an obsolete macro (as of 24.3); use either `cl-flet' or `cl-letf'.
このようなエラーメッセージが出るようになったので
labelsをcl-labelsにdefmacroしたいのですが
defaliasのようなもので設定すればよいのでしょうか
0214名無しさん@お腹いっぱい。2013/08/22(木) NY:AN:NY.AN
>>213
まずは自分で試してみるべし

ただ、obsolete認定されたんなら cl-flet を使う方向で考えたほうが前向きなような気がする
下位互換を考えるならば、 cl-flet がない環境では cl-flet を defalias してあげればいいと思う

他人のコードならそのうち対応するだろうから、気にしない
0215名無しさん@お腹いっぱい。2013/08/22(木) NY:AN:NY.AN
fletはダイナミックスコープだったけどcl-fletはレキシカルなんだよなー
flet相当のことはcl-letfで一応できるけどちょっと冗長になる
(cl-letf (((symbol-function 'foo) (lambda () ...))) ...)
0216名無しさん@お腹いっぱい。2013/08/22(木) NY:AN:NY.AN
>>214-215
なるほど、他人のコードで更新が停滞しているものだったので
どこまで手を入れるか考えあぐねていました
symbol-functionを使う手は考えていなかったので参考になります
0217名無しさん@お腹いっぱい。2013/08/23(金) NY:AN:NY.AN
へー、レキシカルになったのか。
個人的には少しの手間でダイナミックスコープ特有のバグが減らせるなら喜ばしい。
0218名無しさん@お腹いっぱい。2013/08/29(木) NY:AN:NY.AN
最近本家更新ないけどどうなってるん?
次は24.4?25?
0219名無しさん@お腹いっぱい。2013/08/30(金) NY:AN:NY.AN
次が何番でもいいんですけど、
(setq scroll-conservatively 99999) とかでやってる 1行スクロールが時々飛ぶ現象が、いい加減直ってくれたらいいなと思いますです。

2009年ごろには認知されてるのに…。
0220名無しさん@お腹いっぱい。2013/08/31(土) NY:AN:NY.AN
Changelogには確か直ったと書いてあった
0221名無しさん@お腹いっぱい。2013/08/31(土) NY:AN:NY.AN
>>220
まじですか。24.2.1では相変わらずときどき飛びますです。

(setq scroll-conservatively most-positive-fixnum) で若干マシにはなりますけど
0222名無しさん@お腹いっぱい。2013/08/31(土) NY:AN:NY.AN
Emacs上でXサーバ、VNC、RDPクライアントっぽい事が出来るスクリプトとか無いでしょうか?
0223名無しさん@お腹いっぱい。2013/08/31(土) NY:AN:NY.AN
Emacs内にX等の窓をだすっていうんだったら多分ない。
Webkitを取り込んだバージョンのなんかだとその内出来るかもしれんけど。
0224名無しさん@お腹いっぱい。2013/08/31(土) NY:AN:NY.AN
NEWSを調べたところ24.3からだね。↓こんな感じ
*** If you customize `scroll-conservatively' to a value greater than 100,
Emacs will never recenter point in the window when it scrolls due to
cursor motion commands or commands that move point (e.f., `M-g M-g').
Previously, you needed to use `most-positive-fixnum' as the value of
`scroll-conservatively' to achieve the same effect.
0225名無しさん@お腹いっぱい。2013/09/01(日) 00:13:50.51
>>224
ごめん24.1からだった。。
ということは直ってないし、永久に直らないね多分。
0226名無しさん@お腹いっぱい。2013/09/01(日) 06:35:18.99
>>225
わざわざ調べてくれてありがd

飛ぶときに recenter が働いていたというのがちょっと疑問な気がします。
ひょっとすると似て非なる現象なのかもしれないです。

あまり頻繁ではないので、引き続き我慢しますです。
0227名無しさん@お腹いっぱい。2013/09/01(日) 08:35:34.05
先端だと
(setq scroll-conservatively most-positive-fixnum)
すると飛ばないような気がするなあ。
0228名無しさん@お腹いっぱい。2013/09/01(日) 09:56:00.97
most-positive-fixnum を使えば飛ぶ頻度は格段に(ときどき→まれに)減るのですが、油断していると飛びますw

emacs -q 環境では飛んだことがないので、かなり環境に依存するのではないかと。

フォントが小さい場合や、toggle-truncate-lines で折り返しなしにしたときに起きやすいような気が…
0229名無しさん@お腹いっぱい。2013/09/01(日) 10:38:45.02
環境依存ってか最近はメジャーモード自体がいろいろ凝ったことをやるし
たいていはマイナーモードもてんこ盛りだから
もう fundamental-mode でもない限りそもそもレベルで重いわな

そんなことより vi/emacs 使うなら
5行5文字以上の移動にキー押しっぱなししてるうちはニワカ
という教えも思い出してやってください
■ このスレッドは過去ログ倉庫に格納されています