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

Emacs part 28

レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん@お腹いっぱい。2009/01/21(水) 20:20:55
GNU Emacs - Free Software Foundation (FSF) http://www.gnu.org/software/emacs/
EmacsWiki http://www.emacswiki.org/
Emacs 電子書棚 http://www.bookshelf.jp/
Emacs CVS Repositories [Savannah] http://savannah.gnu.org/cvs/?group=emacs
Emacs Lisp List http://www.damtp.cam.ac.uk/user/sje30/emacs/ell-date.html
最新の stable リリースのダウンロード http://ftp.gnu.org/pub/gnu/emacs/
Windows用 NTEmacs の最新ダウンロード https://sourceforge.jp/projects/ntemacsjp/files/

前スレ http://pc11.2ch.net/test/read.cgi/unix/1226188082/
CVS先端: cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs
0951名無しさん@お腹いっぱい。2009/04/23(木) 19:15:20
粗大ゴミを集める趣味はないよ
0952名無しさん@お腹いっぱい。2009/04/23(木) 19:16:43
HHKなら◇がmeta。なぜならSunのキーボードがもともとそうだから。
0953名無しさん@お腹いっぱい。2009/04/23(木) 19:17:23
次スレ
Emacs part 29
http://pc12.2ch.net/test/read.cgi/unix/1240481795/

補足とかあればよろしく
0954名無しさん@お腹いっぱい。2009/04/23(木) 19:48:57
早漏
0955名無しさん@お腹いっぱい。2009/04/24(金) 00:02:26
作ってみた。あんまりテストしてないけど。

(defvar line-breakable-char-list '(?、 ?。))

(defun break-paragraph ()
(interactive)
(let* ((old (category-table))
(new (copy-category-table old)))
(map-char-table (lambda (char category-set)
(when (and (aref category-set ?j)
(not (memq char line-breakable-char-list)))
(aset category-set ?| nil))) new)
(set-category-table new)
(unwind-protect
(save-excursion
(let ((end (progn (forward-paragraph) (point))))
(backward-paragraph)
(replace-regexp "\\(\\cj\\)\n\\(\\cj\\)" "\\1\\2" nil (point) end)
(fill-paragraph nil)))
(set-category-table old))))
09569062009/04/24(金) 10:21:59
>>955
すげー!ありがとう!ちゃんと使えた。
しかも「。。。」みたいなやつは



となるのかと思いきや、ちゃんと改行が抑制されていた。
0957名無しさん@お腹いっぱい。2009/04/24(金) 10:41:56
ageとけ
09589052009/04/24(金) 18:49:46
>>955
わあ、すごい。使わせていただきます。
0959名無しさん@お腹いっぱい。2009/04/25(土) 12:09:54
コード書きに auto-complete を便利に使っています。
etags から補間候補を拾ってくれるし、とっても便利でるね。

でも、関数名を補間しても、引数仕様はでないんだよね。
どこぞの SDK のようにはできないでしょうかね。
言語の文法を完全に理解してパースしないと実相は難しそうだから、emacs-lisp では無理かな。
0960名無しさん@お腹いっぱい。2009/04/25(土) 12:20:59
パーズしたりドキュメントから抽出するようなものは外部プログラムに任せるという方法もあるし
eldoc-mode用にヒント表示を用意できるような類なら
ac-select-candidateを弄ればできるかも
なにもsemanticみたいにelispによる力技でやらなきゃいけないものでもないし
0961名無しさん@お腹いっぱい。2009/04/25(土) 12:21:50
>>959
> どこぞの SDK のようにはできないでしょうかね。

作ればあるもん

> 言語の文法を完全に理解してパースしないと実相は難しそうだから、emacs-lisp では無理かな。

言語処理系のほうに、そういうことをサポートする機能が付けられつつあるから、
言語によってはできるだろう。
0962名無しさん@お腹いっぱい。2009/04/25(土) 15:02:24
流れ豚切りスマン

hexl-mode ではデフォルトが上書きモードなので
hexl-insert-* とかの関数でバイト列を挿入したいのですが
なぜか動作が上書きモードのままです.これって正常なんでしょうか

あと delete-backward-char みたいに
カーソルの左にある1バイトを消去するにはどうすればいいのでしょうか?

環境は Debian (Lenny) の Emacs 22.2.1 です
0963名無しさん@お腹いっぱい。2009/04/25(土) 17:56:40
auto-complete と yasnippet と anything(はちょっと違うか)あたりが
有機的にからんでくれると嬉しいよね。
具体的にどうなったら嬉しいのかとかよくわからんけど、現状のだと
なんかすこーしものたりない。
0964名無しさん@お腹いっぱい。2009/04/25(土) 20:12:39
C-c n を押したら 現在のカーソルの位置に <@@>を出力して
@と@の間にカーソルを持って行きたいんですが、
どなたか 書いていただけますか?
09659642009/04/25(土) 20:22:36
ちょっと見よう見まねで
(defun lite ()
(interactive)
(insert "<@@>"))

(global-set-key "\C-cn" 'lite)

って書いたらとりあえず出力はできました。
でも@@の間にカーソルを持ってくる方法はわかりません。
lispはまったく触れた事もありません。

0966名無しさん@お腹いっぱい。2009/04/25(土) 20:37:59
>>965
(backward-char 2)

>lispはまったく触れた事もありません。
elispの世界へようこそ。
0967名無しさん@お腹いっぱい。2009/04/25(土) 21:26:15
>>964さんのをいじってみた
(defun lite ()
(interactive)
(setq current-posion (point))
(insert "<@@>")
(goto-char (+ current-posion (/ (length "<@@>") 2))))

(global-set-key "\C-cn" 'lite)

秀丸マクロを覚えるなら、emacs-lispだろと思って触り始めてみたけど、かなり満足している
ケースバイケースでvimも使うけど、EmacsはUnix最強の文房具だね
09689642009/04/25(土) 21:40:02
>>966, 967
有難うございます!
無事出来ました!
0969名無しさん@お腹いっぱい。2009/04/25(土) 22:03:55
"<@@>"をパラメータで受けとるようにすりゃ汎用化できそうだよね。
カーソル移動位置もパラメータなりなんなりで指定出来るようにすれば
結構面白い入力支援になるかも。
0970名無しさん@お腹いっぱい。2009/04/25(土) 22:23:54
>>962
ttp://www.gnu.org/software/emacs/manual/html_node/emacs/Editing-Binary-Files.html
0971名無しさん@お腹いっぱい。2009/04/25(土) 23:19:34
>>969
手前味噌だけど……
ttp://www.emacswiki.org/emacs/parenthesis.el

>>967の例なら、
(require 'parenthesis)
(add-to-list 'parenthesis-func-alist '(parenthesis-insert-<@ "<@" "@>"))
(parenthesis-init)
(global-set-key "\C-cn" 'parenthesis-insert-<@)

まあ、よかったらどぞ
0972名無しさん@お腹いっぱい。2009/04/27(月) 18:06:35
>>959
auto-complete-mode だけど、narrow-to-region すると
補完候補の表示の位置がおかしくなる。既出のバグですか?
0973名無しさん@お腹いっぱい。2009/04/28(火) 13:46:59
Emacsに大分手がなじんできたのでもっと使いこなしたいと思うようになりました
メジャーモードとか作ったりできるようになりたいんですが基本的には
ttp://www.gnu.org/software/emacs/manual/html_node/emacs/
ここを勉強すればいいんでしょうか?
他にもEmacs Lispやリファレンスなどで参考になる所があったら紹介をお願いします
0974名無しさん@お腹いっぱい。2009/04/28(火) 14:27:36
釣りだよな!!
釣りだよなッ!!

0975名無しさん@お腹いっぱい。2009/04/28(火) 14:36:47
(info "eintr")と(info "elisp")はおさえといて損はない
後者はリファレンスとして一発で参照できる環境を作っとくことをおすすめする
あとは基本的に既存のelispをハック(笑)するのが一番だ
0976名無しさん@お腹いっぱい。2009/04/28(火) 17:43:43
>>973
emacs lispを勉強していて、イマイチしっくりこないときにはSchemeか、Common Lispをかじるといいかも
おれはScheme(guile)に行ったけど、emacs lispはCommon Lisp方言のほうが強いみたいだ
方言の違いで特別困ることは、なさそう感じだけど

ちなみにguileはemacsのinfoがインストール一発で
The Algorithmic Language Scheme
* GOOPS: (goops). The GOOPS reference manual.
* Guile Reference: (guile). The Guile reference manual.
* Guile Tutorial: (guile-tut). The Guile tutorial.
* R5RS: (r5rs). The Revised(5) Report on Scheme.
みたいに4つ入ったから使っている
0977名無しさん@お腹いっぱい。2009/04/28(火) 17:45:47
>>975
> (info "eintr")と(info "elisp")はおさえといて損はない
> 後者はリファレンスとして一発で参照できる環境を作っとくことをおすすめする
おお、それは便利そうだね

既存のelispハックで、ソースも短くて、elispを勉強中の人が教材になるのってないのかな
defunはわかるけど、それ以外のdefうんたらがイマイチわかっていない

;; short-cut jump for emacs lisp intro and emacs lisp reference manual
;; elisp-info and eintr
(defun elisp-info ()
(interactive)
(info "elisp"))
(defun elisp-intro-info ()
(interactive)
(info "eintr"))

(global-set-key "\C-c1" 'elisp-info) ;C-c 1
(global-set-key "\C-c2" 'elisp-intro-info) ;C-c 2
;; elisp-info and eintr ends
0978名無しさん@お腹いっぱい。2009/04/28(火) 18:18:33
elisp-intro がまさしくそれかと
自身今勉強中だけど、Emacs 自身の組み込み関数を例題に懇切丁寧に定義を追跡解説して
くれてる。
一応日本語版もある (Emacs21 用だが)
ttp://www.bookshelf.jp/texi/elisp-intro/jp/emacs-lisp-intro.html
0979名無しさん@お腹いっぱい。2009/04/28(火) 20:36:10
>>973
>メジャーモードとか作ったりできるようになりたいんですが基本的には
そのものズバリのものがあるよ。
ttp://www.gentei.org/~yuuji/elisp/
0980名無しさん@お腹いっぱい。2009/04/28(火) 21:28:05
他人が作った1000行ぐらいのを模倣してみるのもいいかもねえ。

HTTPとかも喋られるから
今だったらそこらへんのWebサービスクライアントなんか作るのも
他人にも喜ばれやすくていいかもしれない。
0981名無しさん@お腹いっぱい。2009/04/28(火) 23:23:48
この手の話題もう飽きた。何度目だナウシカ
0982名無しさん@お腹いっぱい。2009/04/28(火) 23:36:05
elispでhttp通信するんだったら、emacs22以上で入ってる、url-httpをrequireしてやって、
urlから始まるelispを使うと良いと思うよ すごく便利
0983名無しさん@お腹いっぱい。2009/04/28(火) 23:51:23
それ結構動作があやしい。おまけに色々派生版が世の中にあって
それ使ったソフトを人に配ったりemacsをアップデートしたりというときに悩む可能性あり。
0984名無しさん@お腹いっぱい。2009/04/29(水) 00:09:21
url*パッケージは、バージョン間差異が大きいから使いづらいという理解でいいのかな
しらんかった。勉強になったよ。ありがとうー
0985名無しさん@お腹いっぱい。2009/04/29(水) 00:56:16
urlパッケージって他の言語の環境で用意されてるの程便利じゃないんだよね。

リクエストデータは自前で準備しなきゃいけないし
レスポンスはステータス/ヘッダ含んだ生のままのバッファ渡されるだけだから
content-typeのcharset見てデコードとかも自前で処理かかないといけないし。

0986名無しさん@お腹いっぱい。2009/04/29(水) 06:59:30
めんどくさいからいつも w3m か curl を呼び出してる
0987名無しさん@お腹いっぱい。2009/04/29(水) 12:49:25
>>984
とはいえキープアライブ通信とか接続の使い回し、キャッシング処理を
意識させずにやってくれたりするから自分で一から作るよりははるかにマシではあるんだよな。
0988名無しさん@お腹いっぱい。2009/04/29(水) 18:31:08
1から作るのはありえない…面倒すぎる
クッキーの管理をたしか勝手にやってくれたはず
他の言語で用意されているのと比べれば、それは見劣りするかもしれんが、無いよりははるかにマシと言わざるおえんなあ
elispのみでやりたいなら使わない手はない、と思う
0989名無しさん@お腹いっぱい。2009/04/29(水) 18:35:45
いいから究極版作れよ
0990名無しさん@お腹いっぱい。2009/04/29(水) 18:46:17
キッチンシンク
0991名無しさん@お腹いっぱい。2009/04/29(水) 20:20:36
究極版が標準配布に含まれるようになりゃいいんだけどね。
dom とか xpath 関係のも含まれるようになりゃ随分楽になるんだが。


0992名無しさん@お腹いっぱい。2009/04/29(水) 20:48:32
ライブラリ指向の徹底的な欠如
0993名無しさん@お腹いっぱい。2009/04/29(水) 20:52:32
せめてcommon lisp準拠95%超になってasdfが使えるのならいいんだけど
0994名無しさん@お腹いっぱい。2009/04/29(水) 21:52:48
>>993
asdf を初めて知ったぜ。
現 emacs だとこの手のって auto-install.el ぐらいか。
0995名無しさん@お腹いっぱい。2009/04/29(水) 22:13:18
先日、auto-install.elみたいなの山ほどあるねえ、とどこかで読んだ。
0996名無しさん@お腹いっぱい。2009/04/30(木) 00:40:26
>>995
決定版的なのが出ないのはやっぱ標準配布に含まれてないのが原因か。
0997名無しさん@お腹いっぱい。2009/04/30(木) 18:10:19
CPAN みたいなのは必要だとおもうなぁ。
Emacswikiには期待はしてるんたわけど。

しかしまぁ、Emacs-Lispって、自分で書くと開発速度が遅くて嫌になる。
Cは良いよなぁ。
0998名無しさん@お腹いっぱい。2009/04/30(木) 18:30:10
たわけ?
0999名無しさん@お腹いっぱい。2009/04/30(木) 18:44:37
Cがいい?
ならanythingとかw3mとかをCでemacs lispのprimitiveとして実装してみよう
死にたくなるぞ
1000名無しさん@お腹いっぱい。2009/04/30(木) 18:46:32
>>997
ELPAとかあるけどね。まだまだ収録パッケージが少ない。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。