トップページ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/
0002名無しさん@お腹いっぱい。2013/06/09(日) 14:16:55.54
M-x otsu
0003名無しさん@お腹いっぱい。2013/06/09(日) 17:57:02.10
リンク三つ目なんだこりゃ。ドン引き
0004名無しさん@お腹いっぱい。2013/06/09(日) 19:10:42.22
宣伝乙
0005名無しさん@お腹いっぱい。2013/06/09(日) 19:42:32.09
せめて >>2 以降に書けよ
0006名無しさん@お腹いっぱい。2013/06/09(日) 21:03:23.59
>>1
テンプレ修正

語り合いましょう。

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

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

前スレ
EmacsPart42
http://toro.2ch.net/test/read.cgi/unix/1356319580/
0007名無しさん@お腹いっぱい。2013/06/10(月) 13:29:42.68
ここ最近公開されたおもしろいelispは何かある?
0008名無しさん@お腹いっぱい。2013/06/10(月) 17:32:12.55
特にない
0009名無しさん@お腹いっぱい。2013/06/10(月) 20:35:52.33
前スレ >>972

(defun my-japanese-search ()
(interactive)
(run-with-idle-timer 0.1 nil 'isearch-edit-string)
(isearch-forward))

としてみれば、どうかな!?
0010名無しさん@お腹いっぱい。2013/06/11(火) 00:21:28.71
desktop-save-modeってwindow configulationを保存しないけど、保存させるには
どんな設定をすればいい?
0011名無しさん@お腹いっぱい。2013/06/12(水) 00:51:46.56
C-x r N なんて便利なコマンドあったんだな。知らなかった。
表示のカスタマイズはC-u C-x r N だな。
こういう便利機能を時々発見するのもEmacsの醍醐味だね。
0012名無しさん@お腹いっぱい。2013/06/13(木) 03:30:16.46
馬鹿にスレ立てさせんな
0013名無しさん@お腹いっぱい。2013/06/13(木) 10:00:37.24
ならさっさと自分で立てれ。
0014名無しさん@お腹いっぱい。2013/06/13(木) 11:08:49.90
>>11
これ何に使うと便利と感じるの?
数値計算屋さんで変な定数何回も入力するとか?
0015名無しさん@お腹いっぱい。2013/06/13(木) 12:03:49.54
[奥が深い症候群]
0016名無しさん@お腹いっぱい。2013/06/13(木) 13:08:03.60
>>14
>>11 じゃないけど wdired でファイルに連番づけするときなどに活用してる。
0017名無しさん@お腹いっぱい。2013/06/13(木) 18:04:18.24
>>16
cua-set-rectangle-markの方が使いやすいと思うけど。
0018名無しさん@お腹いっぱい。2013/06/13(木) 22:06:41.99
define-minor-modeで複数行を/* */でコメントアウトするように設定したいのですがどうすればいいですか
define-generic-modeではコメントの設定で("/*" . "*/")と書けば良かったのですが、define-minor-modeの方が分かりません。
お願いします
0019名無しさん@お腹いっぱい。2013/06/13(木) 23:32:15.78
マイナーモードとメジャーモードって区別でマイナーモード側でコメント設定する必要性がわからんな。
elisp(メジャー)モードでマイナーモードを使うようにしたからって、コメントが /* */ になったって嬉しくもなんともない。
具体的になにしたいんだか書いたほうがいいと思うぞ。
0020名無しさん@お腹いっぱい。2013/06/14(金) 01:38:49.32
そういわれればそうですね
考え直します
0021名無しさん@お腹いっぱい。2013/06/14(金) 22:29:16.06
process-send-string
とかprocess系の関数で質問です。
この関数で設定したstringが実際にプロセスへ送信されるタイミングはいつですか?
たとえば
process-send-string proc "hoge"
process-send-string proc "huga"
process-send-string proc "hage"
とした場合、
3つキューに詰まれた上で、lispのコールスタックが上層までもどった時点なのか、
それとも
process-send-stringを実行した直後なのか。
基本この関数は非同期ですよね?
非同期だけど、少なくとも上記のように3連続で実行している間に送信されないことが保障されているほうが
ありがたいのですが・・、どういう実装なんでしょう?
勝手なイメージとしては、 process-send-stringでキューかバッファに積んでいって
lispのコールスタック上層に戻ったときに送信されるのが望ましいのですが。
0022名無しさん@お腹いっぱい。2013/06/14(金) 22:58:25.87
上の質問に絡んだ内容ですが、
現在編集中のバッファで
process-send-string proc
を実行するような関数が実行されている状態で
emacsがこれとはまったく無関係に
別のバッファを開いて、そのバッファでprocess-send-string procを実行するとします。
send対象のprocは同一プロセスです。
この場合、送信されるデータはどのようになりますか?

分かりやすく書くと
作業中のバッファAで
process-send-string proc "a:hoge"
process-send-string proc "a:huga"
process-send-string proc "a:hage"
とし、
emacsが裏でオープンするバッファBのc-mode-hookなどで
process-send-string proc "b:hoge"
process-send-string proc "b:huga"
process-send-string proc "b:hage"
が実行された場合です
0023名無しさん@お腹いっぱい。2013/06/15(土) 00:22:27.38
>>21
正確な解説じゃないだろうけど、知ってる範囲で説明すると

> この関数で設定したstringが実際にプロセスへ送信されるタイミングはいつですか?

process-connection-type によってかわる。
大雑把にいえば t のときは改行を送信したとき。
nil のときは process-send-string 関数が呼ばれたとき。

> 基本この関数は非同期ですよね?
> 非同期だけど、少なくとも上記のように3連続で実行している間に送信されないことが保障されているほうが
> ありがたいのですが・・

ここの意味はよくわからないけど、 process-send-string から帰ってこないことはありえる。
非同期ではないと思う。

>>22 を読んでて思ったのだけど
process-connection-type の設定を考慮したら直面してる問題が解決したりしない?
0024名無しさん@お腹いっぱい。2013/06/15(土) 01:13:04.14
eww.el --- Emacs Web Wowser
こんなのがコミットされてた。
ただ、shr.el --- Simple HTML Renderer がベースだから、表示能力は推して知るべしだ。
0025名無しさん@お腹いっぱい。2013/06/15(土) 11:21:55.22
auto-complete-clang-async.el ネタです。
NTEmacsスレでやっていたのですが、ある程度まとまったんでこちらにも。

前スレでこの話があったけど、 >22 の人かな?
純粋にたくさんファイルを開いたときならダメだけど、そうではなくて clang-complete プロセスが
いっぱい残る問題ならこれでたぶん解消すると思います。

NTEmacs スレッド 3
http://anago.2ch.net/test/read.cgi/software/1325573999/616
0026名無しさん@お腹いっぱい。2013/06/15(土) 15:52:21.39
VimGolf in Emacs | Irreal
http://irreal.org/blog/?p=1953
thingatpt.elのforward-whitespace関数にキーバインドを割り当てていれば7手でいけるが
素のemacsのキーバインドで7手で本当に達成できるか分からない
M-@ [mark-word] と M-( [insert-parentheses] で2手分を使ってしまうから
f3とf4を駆使すると思うのだけれど、分かる人はいる?
0027名無しさん@お腹いっぱい。2013/06/15(土) 16:45:10.28
>>26
コメントに書いてある
electric-pair-modeを使うそうだ
0028222013/06/15(土) 21:51:35.76
> > この関数で設定したstringが実際にプロセスへ送信されるタイミングはいつですか?
>
> process-connection-type によってかわる。
> 大雑把にいえば t のときは改行を送信したとき。
> nil のときは process-send-string 関数が呼ばれたとき。
>
ありがとう、ためしてみます。

> > 非同期だけど、少なくとも上記のように3連続で実行している間に送信されないことが保障されているほうが
> > ありがたいのですが・・
>
> ここの意味はよくわからないけど、 process-send-string から帰ってこないことはありえる。
> 非同期ではないと思う。
lisp以外の言語で非同期プログラムなどを書く場合
他のプロセス・スレッドや同期オブジェクトにアクセスしたタイミングでプリエンプションされる可能性があるので
そういった意味で言いました。
0029222013/06/15(土) 22:08:34.16
>>25
> auto-complete-clang-async.el ネタです。
> 前スレでこの話があったけど、 >22 の人かな?
はいそうです。

> 純粋にたくさんファイルを開いたときならダメだけど、そうではなくて clang-complete プロセスが
> いっぱい残る問題ならこれでたぶん解消すると思います。
auto-complete-clang-asyncの問題としては、
・バッファ毎にclang-complete.exeを割り当てるので
 ファイルを8個以上ひらくとパイプエラーになってしまうのでそれ以上開けない。
・64bit版がない。
というのがあるので
64bit版のclang-complete.exe相当のものを自作して試しています。
1バッファ1プロセス起動はやめて、nバッファ1プロセスという形にしています。
なのでclangの補完対象になるバッファは全て1つのclang-complete.exeで管理しています。
ここで問題がおきていて、
あるバッファでclang-compelteへ補完コマンドを送信中に
裏でCEDETが動作して、別バッファにincludeされる対象のファイルを自動的にオープンすることがあり
その際にc-common-hookなどにセットしてあるclang-completeへの登録コマンドなどが動作して
clang-completeのstdinに入ります。
これで応答がなくなってしまったことがあり
このときに、コマンドの送信順番がどうなるかが気になっています。
process-connection-typeがnilの場合でも
process-send-string単位ということなので
バッファAのprocess-send-stringと
バッファBのprocess-send-stringが
入り乱れる形で送信されるのであれば厄介な話だなとおもって上で聞きました。
ただemacs-lisp自体はシングルスレッドなんですよね?
なので並列性に関しては心配していませんが、
平行性はどういう単位で実現されているのかで、問題の解決方法が変わってくるとおもいます。
0030252013/06/16(日) 06:12:00.66
>>29
Windows固有な部分があるんであっちに書きました。

NTEmacs スレッド 3
http://anago.2ch.net/test/read.cgi/software/1325573999/618
0031名無しさん@お腹いっぱい。2013/06/16(日) 17:51:32.94
いちおつ
0032名無しさん@お腹いっぱい。2013/06/16(日) 18:11:36.10
java-modeのenumがうまくインデントされないんだけどいい解決方法ないかな
一応ググっては見たんだけど英語をまともに読めないし試してもうまく動かなくて困ってる
0033名無しさん@お腹いっぱい。2013/06/16(日) 19:18:20.59
エスパーさんお呼びですよー
0034名無しさん@お腹いっぱい。2013/06/16(日) 19:43:51.69
読んだぁ〜?
0035名無しさん@お腹いっぱい。2013/06/17(月) 02:17:51.92
なんでこのくらいでエスパーが必要なのかわからない
java-modeのenumがうまくインデントされない解決方法わかる人居るか聞いてるんだけど
0036名無しさん@お腹いっぱい。2013/06/17(月) 02:25:15.45
ちょろっと触ってみた感じではわりと賢くインデントしてくれるようなんだが
どういう風にうまくインデントされないのかを書け
あとたぶんemacs標準添付のjava-mode使ってると思うから、そのemacsのバージョンとかも
0037名無しさん@お腹いっぱい。2013/06/17(月) 02:33:40.26
"GNU Emacs 23.4.1 (i486-pc-linux-gnu, GTK+ Version 2.24.10)
of 2012-09-10 on murphy, modified by Debian"

enum hoge{
  a,
    b,
    c,
    d,
    };
こんな感じになってしまう
0038名無しさん@お腹いっぱい。2013/06/17(月) 02:38:10.61
emacsではjava書かんから見てないがそこだけmmm-mode使ってc++-modeとかにしたらえがっぺ。
0039名無しさん@お腹いっぱい。2013/06/17(月) 02:49:37.81
取り敢えずそれを頼りに明日頑張ってみる
ありがとう
0040名無しさん@お腹いっぱい。2013/06/17(月) 02:49:52.57
>>37
java-modeってcc-mode.elが提供してるのね
emacs23添付のは確かにそうなるなあ
emacs24添付のだと問題無く綺麗にインデントしてくれる
0041名無しさん@お腹いっぱい。2013/06/17(月) 03:03:12.00
それなら emacs24 の cc-mode.el のと24のを ediff すりゃええべ。
多分ファイルすり替えしてもうまく動かんだろうからね。
0042名無しさん@お腹いっぱい。2013/06/17(月) 08:10:18.16
>>35
みんな同じ環境を使っていると思っちゃいけない。それじゃ典型的なしろーとだぞ。
最低限環境と*具体的に*どうなるのかemacs -Q(古いのだと -q --no-site-initだっけ?)で
起動したらどうなのかを書いたほうがいい。
素の最新版でどうなるかを試せればさらによし。
0043名無しさん@お腹いっぱい。2013/06/17(月) 12:42:55.81
自分の質問の仕方が悪かったのは謝る
これを機会に最新版入れてみる
0044名無しさん@お腹いっぱい。2013/06/17(月) 22:37:36.09
define-generic-modeでc++のインデント規則をそのまま利用するには
どうすればいいのでしょう
0045名無しさん@お腹いっぱい。2013/06/18(火) 08:30:55.42
Emacs ユーザーの心の狭さがまた一つ露呈したのか。
それがこのスレの悲しさよ。
0046名無しさん@お腹いっぱい。2013/06/18(火) 08:54:48.23
純情な子羊ユーザーが迷い込むたびに
このスレは容赦なく牙を向いてきた。
それこそ10年も前からこのスレは血を吸って生きてきたのさ。
0047名無しさん@お腹いっぱい。2013/06/19(水) 23:12:24.03
>>24
eww.elがちょっと盛り上ってきたな。
http://lars.ingebrigtsen.no/2013/06/eww.html
ここで画面が見れる。文字の大きさが反映されれば結構いいかもね。
0048名無しさん@お腹いっぱい。2013/06/24(月) 21:17:43.81
emacs信者が来たよ
0049名無しさん@お腹いっぱい。2013/06/24(月) 23:25:26.36
まぁEmacsスレだからな。
0050名無しさん@お腹いっぱい。2013/06/25(火) 01:00:34.94
気になるelispを導入しようとしているのですが
melpa, elpa, el-get, auto-installと最近はいろいろな言葉を聞くので
うまく使ってみたいです
これまではelispを地道にsite-lispに放り込んで居たのですが
上記の仕組みを使うとどういうことができるのでしょうか
■ このスレッドは過去ログ倉庫に格納されています