トップページunix
994コメント303KB

Emacs Part 47 [転載禁止]©5ch.net

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

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

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

前スレ
Emacs Part 46
http://peace.2ch.net/test/read.cgi/unix/1403458934/
0483名無しさん@お腹いっぱい。2015/02/28(土) 16:50:13.77
emacs 入門でググって出てくるようなとこでいいんじゃねえの?
0484名無しさん@お腹いっぱい。2015/02/28(土) 19:50:35.73
今なんとなくemacs-init-timeしてみたら0.0秒だった
これならファイル単位でemacs起動終了しても大丈夫かな
0485名無しさん@お腹いっぱい。2015/02/28(土) 19:54:08.68
>>482
これはどうかな

ひらくの工房 - BasicEmacsAndGcc
http://www.hiraku.ro/?BasicEmacsAndGcc
> この文書は、LinuxなどのUnix系OSの初心者を対象に、Emacsを用いたC言語ソースの編
> 集と、GCCによるコンパイルを行う手順を紹介するものです。
0486名無しさん@お腹いっぱい。2015/02/28(土) 22:20:31.03
>>485
ありがとうぉざいます
0487名無しさん@お腹いっぱい。2015/02/28(土) 22:20:45.02
ぉ→ご
0488名無しさん@お腹いっぱい。2015/03/01(日) 07:35:39.16
process-send-regionで質問です。
バッファにunicodeが含まれている状態で
process-send-regionしても外部プロセスの標準入出力に値が何もはいってきません。
たとえばCの fscanfやfreadとかです。
unicodeを含まないバッファであれば問題なく動作します。

以下のようなことをやればとりあえず問題なく動きますが・・・・。
(let ((value enable-multibyte-characters))
(set-buffer-multibyte nil)
(process-send-region process (point-min) (point-max))
(set-buffer-multibyte value))

これはもっとマシな解決方法あったりしますか?
この方法でやると動作中の他パッケージに影響がでるので、やりたくないのです。
04894882015/03/01(日) 07:38:59.17
別の方法ですが
tempバッファを作り
decode-coding-regionでtempへ吐き出したものを送るのも可能ですが、
そもそも decode-coding-regionを使わないでそのまま送りたいです。
tempバッファへコピーするコストもあるでしょうし。
0490名無しさん@お腹いっぱい。2015/03/01(日) 09:21:26.37
>>489
そのプロセスのコーディングシステムはどうなってるん。
0491名無しさん@お腹いっぱい。2015/03/01(日) 16:40:55.55
>>490
bufferは utf-8-unix or utf-8-dosですが、そうじゃないファイルを送信することも想定したいので
send時はバイナリにしたいです。

プロセス送信時に
上流で↓してます。
(let ((coding-system-for-write 'binary))

default-process-coding-system '(binary . binary)
とかもしてみましたが、状況は変わらず・・・。
0492名無しさん@お腹いっぱい。2015/03/01(日) 17:59:51.91
>>491
490 の質問に答えてない
04934892015/03/01(日) 18:13:36.60
default-process-coding-systemの設定値はこうなってますね
(japanese-shift-jis-unix . japanese-shift-jis-unix)
0494名無しさん@お腹いっぱい。2015/03/01(日) 19:13:38.75
バイナリとして扱いたいならユニバイトにしろや。
0495名無しさん@お腹いっぱい。2015/03/01(日) 19:29:21.23
>>493
バカ?
0496名無しさん@お腹いっぱい。2015/03/01(日) 19:54:30.83
>>491
coding-system-for-* は実はプロセス起動時にしか有効でないんよ。自分も昔勘違いしてたけど。
なので start-process のタイミングで coding-system-for-write しないといけない。
process-send-string のタイミングでは無視されるので注意しないといけない。

>>494
プロセスのコーディングシステムが no-conversion とか binary になってると
内部でユニバイトとして送信されるようにちゃんとなってるよ。
0497名無しさん@お腹いっぱい。2015/03/01(日) 20:04:19.97
送信文字列を no-conversion に encode-coding-system したのと等価だな
0498名無しさん@お腹いっぱい。2015/03/01(日) 22:41:12.73
>>496
> >>491
> なので start-process のタイミングで coding-system-for-write しないといけない。
start-processでletしたらいけました!
ありがとうございました。

> process-send-string のタイミングでは無視されるので注意しないといけない。
いつでもいけると思ってました・・。
0499名無しさん@お腹いっぱい。2015/03/01(日) 23:01:06.04
emacs-mozcでoverlayしてるけど,
org-modeの場合だけなぜかecho-areaに表示される・・・

まず質問,同じことは起こりますか?
0500名無しさん@お腹いっぱい。2015/03/01(日) 23:15:39.26
overlayでの描画に失敗するとecho版にfallbackするらしいけどなんで失敗するんだろね
org使ってないから詳しくはわからんが
0501名無しさん@お腹いっぱい。2015/03/02(月) 13:09:28.70
mozc の overlay はくっそ遅いし echo に切り替えていってもいいと思うけどな。
0502名無しさん@お腹いっぱい。2015/03/02(月) 13:32:11.27
overlayは遅いし崩れるしでecho areaにしてたけど、最近でたpupupに乗り換えたら快適
0503名無しさん@お腹いっぱい。2015/03/02(月) 19:33:41.76
pupupなんてのもあるのか
0504名無しさん@お腹いっぱい。2015/03/02(月) 22:38:24.24
ぼくは ac-mozc ちゃん!
0505名無しさん@お腹いっぱい。2015/03/03(火) 00:22:22.61
ac-mozcとかskkよりチャレンジングすぎる
0506名無しさん@お腹いっぱい。2015/03/03(火) 09:39:52.98
skkを使えよ
05074992015/03/03(火) 15:00:28.24
popupで解決しました
快適すぐる
0508名無しさん@お腹いっぱい。2015/03/03(火) 15:36:27.55
キン肉スグル
0509名無しさん@お腹いっぱい。2015/03/04(水) 13:21:14.32
emacs の lisp って lisp 好きな人に言わせると全然 lisp してないってよく言われてるけど
実際 lisp じゃなくても問題ないのかな
0510名無しさん@お腹いっぱい。2015/03/04(水) 13:23:22.05
modern lispではないだけで、どう見てもlispだよ
0511名無しさん@お腹いっぱい。2015/03/04(水) 13:33:12.14
m2ym > emacs lisp は 括弧だらけの C
山本先生 > Emacs Lisp は命令型言語
0512名無しさん@お腹いっぱい。2015/03/04(水) 13:37:15.38
elispはリーダーマクロがあればねー。
0513名無しさん@お腹いっぱい。2015/03/04(水) 13:43:06.70
自分の好みのlispじゃないからレッテル貼ってるだけじゃんか
common lispですら関数型言語と認めない人だっているわけで、
何の実りもなさそうな話じゃね
0514名無しさん@お腹いっぱい。2015/03/04(水) 13:44:44.85
emacs lisp がクソなのは同意せざるをえない
vim や他のエディタにシェアを奪われるのも致し方ないな
0515名無しさん@お腹いっぱい。2015/03/04(水) 13:45:30.61
>>509
その人に聞いてみれば?
0516名無しさん@お腹いっぱい。2015/03/04(水) 13:47:03.84
問題あるかないかって話なら、自分のlisp感性にあわせるとemacs lispが書きづらい人にとっては問題だろうね
そんな質問する人には、どうでもいいレベルの問題
0517名無しさん@お腹いっぱい。2015/03/04(水) 13:49:02.73
>>514
お前は知らないかもしれないが、vimスクリプトの糞さに比べれば1000倍マシ
0518名無しさん@お腹いっぱい。2015/03/04(水) 13:49:11.12
>>509
たとえばどんな問題を想定してるんだろ
0519名無しさん@お腹いっぱい。2015/03/04(水) 13:49:50.76
>>514
どんなとこがクソ?
0520名無しさん@お腹いっぱい。2015/03/04(水) 13:51:52.84
いつもは静かなのに煽ると簡単に人が湧いてくるんだな
0521名無しさん@お腹いっぱい。2015/03/04(水) 13:53:07.01
emacs lisp とか言語としてはクソなんだけど、ググればそうとうピンポイントな事例でもどこかで誰かがやっているので、
やっぱ蓄積重要なんだよな〜という感じ。
nyagos もそうなるくらいには長く歴史を重ねて欲しいと思う。
0522名無しさん@お腹いっぱい。2015/03/04(水) 13:54:21.45
>>511
> 山本先生 > Emacs Lisp は命令型言語
これはCでプログラミングしてる人がelisp書いてるから、Cっぽく書く人が多いっていう意味で
Emacs Lispそのものの事を言ってんじゃないぞ
0523名無しさん@お腹いっぱい。2015/03/04(水) 13:54:29.24
少なくとも今まで出会ったLisperは皆elispは貧弱だと答えている。
それにも関わらず、今まで出会ったLisperは全員、LispのコーディングにはEmacsを利用しているのは不思議だ。
おそらく、Emacsとその資産を再実装する手間を考えたら、Emacsを使ったほうが得策なのだろう。
0524名無しさん@お腹いっぱい。2015/03/04(水) 13:55:39.42
>>522
http://www.mew.org/~kazu/material/2010-func.pdf
0525名無しさん@お腹いっぱい。2015/03/04(水) 13:57:40.29
lispなんてどれも目糞鼻糞な違いしかないが、とりあえずEmacs Lispはクソと言っとけば
知ったかぶり出来る風潮があるな
0526名無しさん@お腹いっぱい。2015/03/04(水) 13:59:33.19
>>523
elispが言語として貧弱かどうかと
Emacsがエディタとして貧弱かどうかは
まったく別の話では。
0527名無しさん@お腹いっぱい。2015/03/04(水) 14:00:21.53
>>524
まとめ
■ Emacs Lisp は命令型言語
 ■ 関数型言語の要素は持っているが、
  プログラマーは命令プログラミングしかしていない
0528名無しさん@お腹いっぱい。2015/03/04(水) 14:00:44.09
hayamiz も elisp はクソって言ってたな
0529名無しさん@お腹いっぱい。2015/03/04(水) 14:02:53.80
>>524
結局 emacs lisp での関数言語的なループは提示されてないよねこれ。
0530名無しさん@お腹いっぱい。2015/03/04(水) 14:03:14.58
elispのどこが糞(貧弱)かは誰も言わない不思議
0531名無しさん@お腹いっぱい。2015/03/04(水) 14:03:56.55
init.elしか書いたこと無いくせにlisper気取りは死んで欲しいかな
0532名無しさん@お腹いっぱい。2015/03/04(水) 14:05:14.88
>>530
末尾再起最適化がないから再帰ですぐスタック使い果たす
これだけでくそだってわかんだね
0533名無しさん@お腹いっぱい。2015/03/04(水) 14:07:22.47
EmacsLispの印象は悪い。
スタックのサイズがデフォルトではかなり制限されていたり、設定を単に変数の値を(動的に)変化させて行うあたり。
0534名無しさん@お腹いっぱい。2015/03/04(水) 14:08:18.61
EmacsLisp…
仕方無いとはいえ、ちょっと歴史の重荷になってきた感はありますね。
0535名無しさん@お腹いっぱい。2015/03/04(水) 14:09:54.83
>>532
これはなんで実装されないとか理由あったっけ?
手続き言語的な書き方促進しちゃってる理由の1つだよなーとは思う。
0536名無しさん@お腹いっぱい。2015/03/04(水) 14:13:13.02
>>532
とりあえずすぐじゃないし、困ったことはないな
0537名無しさん@お腹いっぱい。2015/03/04(水) 14:13:34.39
http://www.emacswiki.org/emacs/WhyDoesElispSuck
準公式そびえ立つ糞の山とそれに対する反論
0538名無しさん@お腹いっぱい。2015/03/04(水) 14:14:20.49
>>532
他には?
0539名無しさん@お腹いっぱい。2015/03/04(水) 20:06:11.57
>>538
CommonLipsにはある構造体が無いんでしょ?
0540名無しさん@お腹いっぱい。2015/03/04(水) 20:43:32.63
リーダーマクロもないな
別に elisp 書きたくて emacs 使ってるわけでもないからどうでもいいけど。
これでシステムアプリ書けとか言われたら退職待ったなしだが。

vim は vimscript だけじゃなく ruby だの lua だの使えていいやねえ。
0541名無しさん@お腹いっぱい。2015/03/04(水) 21:15:01.34
lisp自体クソだからelispもクソなのはしかたがない
理屈ばっかり先行して実務にはまったく役に立たない言語だよね
0542名無しさん@お腹いっぱい。2015/03/04(水) 21:18:22.19
>>509
lisp じゃなくても問題ないと思ってる人たちが Atom とか作ってるんだと思うよ。
0543名無しさん@お腹いっぱい。2015/03/04(水) 23:06:50.69
たまに custom-set-variables で変数セットしてる人いるけど
setq と何が違ってくるんですか?
0544名無しさん@お腹いっぱい。2015/03/04(水) 23:18:26.36
>>539
clにdefstructがあるけど、それじゃ駄目なのか?
0545名無しさん@お腹いっぱい。2015/03/05(木) 00:29:56.33
>>543
defcustomで指定した変数の依存関係とかセット時に動かしたい関数を起動するとかそういうのが行われるのがcustom-set-variables
ただ大抵の場合はsetqで問題ない

custom-set-variablesで検索すると真逆のタイトルの記事がトップに出てくるってのもすげえな

custom-set-variables は使わない方が良いかもしれない
http://d.hatena.ne.jp/a_bicky/20131230/1388396559

defcustomで定義された変数はsetqではなくcustom-set-variablesで設定すべき理由
http://kawamuray.hatenablog.com/entry/2013/11/03/180543
0546名無しさん@お腹いっぱい。2015/03/05(木) 00:42:08.98
あのなあ、ここにきてemacs lisp批判かよ・・・
とっととemacs捨てろよw
0547名無しさん@お腹いっぱい。2015/03/05(木) 00:45:55.25
>>546
実際捨ててる人が増えてるからユーザ減ってるんだろね。
若い人はみんなvimだし。
0548名無しさん@お腹いっぱい。2015/03/05(木) 00:59:55.15
vimのほうが便利だなと感じる部分も大いにあるんだが
日本語書きづらいのが致命的で移行できない
0549名無しさん@お腹いっぱい。2015/03/05(木) 01:11:38.53
マーク・ザッカーバーグが使ってるエディタがEmacsだ (映画ソーシャルネットワークで使ってたけど真実は知らん)
もしvimを使ってたら…いや考えるのはやめておこう
0550名無しさん@お腹いっぱい。2015/03/05(木) 01:26:24.18
コード書くのにモード制のvimはすごく相性よくて理にかなってるからなぁ
evilが人気出るのもわかる
プラットホームとしてのemacsは捨てがたいがvimの編集能力は欲しい
0551名無しさん@お腹いっぱい。2015/03/05(木) 03:54:24.17
shell-modeでed使ってる俺が一番クールだな
0552名無しさん@お腹いっぱい。2015/03/05(木) 10:25:46.51
helm使ったら負けみたいに思ってる変わり者って俺ぐらいなのかなやっぱ…
0553名無しさん@お腹いっぱい。2015/03/05(木) 11:22:20.08
俺も使ってないわ
便利そうだけど調べるのも面倒
0554名無しさん@お腹いっぱい。2015/03/05(木) 12:16:05.79
helm と org 使ってない人は何考えて emacs 使ってんだかマジで意味不明
0555名無しさん@お腹いっぱい。2015/03/05(木) 16:27:05.18
使い勝手が悪かったり、気に入らないところがあったりしたとき、大作だと
自分で修正・維持するのが大変なんだよね。

org はキーを割り当て過ぎて、Emacs ではなくなっている気がする。
操作に関しては ido (bufferのみ) + minibuf-isearch ベース。
0556名無しさん@お腹いっぱい。2015/03/05(木) 17:22:36.51
>>554
ESSだけでも十二分にEmacsを使う理由になるが。
あと、yatexはやめられない。他のエディタだと無理。
0557名無しさん@お腹いっぱい。2015/03/05(木) 17:33:29.66
>>554
SLIME?
0558名無しさん@お腹いっぱい。2015/03/05(木) 17:43:22.63
>>550
evil試しに使ってみたけどかなりいいな
これでemacsの環境とvimの編集能力の両方得られるんじゃないのかね

evilバリバリ使ってる人の感想が聞きたいな
0559名無しさん@お腹いっぱい。2015/03/05(木) 22:14:11.00
evil ってある意味じゃ if_elisp みたいなもんか。
vimscript 読めるようになったら完璧だな。
0560名無しさん@お腹いっぱい。2015/03/05(木) 22:15:57.16
evilは完璧を目指したものではないのでvmscriptには対応しません
0561名無しさん@お腹いっぱい。2015/03/05(木) 22:26:57.16
Evilつかって徐々にvimに移行していくのもいいかもしれんね
0562名無しさん@お腹いっぱい。2015/03/05(木) 22:34:29.59
emacsを使っているスタープログラマを知りたい。ついでにvimも。
0563名無しさん@お腹いっぱい。2015/03/05(木) 23:06:26.01
そんなのストールマン御大にきまっとる

それはそれとして、このプログラマーは何のエディタ使ってるの?っての方が調べやすそうだな
0564名無しさん@お腹いっぱい。2015/03/06(金) 08:26:42.75
https://twitter.com/yoshihiro503/status/573287689564237824
https://twitter.com/ahash/status/388199880084058112

FF7の開発にはEmacsとLispが使われていたそうだ。
0565名無しさん@お腹いっぱい。2015/03/06(金) 08:41:35.91
>>564
これな
http://d.hatena.ne.jp/shi3z/20140123/1390429115
0566名無しさん@お腹いっぱい。2015/03/06(金) 10:44:29.27
lisp はゲームに結構使われてたよ。
0567名無しさん@お腹いっぱい。2015/03/06(金) 11:07:27.55
>>566
FF7とかクラッシュバンデグー以外にサンプルある?
0568名無しさん@お腹いっぱい。2015/03/06(金) 11:13:37.64
>>567
>>565にあるけどUncharted
0569名無しさん@お腹いっぱい。2015/03/06(金) 11:58:07.52
ゲームのスクリプトは
命令 引き数1 引き数2 ...
ってのを延々書き並べて行くけど、その内ifが欲しくなってきて実装してる内に
あれ?これLispじゃね?って事になるんだと思われる

基本的にスクリプトで完全にプログラムをするわけじゃない所から出発してるから
Lispで必要十分なんだよな
0570名無しさん@お腹いっぱい。2015/03/06(金) 11:59:57.82
>>569
いやその解説いみわからん
命令列挙してるのがlispだと思ってんの…?
0571名無しさん@お腹いっぱい。2015/03/06(金) 12:13:11.30
>>570
随分理解力が無いというか視野が狭いな…
命令を列挙してるのがLispなんて言ってないよ
0572名無しさん@お腹いっぱい。2015/03/06(金) 12:31:51.92
>>571
理解力低いんでもうちょっと詳しく書いてくれませんかね?
この程度の内容なら非力なlisp程度で大丈夫だろ、みたいに書いてあるようにしか取れないので!
0573名無しさん@お腹いっぱい。2015/03/06(金) 12:42:41.31
>>569
上の解説記事見る限りじゃそんなこと書いてなくね?
0574名無しさん@お腹いっぱい。2015/03/06(金) 12:45:29.39
>>572
敵キャラスクリプトの例
(move A)
(move_if_search B C D)

これ見てLispっぽいと思うのが間違いって事をいってんのか?

LispではCやC++と比較して実用的なプログラムを組むのが困難という事実を言っている
ゲームはグラフィックやネットワークなどの処理をCで実装されたAPIを駆使して
実装しないといけないけど、Lispの方が向いてるといいたいのか?
0575名無しさん@お腹いっぱい。2015/03/06(金) 13:04:36.20
>>574
> (move_if_search B C D)
ちなみにLispっぽく書くなら
(if (search B) (move C) (move D))
と書くべきだが、スクリプトの実装がショボイうちはmove_if_searchのように1命令にせざるを得ない
で山のように専用命令が増えて、ちゃんとLispを実装しようと思うようになる

>>569にはそういう流れを含んでいたんだ
0576名無しさん@お腹いっぱい。2015/03/06(金) 13:19:35.98
>>574
括弧ついてりゃlispかよ、おめでてーな
そんな用途なら
move A
move_if_search B C D
で十分だろハゲ

で、どこがlispなんですか??
elispしか知らないくせにlisp知った気になってんじゃねーぞハゲ
0577名無しさん@お腹いっぱい。2015/03/06(金) 13:29:11.95
>>576
もちろん>>574のレベルだとLispとは言えないし言ってもいない(スクリプトと言っている)
>>575で言ってるが
(if (search B) (move C) (move D))
まで出来ればLisp「っぽく」なる
0578名無しさん@お腹いっぱい。2015/03/06(金) 13:34:58.99
だからそれのどこがlispらしいんだよ

if (search B)
move C
else
move D

これとどうちがうんですかー?
0579名無しさん@お腹いっぱい。2015/03/06(金) 13:36:35.35
> 命令 引き数1 引き数2 ...
> ってのを延々書き並べて行くけど、その内ifが欲しくなってきて実装してる内に
> あれ?これLispじゃね?って事になるんだと思われる

この流れでどこで「あれ?これLispじゃね?」ってなるのか説明はよせいや
命令列挙してif文あったらlispなのかよハゲ
0580名無しさん@お腹いっぱい。2015/03/06(金) 13:37:23.52
じゃぁ
if (search B)
move C
else
move D
をLispっぽく書くとどうなるの?
Lispじゃ書けないの?
0581名無しさん@お腹いっぱい。2015/03/06(金) 13:38:41.35
>>579
じゃぁLispは命令を列挙できなくてif文があってはいけないのか?
0582名無しさん@お腹いっぱい。2015/03/06(金) 13:39:25.77
>>580
論点すりかえんなや
そんなどんな言語でも書ける内容から「なんでLispじゃね?」ってなるのか聞いてんだよハゲ
■ このスレッドは過去ログ倉庫に格納されています