Emacs Part 44
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2013/12/14(土) 17:36:04.45GNU Emacs - GNU Project - Free Software Foundation (FSF)
https://www.gnu.org/software/emacs/
EmacsWiki: サイトマップ
http://www.emacswiki.org/emacs/
前スレ
Emacs Part 43
http://toro.2ch.net/test/read.cgi/unix/1370754332/
0154名無しさん@お腹いっぱい。
2013/12/25(水) 23:53:35.64なんでそれが「ななし」になるんだ・・・
0155名無しさん@お腹いっぱい。
2013/12/26(木) 01:43:31.01マジかーショックだわーどうすべー
0156名無しさん@お腹いっぱい。
2013/12/26(木) 01:49:25.940157名無しさん@お腹いっぱい。
2013/12/26(木) 02:33:29.400158名無しさん@お腹いっぱい。
2013/12/26(木) 02:52:14.550159名無しさん@お腹いっぱい。
2013/12/26(木) 10:04:52.80って書いてあるんだから icomplete-mode なんだろうきっと。
0160名無しさん@お腹いっぱい。
2013/12/26(木) 11:05:44.24iswitchb みたいになって非常に気色悪い
0161名無しさん@お腹いっぱい。
2013/12/26(木) 12:36:33.120162名無しさん@お腹いっぱい。
2013/12/26(木) 12:48:23.070163名無しさん@お腹いっぱい。
2013/12/26(木) 19:40:52.55eieioとかも
0164名無しさん@お腹いっぱい。
2013/12/26(木) 19:41:19.360165名無しさん@お腹いっぱい。
2013/12/27(金) 00:23:06.640166名無しさん@お腹いっぱい。
2013/12/27(金) 02:38:35.470167名無しさん@お腹いっぱい。
2013/12/27(金) 18:53:00.82使ってみたけど、スタイルガイド通りにならないじゃん…なんだよこれ
0168名無しさん@お腹いっぱい。
2013/12/27(金) 19:01:15.180169名無しさん@お腹いっぱい。
2013/12/27(金) 19:07:08.820170名無しさん@お腹いっぱい。
2013/12/27(金) 19:15:57.92そこには1つしかない
スタイルガイド内からリンク張られているのも同じ
もちろん直せばいいんだろうけど、だったら今まで通りでいいや…
0171名無しさん@お腹いっぱい。
2013/12/30(月) 06:14:34.700172名無しさん@お腹いっぱい。
2013/12/30(月) 06:27:15.7716進数とかのモードにすると、16#A98AC7 って表示になりますが、
この時「16#」部分だけ色を変えたいのですが可能でしょうか?
0173名無しさん@お腹いっぱい。
2013/12/30(月) 10:26:44.24特にないかと
>>172
可能だろうけど標準でそういう機能は用意されてないから
自分でコード書かないと無理ですね
0174名無しさん@お腹いっぱい。
2013/12/30(月) 12:27:33.24基数に色付けする関数を作って、
calc-radix-formatter に設定。
0175名無しさん@お腹いっぱい。
2013/12/30(月) 20:52:56.92calc-radix と calc-push-list と calc-binary-op のアドバイスで
上手くいきました。
ありがとうございました。よいお年をお迎えください。
0176名無しさん@お腹いっぱい。
2014/01/01(水) 13:53:47.13emacs -Q -batch で起動するのにかかる時間だの値の共有だの考えると
あんまり美味しいとこないよね
0177名無しさん@お腹いっぱい。
2014/01/01(水) 14:46:28.94> マルチスレッド紛いをやろうと思ったんだけど
そういうときは emacs に make-network-process で server/client 作っていろいろやるとよさげ。
kiwanami 氏がそんなことやってたような。
0178名無しさん@お腹いっぱい。
2014/01/01(水) 15:27:59.30ローカルでパイプでつなぐってのはあんまりよろしくないのかな
0179名無しさん@お腹いっぱい。
2014/01/02(木) 21:01:40.33http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg00005.html
前は rms が一人だけ反対したから移行できなかったって聞いたけどどうなるやら
0180名無しさん@お腹いっぱい。
2014/01/03(金) 08:17:44.100181名無しさん@お腹いっぱい。
2014/01/03(金) 10:40:37.020182名無しさん@お腹いっぱい。
2014/01/03(金) 10:45:15.170183名無しさん@お腹いっぱい。
2014/01/03(金) 10:52:38.330184名無しさん@お腹いっぱい。
2014/01/03(金) 10:55:54.16やっぱ日本語でコミットログとか書こうとすると死にかけるんかね、cygwin の git は。
0185名無しさん@お腹いっぱい。
2014/01/03(金) 11:01:30.12cygportsに1.8.3.4がある
日本語ファイル名もコミットログも問題なし
0186名無しさん@お腹いっぱい。
2014/01/03(金) 13:22:56.98コミットメッセージの日本語とかも問題無い
俺の周辺ではファイル名に日本語は使わないからその辺かな?
0187名無しさん@お腹いっぱい。
2014/01/03(金) 13:25:46.70そう見えるだけなのかな?
0188名無しさん@お腹いっぱい。
2014/01/03(金) 15:55:31.41どちらの方が優先的に表示されるのですか?
0189名無しさん@お腹いっぱい。
2014/01/04(土) 16:38:03.270190名無しさん@お腹いっぱい。
2014/01/04(土) 18:27:16.510191名無しさん@お腹いっぱい。
2014/01/04(土) 18:34:02.380192名無しさん@お腹いっぱい。
2014/01/04(土) 19:36:10.28ttp://lists.gnu.org/archive/html/emacs-devel/2014-01/msg00014.html
0193名無しさん@お腹いっぱい。
2014/01/04(土) 19:44:33.610194名無しさん@お腹いっぱい。
2014/01/04(土) 21:16:22.76RMS : べ、別にbzrにこだわる必要ないんだけどね。
0195名無しさん@お腹いっぱい。
2014/01/04(土) 22:06:35.230196名無しさん@お腹いっぱい。
2014/01/05(日) 01:25:30.720197名無しさん@お腹いっぱい。
2014/01/05(日) 12:11:29.78クソわろたwww
0198名無しさん@お腹いっぱい。
2014/01/05(日) 20:57:15.39微妙に狭くて1:2になりません
face-font-rescale-alist を使って日本語フォントを 1.1 倍にすると幅は一致するのですが
高さも変わってしまい英字のみだった行に日本語を加えると数ピクセル動いて気持ちが悪い状態です
文字の大きさも感覚的に日本語のほうが大きくなってしまうので
文字間を少し広くすることでピッチを合わせたいと思っているのですがフォントをいじることなく
変更することは可能でしょうか
Ubuntu 13.10 の Emacs 24.3 を使っています
0199名無しさん@お腹いっぱい。
2014/01/05(日) 21:15:58.95自分は色々した結果、日本語と英字を同じフォントにすることにした。
0200名無しさん@お腹いっぱい。
2014/01/05(日) 21:39:56.15emacs だけだと結局無理だったはず。
自分も数ピクセル高さが合わないのを我慢して使ってる。
0201名無しさん@お腹いっぱい。
2014/01/05(日) 21:47:20.35やっぱりできないか
0202名無しさん@お腹いっぱい。
2014/01/05(日) 22:57:08.90* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
\M-q で
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo.
みたいに整形されるけど、
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo.
のように "* " の長さも次行のインデントに含めて欲しい場合、どう設定すれば良いですか?
adaptive-fill-regexp, adaptive-fill-first-line-regexp 等試しましたが、上手くいきません。
0203名無しさん@お腹いっぱい。
2014/01/05(日) 23:10:00.15text-modeだと後者のように整形されるよ。
24.3
0204名無しさん@お腹いっぱい。
2014/01/05(日) 23:41:55.790205名無しさん@お腹いっぱい。
2014/01/06(月) 00:23:07.28確かに text-mode デフォルトだと
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
(\M-q) →
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo.
が達成できますが、それだと全角スペースやコメント等に対応しておらず、例えば
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo.
は \M-q で下記のように整形されるわけです。
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo.
これを訂正しようと、" " のケースを adaptive-fill-regexp に追加すると、
* foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo foo
foo foo foo foo.
までにしかならず、 "* " のインデント分は考慮されなくなるというイタチごっこで。。。
0206205
2014/01/06(月) 00:31:27.89adaptive-fill-regexp のデフォルト値を参照して変更加えてたら、
やりたい事全部できちゃいました。
0207名無しさん@お腹いっぱい。
2014/01/06(月) 02:45:29.06フォントまわりは悩ましいよね。
俺も>>199さんと同じで日本語と英字で同じフォントにしてる。
それでもフォントの大きさによってずれることがあるので、
うまく合う大きさを指定してる感じ。
0208名無しさん@お腹いっぱい。
2014/01/06(月) 09:15:03.000209名無しさん@お腹いっぱい。
2014/01/06(月) 09:42:57.10http://d.hatena.ne.jp/setoryohei/20110117/1295336454
0210名無しさん@お腹いっぱい。
2014/01/06(月) 12:32:36.57結局 face-font-rescale-alist って高さも幅もリスケールしちゃうから
どう頑張ってもずれるフォントはずれるんだよね。
強制的に高さと幅指定してそれに満たない部分は空白で埋めるとかできればなあ。
0211名無しさん@お腹いっぱい。
2014/01/06(月) 13:36:39.61Emacsの標準機能だとminibufferにカーソル位置の単語を初期入力に
してないものがあったりしてイラついたんで汎用的なのを作った
(defun minibuffer-insert-word-at-point ()
"Get a word at point in original buffer and insert it to minibuffer."
(interactive)
(when (window-minibuffer-p)
(let ((word-at-point (with-current-buffer (window-buffer (minibuffer-selected-window))
(thing-at-point 'word))))
(when word-at-point
(insert word-at-point)))))
(define-key minibuffer-local-map [(control ?.)] 'minibuffer-insert-word-at-point)
これでminibufferでC-.でカーソル位置の単語をコピってくる
ちなみにminibuffer.elのケツに似た様なのがあったんでそれをパクった
0212名無しさん@お腹いっぱい。
2014/01/06(月) 19:57:57.71(defmacro my-debug (msg)
`(message "%s - %s:%s" (current-time-string) 関数名 msg))
みたいなことができたらデバッグメッセージ埋め込んだりするのが楽だと思ったのですが、
それらしいものがみつかりませんでした。
0213名無しさん@お腹いっぱい。
2014/01/06(月) 22:02:19.67(format "%#6x" 15) とかやると " 0xf" になるのはいいんだけど
(format "%#06x" 15) にしたときに "0000xf" はおかしいよ・・0x の後に0足してくれよ
C の printf だと"%#06x" で "0x000f" になってくれる
0214名無しさん@お腹いっぱい。
2014/01/06(月) 23:35:51.410215名無しさん@お腹いっぱい。
2014/01/06(月) 23:48:16.50backtrace-frame を使えばできるかもしれない。
常に関数の先頭で使うという前提なら、関数名のところで、
(if (car (backtrace-frame 1))
(cadr (backtrace-frame 1))
(cadr (backtrace-frame 4)))
かも。
>>213
バグでしょう。
(format "%#.04x" 15)
で回避。
0216名無しさん@お腹いっぱい。
2014/01/07(火) 00:31:04.64ありがとうございます。backtrace は自分で呼び出せるんですねー。
呼び出し元でどれだけ遡るかを決めなくてはいけないのは致し方ないですね。
0217名無しさん@お腹いっぱい。
2014/01/07(火) 00:31:17.67しまって、それをセーブしたら、ファイルの文字が以下のように壊れてしまいました。
\343\202\253\343\203\274\343\202\275 ...
これを元の文字に直す方法はありませんか? 再現できればsjisでもutf-8でも問題ありません。
0218名無しさん@お腹いっぱい。
2014/01/07(火) 01:16:08.98カーソ (?)
0219名無しさん@お腹いっぱい。
2014/01/08(水) 10:26:20.98前提) コンパイル時に素の require は実行されない。
・eval-when-compile
通常ロード時は他とかわらず普通に eval される。
バイトコンパイル時は eval した結果に置き換わり元の式の形では残らない。
→事前に複雑な定数式の計算をさせたり、
コンパイル時に置き換えてしまって残したくない内部的なマクロ定義をしたり、
コンパイル時に必要な定数値や関数定義をロードするのに使う。
・eval-and-compile
通常ロード時は他とかわらず普通に eval される。
バイトコンパイル時に eval されるが、コンパイル結果は元の式のまま残る。
→コンパイル時/実行時共に必要な定数値や関数定義をロードするのに使う。
0220名無しさん@お腹いっぱい。
2014/01/08(水) 11:15:55.78あってると思う。
0221名無しさん@お腹いっぱい。
2014/01/08(水) 11:35:01.04マクロの式組み立てに使う関数を require するのぐらいしか使ったこと無い
0222名無しさん@お腹いっぱい。
2014/01/08(水) 20:24:25.570223名無しさん@お腹いっぱい。
2014/01/08(水) 21:20:35.340224名無しさん@お腹いっぱい。
2014/01/09(木) 11:55:11.890225名無しさん@お腹いっぱい。
2014/01/09(木) 11:59:40.93http://www.ring.gr.jp/archives/elisp/skk/maintrunk/
0226名無しさん@お腹いっぱい。
2014/01/09(木) 13:14:28.50http://ascii.jp/elem/000/000/856/856012/
フリーソフトウェア以外は拒否すべき
0227名無しさん@お腹いっぱい。
2014/01/09(木) 14:02:28.330228名無しさん@お腹いっぱい。
2014/01/09(木) 15:16:30.300229名無しさん@お腹いっぱい。
2014/01/10(金) 03:55:06.00俺も calc-mode 改造したぜ!
↓この4行をそのままコピーしてペーストしても
0x1869F円
298,000円
100円
¥10,000
↓スタックにはこう入って超便利!
99999
298000
100
10000
0230名無しさん@お腹いっぱい。
2014/01/10(金) 09:28:22.41いまだと twittering-mode とか eww → org へインポートみたいな作りになるんだろうかね
0231名無しさん@お腹いっぱい。
2014/01/10(金) 11:00:15.51packageにしてupしてくれ!
0232名無しさん@お腹いっぱい。
2014/01/10(金) 11:17:36.570233名無しさん@お腹いっぱい。
2014/01/10(金) 11:19:27.950234名無しさん@お腹いっぱい。
2014/01/10(金) 12:55:30.97C の #define のように、コンパイル時に完全に置き換わってシンボル名を残さない定数定義は可能でしょうか?
defconst の場合、コンパイルしても置き換えは起こりませんでした。
defmacro は eval-when-compile と組み合わせればシンボル名を残さずに定義できますが、
関数呼び出しの形で書かなくていけないのがいまいちな感じです。
0235名無しさん@お腹いっぱい。
2014/01/10(金) 13:56:19.41こうじゃなかったっけ?
0236名無しさん@お腹いっぱい。
2014/01/10(金) 14:13:54.03elc を見てみましたがやっぱり置き換えは発生しておりませんでした。
(eval-and-compile (defconst test-hogehoge "HOGE"))
(defun test-func () test-hogehoge)
=>
(defconst test-hogehoge "HOGE")
(defalias 'test-func #[nil "^H\207" [test-hogehoge] 1])
0237名無しさん@お腹いっぱい。
2014/01/10(金) 14:52:48.48(eval-when-compile (defconst test-hogehoge "HOGE"))
(defun test-func ()
(eval-when-compile test-hogehoge))
eval-when-compile で全部包むと消えるみたいけど、めんどくさいかな。
0238名無しさん@お腹いっぱい。
2014/01/10(金) 16:01:53.67cl-symbol-macrolet はどうだろう。clパッケージに依存するけれど。
(require 'cl-macs)
(cl-symbol-macrolet ((hoge "HOGE")
(fuga "FUGA"))
(defun f ()
(list hoge fuga)))
(symbol-function 'f)
;=> (lambda nil (list "HOGE" "FUGA"))
0239名無しさん@お腹いっぱい。
2014/01/10(金) 19:19:36.12やっぱりその場で eval させないとだめっぽいですね。
>>238
おおおー
スコープ絞ればかなり期待通りの動作です。
ありがとうございます。
cl 奥が深いなあ
0240名無しさん@お腹いっぱい。
2014/01/11(土) 11:37:09.14このようなものです
(mapc (lambda (a b) (print (+ a b)))
'(2 3 4) '(3 4 5))
想定しているのはcommon lispのmapcのようなことなのですが、できないものでしょうか
0241名無しさん@お腹いっぱい。
2014/01/11(土) 11:45:17.84cl の mapc がそのまんま common lisp の挙動だね。
(require 'cl-lib)
(cl-mapc (lambda (a b) (print (+ a b))) '(2 3 4) '(3 4 5))
0242名無しさん@お腹いっぱい。
2014/01/11(土) 13:30:42.74!ばっちりです!ありがとうございました
0243名無しさん@お腹いっぱい。
2014/01/12(日) 06:01:18.50保存時に出るこのエコーを無効にしたいです。
Saving file /usr/home/jk2/.emacs.d/.scratch…
Wrote /usr/home/jk2/.emacs.d/.scratch
「Saving file〜」は message の defadvice で消せました。
「Wrote〜」はどこで無効にすればよいのでしょうか?
0244名無しさん@お腹いっぱい。
2014/01/12(日) 10:22:18.850245名無しさん@お腹いっぱい。
2014/01/12(日) 13:41:13.85ありがとうございます!静かになりました。
0246名無しさん@お腹いっぱい。
2014/01/14(火) 00:34:38.41デバッガを終了した後に signal を投げた箇所から再開させるよう
デバッガの操作ではなくコード側から指示することは可能でしょうか?
(let ((count 100))
(while (> count 0)
;; do something
(when something-happened
(signal 'some-error nil))
;; do something ;; <= エラーが起きてもここから再開したい & ignore-errors でシグナルを無視はしたくない & ループも抜けたくない
(setq count (1- count))))
0247名無しさん@お腹いっぱい。
2014/01/14(火) 02:59:39.10(debug 'some-error)
にする
0248名無しさん@お腹いっぱい。
2014/01/14(火) 10:10:16.95ありがとうございます。
(debug 'hoge) でシグナルと同じようにデバッガに入れるんですね。
いま気がついたんですけど ignore-errors でもどちらにせよエラー起きた場所で止まっちゃうんですね。
(ignore-errors
(signal 'error nil)
(message "ppp") ;; <= ここまで到達はしない
)
basic とかにある、on error resume next みたいなのは無理かー
0249名無しさん@お腹いっぱい。
2014/01/14(火) 20:04:25.19accept-process-output したりすると、(プロセスの出力があれば)フィルタ関数内で
フィルタ関数が呼ばれることになるんでしょうか?
0250名無しさん@お腹いっぱい。
2014/01/14(火) 21:52:26.73Gaucheのリーダマクロ #?= みたいにprintfデバッグを書くのに debug-print.el というのを作ったのですが,
可能であれば函数名を読み取って表示するので要望に合うかもです.
現状では debug-print を上書きすれば表示は変えられるけど, もうちょい変えやすくしますかね.
(debug-printという関数名は twittering-mode.el も使ってるんで現状では少し注意.)
何か要望出してもらえれば反映するかもです.
丁度いい機会なのでいくつか質問を.
1. 既存の函数の戻り値に一時的に少し手を加えたい場合はどうするのが良いのでしょうか.
adviseされた函数をfletで上書きするとエラーが出るのでadviceを使うのが正しいのでしょうが,
常にそのadviceを有効にしたいわけではないのです. 大域変数を使ってadvice内部で
その変数を見て動作を切り替えるというのが標準的なんですかね?
2. そのやり方で何か不都合が出るかどうかが気になります.
因みに上のやり方がパッと思いつかなかったので現状では ad-enable-advice と ad-disable-advice
でadviceの有効/無効を切り替えています. こちらは既にバグがあることがわかっています.
0251名無しさん@お腹いっぱい。
2014/01/14(火) 22:44:00.16enable/disable で問題ない気もするのですがちなみにどんなバグなんでしょう?
ad-activate が抜けてるとか?
0252名無しさん@お腹いっぱい。
2014/01/14(火) 22:52:00.69> 丁度いい機会なのでいくつか質問を.
>
> 1. 既存の函数の戻り値に一時的に少し手を加えたい場合はどうするのが良いのでしょうか.
advice 使わないなら
(defconst original-FUNC (symbol-function 'FUNC))
(defun temporary-FUNC (&rest args)
(let ((retval (apply 'original-FUNC args))
....))
みたいにして
(fset 'FUNC 'original-FUNC) と (fset 'FUNC 'temporary-FUNC)
を切り換える、とか?
0253名無しさん@お腹いっぱい。
2014/01/14(火) 23:04:51.41advice された関数に対してそれをするとアカンのですよ。
(defun dump-me ()
"me me")
(defadvice dump-me (after test-ad activate)
(setq ad-return-value (concat ad-return-value "??")))
(defconst original-dump-me (symbol-function 'dump-me))
(defun temporary-dump-me (&rest args)
(let ((retval (apply original-dump-me args)))
(concat retval "!!"))
)
(fset 'dump-me original-dump-me)
(fset 'dump-me 'temporary-dump-me)
(dump-me) ;; => スタック使い果たす
24.4 では fset 時に advice がついてこなくなるとかなんとか。
■ このスレッドは過去ログ倉庫に格納されています