Emacs part 27
■ このスレッドは過去ログ倉庫に格納されています
0001Zeno
2008/11/09(日) 08:48:02スレッドルールは以下の通り:
* 初心者にやさしく接すること
* Emacsユーザーとの仲間意識をしっかり持って、馴れ合いを怠らないこと
* このスレでのコミュニケーションを前スレ以上に活発にすること (用がなくとも、毎日の書き込みが理想)
* 部外者/非Emacsユーザーの書き込みも可。但し、女性の書き込みは場の雰囲気を乱すので不可
* 自分で書いた便利なコード/アイディアは他人とシェアしようと試みること
_/l__
/ く
| ´ω` | ぐにゅう emacs
| C='|
* Emacs スレッドのマスコットキャラである「ぐにゅう君」 (↑のAA) と
吾 (Zeno ◆5nZQbNmQPs) への挨拶も忘れないように!
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 リリース (22.2) のダウンロード http://ftp.gnu.org/pub/gnu/emacs/emacs-22.2.tar.gz
Windows用 NTEmacs の最新ダウンロード https://sourceforge.jp/projects/ntemacsjp/files/
前スレ http://pc11.2ch.net/test/read.cgi/unix/1218093847/
CVS先端: cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs
Emacs は世界を救う!
0379名無しさん@お腹いっぱい。
2008/12/07(日) 22:54:06もう無理なんじゃね?お大事に。
0380名無しさん@お腹いっぱい。
2008/12/07(日) 22:55:36>>363
0381名無しさん@お腹いっぱい。
2008/12/07(日) 23:38:41中級者:200行〜5000行
上級者:5000行〜10000行
超上級者:0行。Emacsにコミット
0382名無しさん@お腹いっぱい。
2008/12/08(月) 01:17:32振れてきてるけどねえ。
0383名無しさん@お腹いっぱい。
2008/12/08(月) 02:14:230384名無しさん@お腹いっぱい。
2008/12/08(月) 02:26:52でも7割ぐらいコピペかもしれん
まともにelisp勉強したこともなくてmode作ったりするような知識もないし何もアドバイスできないけどね
自分はこんなとこに書き込みしてないでelisp勉強してたほうが役に立つな,うん…
0385名無しさん@お腹いっぱい。
2008/12/08(月) 03:02:47それはそれで、すごいな。
0386名無しさん@お腹いっぱい。
2008/12/08(月) 07:57:360387名無しさん@お腹いっぱい。
2008/12/08(月) 16:22:31これでも自作関数とか使って圧縮してるんだが…
環境依存を吸収するような設定が1000行ぐらいあるのが原因か
dumpも考えたけどフレーム関連の挙動が怪しすぎるので使ってない
0388名無しさん@お腹いっぱい。
2008/12/08(月) 17:18:31$LANG を utf8 に変え、MuleUCS をはずして(以前は jisx0213)使うと、Summary モードで subject が文字化けするようになりました。
まれに本文(body 部分)も化けます。
さらに、(Mew じゃなくても)ダブルバイトの記号類(〜や■など)が書かれたテキストを表示しようとすると表示が乱れます。
解決策をご存知の方、お教えください。
また、板違いでしたら、しかるべきところへ誘導願えると幸いです。
0389名無しさん@お腹いっぱい。
2008/12/08(月) 17:26:54> さらに、(Mew じゃなくても)ダブルバイトの記号類(〜や■など)が書かれたテキストを表示しようとすると表示が乱れます。
「曖昧な文字幅」でぐぐると何か出てくるかも。
0390388
2008/12/08(月) 17:48:22ありがとうございます!
ご指摘いただいたようにググッてみました。
なるほど、根っこは同じ問題のようですね。
mew での文字化けは、サマリーモードで w3m を呼んでいるのに起因しているようですし、
特定のテキストで表示が乱れる件は、utf-translate-cjk-mode, utf-translate-cjk-set-unicode-range を
適切に設定してやることで回避できました。
しかし、相変わらず emacs は敷居が高いなー。修行します。
0391名無しさん@お腹いっぱい。
2008/12/08(月) 21:04:28どうにかならんかな?
0392名無しさん@お腹いっぱい。
2008/12/09(火) 01:02:530393名無しさん@お腹いっぱい。
2008/12/09(火) 02:13:100394名無しさん@お腹いっぱい。
2008/12/09(火) 05:53:37adviceの定義位置には飛べないの?
0395名無しさん@お腹いっぱい。
2008/12/09(火) 10:29:13xyz...
0396名無しさん@お腹いっぱい。
2008/12/09(火) 10:35:19あれは「Emacsとは全然関係ないエディタ」とは言えないだろ。
0397名無しさん@お腹いっぱい。
2008/12/09(火) 10:41:36emacs code.py
C-c C-c
の後*python*のバッファーが自動で表示されないのはバグですか?
emacs23に乗り換えれば治りますか?
0398名無しさん@お腹いっぱい。
2008/12/09(火) 14:18:260399名無しさん@お腹いっぱい。
2008/12/09(火) 16:21:33Emacsはshの一アプリだった。
歴史が一歩違えばEmacsがWindowsのようなOSに、
ストールマンがゲイツのようになっていたのか…
そしてこのスレは「Windows part 27」
諸君、ここはかの有名な最強の汎用環境/エディタ、「Windows」のスレッドである!
ということになっていたわけだ。
0400名無しさん@お腹いっぱい。
2008/12/09(火) 16:28:120401名無しさん@お腹いっぱい。
2008/12/09(火) 17:36:510402名無しさん@お腹いっぱい。
2008/12/09(火) 19:03:36ぐらいありえんifだな
0403名無しさん@お腹いっぱい。
2008/12/09(火) 22:01:250404名無しさん@お腹いっぱい。
2008/12/09(火) 23:24:57Emacsの動いていたTECOは、
shのあるシステム上のエディタじゃないぞ。
0405名無しさん@お腹いっぱい。
2008/12/09(火) 23:31:49「shの一アプリ」という表現がそもそも変なわけだが
まあ細かいことはどうでもいいだろ
0406名無しさん@お腹いっぱい。
2008/12/10(水) 00:22:20WindowsもLisp実装ならここまで叩かれなかったろうに。
Visual Lispとか出して。
0407名無しさん@お腹いっぱい。
2008/12/10(水) 01:33:400408名無しさん@お腹いっぱい。
2008/12/10(水) 14:51:420409名無しさん@お腹いっぱい。
2008/12/10(水) 15:24:470410名無しさん@お腹いっぱい。
2008/12/10(水) 16:13:48> ゲイツが学生時代にLispにはまってれば…
当時の Lisp使いは理論から入った人に多かった。
ゲイツは計算理論は全然やってなかったみたいだし、
そもそも、物事の美しさを理解できないタイプであるゲイツは、
Lispを学んでたとしても好きになっていただろうかは疑問だ。
0411名無しさん@お腹いっぱい。
2008/12/10(水) 18:28:49svnですか?
git?
cvs?
dsvnでsf.netにアクセスしたいのでパスワードどこに記載すればいいんだ
0412名無しさん@お腹いっぱい。
2008/12/10(水) 19:15:07実は自分もそれを知りたかった。人の建てたsvnサーバがあるんだけど、初回に
コマンドラインからアクセス
svn checkout --username *** --password *** ...
したら、その後はdsvn.elでも何も指定なしでアクセスできてる。不思議。
ってそれはEmacs関係ないか。
0413名無しさん@お腹いっぱい。
2008/12/10(水) 20:16:56End of `/ ... /' string/RE not found: (scan-error Unbalanced parentheses 2381 8115)
とミニバッファにずっと表示されます
= split(/<>/);
のあたりから色分けがうまくできてないみたいです
どうやったら直せますか?
0414名無しさん@お腹いっぱい。
2008/12/10(水) 21:24:16mode-info を使っているんなら、バージョンアップするといい。
0415名無しさん@お腹いっぱい。
2008/12/11(木) 01:39:50やっぱ Mercurial だなー
仕事では Subverison
0416名無しさん@お腹いっぱい。
2008/12/11(木) 02:24:08右往左往するのしんどいし。その点svnは使ってて安心感があるんだが…
0417名無しさん@お腹いっぱい。
2008/12/11(木) 05:20:54git-svnもあるからいろいろ安心だし。
0418名無しさん@お腹いっぱい。
2008/12/11(木) 10:52:49どっちが便利?
0419名無しさん@お腹いっぱい。
2008/12/11(木) 11:15:250420名無しさん@お腹いっぱい。
2008/12/11(木) 12:34:090421名無しさん@お腹いっぱい。
2008/12/11(木) 12:41:240422360
2008/12/12(金) 08:57:59コメント抜きだと1832行。
isearch-mode 関係を整理すれば 2650-2700 ぐらいまでいけそう。
0423名無しさん@お腹いっぱい。
2008/12/12(金) 14:50:32コメントで自作小説のアイデアメモってた…
0424名無しさん@お腹いっぱい。
2008/12/12(金) 22:32:15docstringにそんなこと書いてないよね?
> if (XINT (end) - XINT (start) == end_byte - start_byte)
> return Qt;
その範囲が全部1バイトで表現される文字(つまりASCII?)ということだと思うのだけど
それらを包含しない文字コードはないという想定なのだろうが
それにしたってtではなくnilを返すべきじゃないのかしらん。
とりあえず手元ではtだったらnilにするようアドバイスをかけちゃった。
0425名無しさん@お腹いっぱい。
2008/12/13(土) 18:44:400426名無しさん@お腹いっぱい。
2008/12/13(土) 18:49:15EmacsからPDIC辞書をひくプログラムは他にもありますか?
0427名無しさん@お腹いっぱい。
2008/12/13(土) 18:55:38howm-mode も outline-mode もマイナーモード。
メインモードは目的によりけり。
0428名無しさん@お腹いっぱい。
2008/12/14(日) 02:49:32弄りすぎてモード制がボトルネックになってきたから
全部ハードコーディングで実装して快適に暮らすんだ。
0429名無しさん@お腹いっぱい。
2008/12/14(日) 04:07:110430名無しさん@お腹いっぱい。
2008/12/14(日) 04:16:39がんばって!!
0431名無しさん@お腹いっぱい。
2008/12/14(日) 15:57:24できたら公開してね
0432名無しさん@お腹いっぱい。
2008/12/14(日) 16:26:310433名無しさん@お腹いっぱい。
2008/12/14(日) 16:33:22(setq trees '(maple oak pine birch))
(setcdr (nthcdr 2 trees) nil)
trees
(maple oak pine)
;; b)
(setq trees '(maple oak pine birch))
(setcar (nthcdr 3 trees) nil)
trees
(maple oak pine nil)
a) の場合は リストが短かくなるのに対して、
b) 方法は リストの最後が nil になるのはなぜですか?
0434名無しさん@お腹いっぱい。
2008/12/14(日) 16:55:120435名無しさん@お腹いっぱい。
2008/12/14(日) 16:58:310436名無しさん@お腹いっぱい。
2008/12/14(日) 18:06:05consセルを全く理解していない人はそもそもいきなりリストの途中へのsetcarとsetcdrを
比較して悩んだりしないだろ。
あるいは理解していないことがわかっているならまずモデルの理解をしようとするのが自然で
そのための疑問でなく応用問題の答をもとめる質問をいきなりしたりはすまい。
0437名無しさん@お腹いっぱい。
2008/12/14(日) 18:55:040438名無しさん@お腹いっぱい。
2008/12/14(日) 19:53:32環境保護団体が森林保護のために仕組んだ暗号だと思うんだ。
0439名無しさん@お腹いっぱい。
2008/12/14(日) 21:18:53おまえ消されるぞ
0440名無しさん@お腹いっぱい。
2008/12/14(日) 21:43:430441名無しさん@お腹いっぱい。
2008/12/14(日) 21:45:310442360
2008/12/15(月) 15:11:29emacsはビルド中も比較的安心して見ていられる。
全体的な速度が以前のよりも上がったようだ。
個人用のパッケージも問題なく動いているよう。
0443名無しさん@お腹いっぱい。
2008/12/15(月) 22:20:36フォントの設定も楽になったしね
0444名無しさん@お腹いっぱい。
2008/12/16(火) 00:05:230445名無しさん@お腹いっぱい。
2008/12/16(火) 00:52:47爆笑。
0446名無しさん@お腹いっぱい。
2008/12/16(火) 05:39:430447名無しさん@お腹いっぱい。
2008/12/16(火) 05:50:110448名無しさん@お腹いっぱい。
2008/12/16(火) 08:38:080449名無しさん@お腹いっぱい。
2008/12/16(火) 09:28:300450名無しさん@お腹いっぱい。
2008/12/16(火) 12:05:29stanley のoptimizeコンパイルをしてくれるemas...
0451名無しさん@お腹いっぱい。
2008/12/16(火) 13:10:010452名無しさん@お腹いっぱい。
2008/12/16(火) 16:28:230453名無しさん@お腹いっぱい。
2008/12/16(火) 17:48:04俺はまるでダメだけどEmacsに罪はねーよ
0454sage
2008/12/16(火) 20:59:36emacsは自動でインデントを揃えてくれ、とても重宝しているのですが、更に欲を言うと
a=b+c;
を
a = b + c;
のようにフォーマットをしてくれる機能(またはelisp?)はないでしょうか?
個人的にはVisual Studioの整形みたいなものを想像しています。
Uncrustifyのような細かい設定まで出来れば完璧です。
わかりにくい文章で申し訳ありませんが、よろしくお願い致します。
0455名無しさん@お腹いっぱい。
2008/12/17(水) 13:13:390456名無しさん@お腹いっぱい。
2008/12/17(水) 14:12:51行内で式が完結していれば、
(lambda ()
(interactive)
(shell-command-on-region (beginning-of-line) (end-of-line) "indent" t t)
(command-execute "\t"))
;; region指定あれば優先した方がいいかな
0457名無しさん@お腹いっぱい。
2008/12/17(水) 15:56:02たまに変数名が衝突してわかりにくいバグが発生する
0458名無しさん@お腹いっぱい。
2008/12/17(水) 16:09:160459名無しさん@お腹いっぱい。
2008/12/17(水) 17:01:05emacs replacementの完成の方が速そうな勢いだものな…
0460名無しさん@お腹いっぱい。
2008/12/17(水) 17:15:54またお前か。うんざりだ。もうemacs使うなよ。
0461454
2008/12/17(水) 17:59:20>>456
.emacs内にそのまま記述してみたのですが、いまいちよく分かりませんでした。
何か実行する手順みたいなのがあるのでしょうか??
何も分かって無くてすみません^^;
.emacsには
(defun my-c-indent (rstart rend)
"Format region using the shell command \"indent\" (C program formatter). If the mark is not active, operate on the current line."
(interactive "*r")
(unless mark-active
(beginning-of-line) (setq rstart (point))
(end-of-line) (setq rend (point))
)
(shell-command-on-region rstart rend "indent" t t)
(command-execute "\t")
)
のように書いて、成形したい行にカーソルを置くかリージョン選択して
M-x my-c-indent
とやればいいのではなかろうか。
0463454
2008/12/17(水) 23:12:38レスありがとうございます。
教えて頂いた通り、以下をリージョンを選択後、M-x my-c-indentを実行した結果、
#include<stdio.h>
main(){
int a,b,c;
a=b+c;
}
が
/bin/bash: indent: command not found
という文字列に置き換わってしまいました。
えっと、これは"indent"の部分を何かフォーマットを行ってくれるような外部プログラムに置き換えるのでしょうか・・・?
0464名無しさん@お腹いっぱい。
2008/12/17(水) 23:48:230465462
2008/12/17(水) 23:56:01そしたらGNU indentをインスコしないといかんね。ftp.gnu.orgから拾ってくればいいはずだけど、どうやら2.2.9はソースをちこっといじる(indent.hの100行目をコメントアウト)必要があるみたいだ。
0466454
2008/12/18(木) 16:00:28きっと後はindentの設定をいじれば、自分の好きなコーディング規約に出来るんですね!
聞いてばっかりで申し訳ないんですが、
;や}を入力してステートメントやブロックの入力を終了したとき、また貼り付けを行ったときなどにオートフォーマットをさせることは可能でしょうか?
それとインデントを揃えるコマンドであるC-M-\をこのmy-c-indentに置き換えたりすることもできれば嬉しいのですが。。。
0467462
2008/12/18(木) 21:12:16上のmy-c-indentの後でこう書けばいいかな。C-M-\とセミコロンだけだが閉じ括弧は自分でやってみてくだされ。
(add-hook 'c-mode-common-hook
'(lambda ()
(define-key c-mode-base-map "\C-\M-\\" 'my-c-indent)
(define-key c-mode-base-map ";"
(lambda (arg) (interactive "*P")
;; use "indent" to format the line
(let ((start) (end))
(beginning-of-line) (setq start (point))
(end-of-line) (setq end (point))
(shell-command-on-region start end "indent" t t)
)
;; default behavior for semicolon
(end-of-line) (c-electric-semi&comma arg)
;; eliminate an extra line comming from "indent" above
(c-electric-delete-forward arg)
)
)
)
)
ところで上のmy-c-..の (command-execute "\t")は(c-indent-command)のほうが良い
鴨。
0468名無しさん@お腹いっぱい。
2008/12/18(木) 21:27:070469454
2008/12/18(木) 22:17:18'}'の時は対応パラグラフ内のフォーマッティングを考えているのですが、教えて頂いたdefine-key c-mode-base-map ";"の部分を単純に'}'へ変えただけでは当然一行しかフォーマッティングされずorz
(let ((start) (end))
(beginning-of-line) (setq start (point))
(end-of-line) (setq end (point))
(shell-command-on-region start end "indent" t t)
)
の部分を書き換えるのかなぁ等と思っているのですが。。。
ちなみにうまくやれば、
a+b+c+
d+e+f;
と数行に渡って式を書いた後のセミコロンで
a + b + c +
d + e + f;
のように複数行へ渡った場合のフォーマッティングもできるのでしょうか?
長文すみませんm(_ _)m
P.S.
C-M-\でのフォーマッティングは仰るとおり(command-execute "\t")を(c-indent-command)へ変えることでうまくできました^^
0470名無しさん@お腹いっぱい。
2008/12/18(木) 22:44:19まずはその投稿を整形すべきだな。
0471名無しさん@お腹いっぱい。
2008/12/19(金) 00:25:03ESC ! や M-x shell-command でよいことは知っています。
Shift-Alt-1 では ! そのものが、Alt-Shift-1 では M-1 が入力されているようです。
これは私の環境のみのバグでしょうか?
0472名無しさん@お腹いっぱい。
2008/12/19(金) 00:26:230473名無しさん@お腹いっぱい。
2008/12/19(金) 00:50:320474名無しさん@お腹いっぱい。
2008/12/19(金) 00:54:220475名無しさん@お腹いっぱい。
2008/12/19(金) 01:23:460476名無しさん@お腹いっぱい。
2008/12/19(金) 02:04:51あと "Ctrl" も "Ctr^1" みたいになっている。
Emacsはキーボードクラッシャーだなあ。
0477名無しさん@お腹いっぱい。
2008/12/19(金) 06:47:470478462
2008/12/19(金) 07:15:03ブロックのはじまりを捕まえるには(forward-sexp)、複数行にわたる式だったら(c-beginning-of-statement)というのがあるのでそれぞれ(beginning-of-line)の代わりに使えば基本的にはおまえさんのやりたいことができるはず。
ちょうど良い練習になると思うのであとはC-h f, C-h v, C-h kとかをお供に頑張ってくれたまへ。
ただしgnu.orgにおいてあるindent 2.2.9には複数行の入力が改行で終わってないときには最後の行が無くなっちゃうという致命的なバグがあるようなので、debian.orgの2.2.10をインスコしなおす必要がある。
うちのにもともと入っていたのも2.2.9だったようだ。新しいの入れといてよジョブズたんorz...
■ このスレッドは過去ログ倉庫に格納されています