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

Emacs Part 44

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

GNU 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/
0118名無しさん@お腹いっぱい。2013/12/24(火) 00:01:42.12
>>117
eclim-emacs 初めて知った
面白そうだから後で遊んでみる
ありがとう
0119名無しさん@お腹いっぱい。2013/12/24(火) 00:52:13.81
>>115
それは碓かにそうなんだけど、IDEで使ってる機能を全部使えるようにelファイルを探して入れるのが面倒なんだよね
あとGUIでタブ残ってるのがすぐ分かるようにしたい時がある
0120名無しさん@お腹いっぱい。2013/12/24(火) 01:02:42.69
>>119
全部入れたらパッケージングして上げてくれ。
0121名無しさん@お腹いっぱい。2013/12/24(火) 01:04:07.28
>>119
100ファイルとか普通に開くから、タブとか無理だ。
0122名無しさん@お腹いっぱい。2013/12/24(火) 01:07:21.93
emacsに意識しすぎてコーディングが捗らない
0123名無しさん@お腹いっぱい。2013/12/24(火) 01:15:37.50
IDEで使ってる機能を全部使えるようにするのは無理だしその逆も同様
0124名無しさん@お腹いっぱい。2013/12/24(火) 01:55:09.19
補完とか関数ジャンプとかそれぐらいしか使ってないならできる
0125名無しさん@お腹いっぱい。2013/12/24(火) 02:14:38.28
eclipseが必要になるのって、デバッガかリファクタリングツールを使いたくなる時ぐらいだな。メソッド補完はcedetとautocompleteでそこそこいける。
0126名無しさん@お腹いっぱい。2013/12/24(火) 02:30:16.79
c++書く時にgdb+emacsでデバッグしたりしてるけどわりといける
けどvisual studioでデバッグしたい
0127名無しさん@お腹いっぱい。2013/12/24(火) 04:30:01.16
>>117
すごいな、これw
0128名無しさん@お腹いっぱい。2013/12/24(火) 09:37:54.73
eclim-emacs でいいんじゃないのか
リファクタリングも参照ジャンプも補完も javadoc も eclispe の機能を裏で呼び出してくれるみたいだし

http://www.skybert.net/emacs/java/
0129名無しさん@お腹いっぱい。2013/12/24(火) 13:16:57.14
eclimって元はvimなのかな
emacsより進んでてちょっと嫉妬した
0130名無しさん@お腹いっぱい。2013/12/24(火) 17:03:06.86
もうEmacsも御役御免の時代なのかね……。
寂しいが、これも現実か。
0131名無しさん@お腹いっぱい。2013/12/24(火) 17:06:56.22
えー。今導入し始めてる時なのに。
0132名無しさん@お腹いっぱい。2013/12/24(火) 17:09:32.29
世界的にはVimのほうが上だからな
0133名無しさん@お腹いっぱい。2013/12/24(火) 19:15:29.50
ECLipse + vIM = ECLIM
0134名無しさん@お腹いっぱい。2013/12/24(火) 19:47:12.18
Vimの人の方が外部ツールに頼る事に抵抗が少ないからだろうね
Emacsの人はそんなデカいツールに頼るという発想がない
0135名無しさん@お腹いっぱい。2013/12/24(火) 20:21:14.07
feature freeze したな
0136名無しさん@お腹いっぱい。2013/12/24(火) 20:32:57.28
dired-hide-details-mode が気になる
0137名無しさん@お腹いっぱい。2013/12/24(火) 20:37:42.86
俺の大好きな iswitchb が obsolete 行きになってしまった・・・
http://bzr.savannah.gnu.org/lh/emacs/trunk/annotate/head:/etc/NEWS#L800
0138名無しさん@お腹いっぱい。2013/12/24(火) 20:46:29.89
>>135
どういうこと?
0139名無しさん@お腹いっぱい。2013/12/24(火) 20:52:28.10
>>138
24.4に向けての新機能追加が終了、あとはバグ直しだけしてリリース準備頑張りましょうねーってことじゃね
http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00844.html
0140名無しさん@お腹いっぱい。2013/12/24(火) 23:14:45.54
しかしクリスマス休暇とあいまって今はコミット祭になってるな
次は24.4になるだろうけど、0.1のバージョンアップにしては
細かいところでかなり変更点が多いし、いいリリースになりそうだ
0141名無しさん@お腹いっぱい。2013/12/24(火) 23:19:58.83
eww がちょっと楽しみ
0142名無しさん@お腹いっぱい。2013/12/25(水) 00:52:12.15
pixelwise 関係の変更から色々おかしいんだよねえ。
0143名無しさん@お腹いっぱい。2013/12/25(水) 08:29:40.75
<script type="elisp">と書けるようになったら本気出す
0144名無しさん@お腹いっぱい。2013/12/25(水) 11:08:20.80
#xffff 等の 16bit 数値を base64 でエンコードする簡単なやり方ってあるのでしょうか?

(base64-encode-string (char-to-string #xffff)) だと multibyte 文字が入っているって怒られます。
そもそもエンディアンどうなるのって話だし。

自分でバイトオーダを意識して 1byte 単位で切り出して変換するしかないのでしょうか。
0145名無しさん@お腹いっぱい。2013/12/25(水) 11:36:54.20
encode 意識しないんなら string-as-unibyte
意識したいんなら encode-coding-string で適切な unibyte に。
0146名無しさん@お腹いっぱい。2013/12/25(水) 11:41:10.72
>>139
ありがとう
よく分かった
0147名無しさん@お腹いっぱい。2013/12/25(水) 12:29:27.78
>>145
ありがとうございます。
string-as-unibyte はなぜか 3byte に変換されてしまいました。unibyte と multibyte にエンコーディングが絡むと
未だに何がなんだかわからなくなります・・・
とりあえず byteorder の戻り値を見て utf-16le と utf-16be を切り替えるあたりが妥当なところなんでしょうかね。

(equal "774=" (base64-encode-string (string-as-unibyte (char-to-string #xbeef))))
;; => nil
(equal "774=" (base64-encode-string (encode-coding-string (char-to-string #xbeef) 'binary)))
;; => nil
(equal "774=" (base64-encode-string (encode-coding-string (char-to-string #xbeef) 'utf-8)))
;; => nil
(equal "774=" (base64-encode-string (encode-coding-string (char-to-string #xbeef) 'utf-16be)))
;; => nil
(equal "774=" (base64-encode-string (encode-coding-string (char-to-string #xbeef) 'utf-16le)))
;; => t
0148名無しさん@お腹いっぱい。2013/12/25(水) 14:00:27.67
helmの質問です
helm-do-grepでand検索ができないのでどうしようと思ったらこれを見つけました
http://www49.atwiki.jp/ntemacs/pages/33.html
ですがこれではhelm-do-grepの処理が大幅に遅くなってしまいました

そこで空白が入力されたときにはそれより前の文字列をhelm-do-grepで処理し
空白以後の文字列はその結果が表示されているバッファをemacs lispで編集することでヒットしたかどうかを表そうと考えました

helm-do-grepの実質的な処理はhelm-grep.elのhelm-do-grep-1がしていることは分かったのですが
入力された文字列の管理をどこでやっているのかと検索結果をどのように編集すればよいのかが分かりません
よろしくおねがいします
0149名無しさん@お腹いっぱい。2013/12/25(水) 15:12:11.19
>>147
へー beef (牛肉) が unicode で「ななし」になるってなかなか面白くないかい。とっくに既出?

それはさておき最近の Emacs だと内部エンコーディングが utf-8 なんじゃなかったっけ。
だから 3 byte になるのは当然だよね。
環境に依存するので char-to-string 使うのはあんまりよくないかもしれない。

(defun int16-to-string (int16)
(let ((s (make-string 2 0)))
(aset s 0 (logand (lsh int16 0) #xff))
(aset s 1 (logand (lsh int16 -8) #xff))
s))

> 自分でバイトオーダを意識して 1byte 単位で切り出して変換するしかないのでしょうか。

そういうことになるのかな。
0150名無しさん@お腹いっぱい。2013/12/25(水) 15:40:39.79
>>149
なるほど確かに info を見てみると unicode のスーパーセットってなっていました。
ただのバイト列を作りたい場合、char-to-string して concat ではなく
aset でしこしこ組み立てていけば良さそうですね。

ありがとうございました。
0151名無しさん@お腹いっぱい。2013/12/25(水) 22:50:49.84
beefって2byteだよね?なんで日本語3文字の「ななし」になるんだ?
0152名無しさん@お腹いっぱい。2013/12/25(水) 22:54:32.24
>>147 のことなら、
0xbeef をリトルエンディアンで配置すると 0xef 0xbe
これを base64 で符号化すると "774=" になるってことでしょう。
0153名無しさん@お腹いっぱい。2013/12/25(水) 23:47:19.56
>151
UTF-16 の 2000からffffは、UTF-8では3バイトってことじゃね?
0154名無しさん@お腹いっぱい。2013/12/25(水) 23:53:35.64
>>153
なんでそれが「ななし」になるんだ・・・
0155名無しさん@お腹いっぱい。2013/12/26(木) 01:43:31.01
>>137
マジかーショックだわーどうすべー
0156名無しさん@お腹いっぱい。2013/12/26(木) 01:49:25.94
iswitchbの代わりは何になるんだろう
0157名無しさん@お腹いっぱい。2013/12/26(木) 02:33:29.40
ido だよ
0158名無しさん@お腹いっぱい。2013/12/26(木) 02:52:14.55
へーそんなのあるんだ
0159名無しさん@お腹いっぱい。2013/12/26(木) 10:04:52.80
>*** Iswitchb is made obsolete by icomplete-mode.
って書いてあるんだから icomplete-mode なんだろうきっと。
0160名無しさん@お腹いっぱい。2013/12/26(木) 11:05:44.24
icomplete-mode 使ったら describe-function とかのその他の補完系まで
iswitchb みたいになって非常に気色悪い
0161名無しさん@お腹いっぱい。2013/12/26(木) 12:36:33.12
ちなみに ido の読み方は"アイドゥー"だよ
0162名無しさん@お腹いっぱい。2013/12/26(木) 12:48:23.07
つながってるね!
0163名無しさん@お腹いっぱい。2013/12/26(木) 19:40:52.55
日本語の移動から来てると思った
eieioとかも
0164名無しさん@お腹いっぱい。2013/12/26(木) 19:41:19.36
えいえいおー
0165名無しさん@お腹いっぱい。2013/12/27(金) 00:23:06.64
eieio は"イーアイイーアイオー"だよ
0166名無しさん@お腹いっぱい。2013/12/27(金) 02:38:35.47
イーヤイーヤヨー
0167名無しさん@お腹いっぱい。2013/12/27(金) 18:53:00.82
GoogleC++スタイルガイドで紹介さているGoogle謹製の google-c-style.el を
使ってみたけど、スタイルガイド通りにならないじゃん…なんだよこれ
0168名無しさん@お腹いっぱい。2013/12/27(金) 19:01:15.18
C++なのにCというのにも違和感
0169名無しさん@お腹いっぱい。2013/12/27(金) 19:07:08.82
実はc++-style.elもあって、間違ってC用のやつが公開されてるとか
0170名無しさん@お腹いっぱい。2013/12/27(金) 19:15:57.92
いや、Google Codeにホスティングされているcpplint内の1ファイルで、
そこには1つしかない
スタイルガイド内からリンク張られているのも同じ

もちろん直せばいいんだろうけど、だったら今まで通りでいいや…
0171名無しさん@お腹いっぱい。2013/12/30(月) 06:14:34.70
funcall 使いまくると困る事って何かありますか?
0172名無しさん@お腹いっぱい。2013/12/30(月) 06:27:15.77
calc-mode について教えて下さい。
16進数とかのモードにすると、16#A98AC7 って表示になりますが、
この時「16#」部分だけ色を変えたいのですが可能でしょうか?
0173名無しさん@お腹いっぱい。2013/12/30(月) 10:26:44.24
>>171
特にないかと

>>172
可能だろうけど標準でそういう機能は用意されてないから
自分でコード書かないと無理ですね
0174名無しさん@お腹いっぱい。2013/12/30(月) 12:27:33.24
>>172
基数に色付けする関数を作って、
calc-radix-formatter に設定。
0175名無しさん@お腹いっぱい。2013/12/30(月) 20:52:56.92
calc-radix-formatter だと最初のスタックだけ色が付きませんでしたが、
calc-radix と calc-push-list と calc-binary-op のアドバイスで
上手くいきました。
ありがとうございました。よいお年をお迎えください。
0176名無しさん@お腹いっぱい。2014/01/01(水) 13:53:47.13
emacs を start-process してマルチスレッド紛いをやろうと思ったんだけど
emacs -Q -batch で起動するのにかかる時間だの値の共有だの考えると
あんまり美味しいとこないよね
0177名無しさん@お腹いっぱい。2014/01/01(水) 14:46:28.94
>>176
> マルチスレッド紛いをやろうと思ったんだけど

そういうときは emacs に make-network-process で server/client 作っていろいろやるとよさげ。
kiwanami 氏がそんなことやってたような。
0178名無しさん@お腹いっぱい。2014/01/01(水) 15:27:59.30
なるほど立ちあげっぱなしにすればいいのか。
ローカルでパイプでつなぐってのはあんまりよろしくないのかな
0179名無しさん@お腹いっぱい。2014/01/02(木) 21:01:40.33
esr が bzr オワタから git に移れやって言ってる
http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg00005.html

前は rms が一人だけ反対したから移行できなかったって聞いたけどどうなるやら
0180名無しさん@お腹いっぱい。2014/01/03(金) 08:17:44.10
今回はrmsも強く反対しているわけではなさそう
0181名無しさん@お腹いっぱい。2014/01/03(金) 10:40:37.02
世界的にもgit一人勝ちみたいだな
0182名無しさん@お腹いっぱい。2014/01/03(金) 10:45:15.17
Windows の Cygwin では git は死んでるんだが
0183名無しさん@お腹いっぱい。2014/01/03(金) 10:52:38.33
日本語名にしなければ大丈夫? > Windows の Cygwin では git
0184名無しさん@お腹いっぱい。2014/01/03(金) 10:55:54.16
github から clone するぐらいの使い方しかしてなかったけど
やっぱ日本語でコミットログとか書こうとすると死にかけるんかね、cygwin の git は。
0185名無しさん@お腹いっぱい。2014/01/03(金) 11:01:30.12
バージョンが古い(1.7.9)っていう話ではなくて?
cygportsに1.8.3.4がある
日本語ファイル名もコミットログも問題なし
0186名無しさん@お腹いっぱい。2014/01/03(金) 13:22:56.98
cygwinのgit-1.7.9で使ってるがとくに問題無く使えてるぞ?
コミットメッセージの日本語とかも問題無い
俺の周辺ではファイル名に日本語は使わないからその辺かな?
0187名無しさん@お腹いっぱい。2014/01/03(金) 13:25:46.70
俺はファイル名に日本語使ってるけど普通に使えてるなぁ
そう見えるだけなのかな?
0188名無しさん@お腹いっぱい。2014/01/03(金) 15:55:31.41
font-lockでprependとappendの両方を指定した場合
どちらの方が優先的に表示されるのですか?
0189名無しさん@お腹いっぱい。2014/01/04(土) 16:38:03.27
RMS が折れた
0190名無しさん@お腹いっぱい。2014/01/04(土) 18:27:16.51
RMS って意外に OL っぽいとこあるよな。。。
0191名無しさん@お腹いっぱい。2014/01/04(土) 18:34:02.38
べ、別にずっとbzrのままがいいなんて言ってないんだからね!!
0192名無しさん@お腹いっぱい。2014/01/04(土) 19:36:10.28
これか。bzrはオワコンになりつつあるな・・・
ttp://lists.gnu.org/archive/html/emacs-devel/2014-01/msg00014.html
0193名無しさん@お腹いっぱい。2014/01/04(土) 19:44:33.61
英語の読めない哀れな僕に日本語で解説してください
0194名無しさん@お腹いっぱい。2014/01/04(土) 21:16:22.76
esr : そろそろbzrはあきらめてgitにしねーと、若モンはやる気無くすだろ。
RMS : べ、別にbzrにこだわる必要ないんだけどね。
0195名無しさん@お腹いっぱい。2014/01/04(土) 22:06:35.23
移行に本気になったら gnu/git と呼びはじめて linus 苦笑か
0196名無しさん@お腹いっぱい。2014/01/05(日) 01:25:30.72
なんでGNUつけろって言ってたのか、理解してないヤツキター
0197名無しさん@お腹いっぱい。2014/01/05(日) 12:11:29.78
>>194
クソわろたwww
0198名無しさん@お腹いっぱい。2014/01/05(日) 20:57:15.39
使っている英字フォントと日本語フォントを1:2の幅にしたいのですが日本語フォントの幅が
微妙に狭くて1:2になりません
face-font-rescale-alist を使って日本語フォントを 1.1 倍にすると幅は一致するのですが
高さも変わってしまい英字のみだった行に日本語を加えると数ピクセル動いて気持ちが悪い状態です

文字の大きさも感覚的に日本語のほうが大きくなってしまうので
文字間を少し広くすることでピッチを合わせたいと思っているのですがフォントをいじることなく
変更することは可能でしょうか

Ubuntu 13.10 の Emacs 24.3 を使っています
0199名無しさん@お腹いっぱい。2014/01/05(日) 21:15:58.95
>>198
自分は色々した結果、日本語と英字を同じフォントにすることにした。
0200名無しさん@お腹いっぱい。2014/01/05(日) 21:39:56.15
>>198
emacs だけだと結局無理だったはず。
自分も数ピクセル高さが合わないのを我慢して使ってる。
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.15
>>202
text-modeだと後者のように整形されるよ。
24.3
0204名無しさん@お腹いっぱい。2014/01/05(日) 23:41:55.79
後者?
0205名無しさん@お腹いっぱい。2014/01/06(月) 00:23:07.28
>>203
確かに 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.

までにしかならず、 "* " のインデント分は考慮されなくなるというイタチごっこで。。。
02062052014/01/06(月) 00:31:27.89
あっ、すみません、自己解決しました。

adaptive-fill-regexp のデフォルト値を参照して変更加えてたら、
やりたい事全部できちゃいました。
0207名無しさん@お腹いっぱい。2014/01/06(月) 02:45:29.06
>>198
フォントまわりは悩ましいよね。
俺も>>199さんと同じで日本語と英字で同じフォントにしてる。
それでもフォントの大きさによってずれることがあるので、
うまく合う大きさを指定してる感じ。
0208名無しさん@お腹いっぱい。2014/01/06(月) 09:15:03.00
ttf 編集出来るソフトで俺俺フォント作っちゃったほうが色々楽になりそうだ
0209名無しさん@お腹いっぱい。2014/01/06(月) 09:42:57.10
Cocoa Emacs のフォント設定について - my-misc.blog
http://d.hatena.ne.jp/setoryohei/20110117/1295336454
0210名無しさん@お腹いっぱい。2014/01/06(月) 12:32:36.57
>>209
結局 face-font-rescale-alist って高さも幅もリスケールしちゃうから
どう頑張ってもずれるフォントはずれるんだよね。
強制的に高さと幅指定してそれに満たない部分は空白で埋めるとかできればなあ。
0211名無しさん@お腹いっぱい。2014/01/06(月) 13:36:39.61
話の流れぶった切るけどと取り敢えず貼っとく
Emacsの標準機能だと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 での # 指定時の仕様が気持ち悪い

(format "%#6x" 15) とかやると " 0xf" になるのはいいんだけど
(format "%#06x" 15) にしたときに "0000xf" はおかしいよ・・0x の後に0足してくれよ
C の printf だと"%#06x" で "0x000f" になってくれる
0214名無しさん@お腹いっぱい。2014/01/06(月) 23:35:51.41
うーんこの
0215名無しさん@お腹いっぱい。2014/01/06(月) 23:48:16.50
>>212
backtrace-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
>>215
ありがとうございます。backtrace は自分で呼び出せるんですねー。
呼び出し元でどれだけ遡るかを決めなくてはいけないのは致し方ないですね。
0217名無しさん@お腹いっぱい。2014/01/07(火) 00:31:17.67
元々sjis(?)でエンコードされたファイルがUTF-8で表示されるようになって
しまって、それをセーブしたら、ファイルの文字が以下のように壊れてしまいました。

\343\202\253\343\203\274\343\202\275 ...

これを元の文字に直す方法はありませんか? 再現できればsjisでもutf-8でも問題ありません。
■ このスレッドは過去ログ倉庫に格納されています